我有一个远程用户从 Windows 切换到 Ubuntu 22.04,在安装 WireGuard 并添加我们提供的配置后,他遇到了严重的 DNS 问题。值得注意的是,我们公司有许多 Linux 用户使用 VPN,所以我真的很困惑这里最初发生了什么。
他最初可以连接到我们的(分割隧道)VPN,但无法访问其背后的任何资源。我们发现将我们的 DNS 添加到他的 /etc/resolv.conf 中可以暂时解决此问题。几天后,他随机无法访问任何内容,并且我们的 DNS 再次从他的 resolv.conf 中丢失。他的 resolv.conf 中没有其他 DNS 条目,因此他自然无法解析任何内容。我们重新添加了条目,他可以访问所有内容。
今天他又无法访问互联网。我让他重新安装 Ubuntu,但他已经设置好了开发环境和其他东西,不想再做这些了。
此时,我觉得我们已经尝试和修改了太多东西,以至于当我无法远程访问他的机器时,我认为我无法解决这个问题。我搜索了如何将 DNS 和网络重置为默认值,但我找到的所有方法似乎都很旧,或者有太多方法可以做到这一点,我不确定哪种方法最好和最一致。
所以总结一下:我该如何让这个人的网络配置恢复到开箱即用的状态,以便我们可以重新开始使用他的 WireGuard 配置?
谢谢!
答案1
我要求他重新安装 Ubuntu,但他已经设置好了开发环境和其他东西,不想再做这些了。
一般来说这不是一个好主意,但理论上他可以重新安装而不格式化,这样设置就会保持不变。他最好能解决手头的问题。
我已经搜索过如何将 DNS 和网络重置为默认值,但我发现的一切似乎都很旧,或者有太多方法可以做到这一点,我不确定哪种方法最好且一致。
那不应该是需要的。/etc/resolv.conf
是一个从三个来源获取更新的链接:
- resolvconf(服务器;命令行;通常未安装)
- 网络管理器守护进程(桌面;您可以通过删除用户创建的连接来重置它)
- DHCP 客户端(不太可能)
如果您这样做sudo nano /etc/resolv.conf
并添加了 DNS,您可以测试您的设置,但是当用户...时它将被删除。
- 登出
- 重新启动系统
- 重新连接到网络
- 重新启动网络服务
使用resolvconf
:
如果尚未安装,请安装sudo apt install resolvconf
并创建文件:
sudo nano /etc/resolvconf/resolv.conf.d/nameservers
然后向该文件添加 DNS:
nameserver 8.8.8.8
(这是 Google DNS;请用您的 DNS 替换)
启动并启用它:
sudo systemctl start resolvconf.service
sudo systemctl enable resolvconf.service
就这样吧。
通过命令行管理网络(您可以从桌面在网络中执行相同操作):
nmcli con
将显示连接名称,并将 google DNS 添加到网络管理器(用自己的 DNS 替换):
nmcli con mod {connection} ipv4.dns "8.8.8.8 8.8.4.4"
然后你可以使用以下命令重新启动它:
nmcli con down {connection}
nmcli con up {connection}
在任何更改(resolvconf 或 networkmanager)之后,您可以通过执行以下操作来检查cat /etc/resolv.conf
。