流行操作系统! 21.04 - DNS 不工作

流行操作系统! 21.04 - DNS 不工作

编辑:这个问题可能与以下事实有关:resolv.conf由于我之前使用 ProtonVPN,我的文件不再是符号链接......

编辑 2:刚刚尝试将其重新链接到/run/resolvconf/resolv.conf,我的互联网现在工作正常。这似乎是 VPN 替换resolv.conf且在断开连接时无法恢复的问题。这个答案帮助我识别并解决了问题:DNS 设置在 lubuntu 17.10 上不起作用

我在笔记本电脑上运行最新版本的 Pop_OS 21.04。直到昨天我突然断开了 Discord 通话并且无法再访问互联网时,一切都正常。我调查了这个问题,并确定它与 DNS 相关,因为如果我手动输入目的地的 IP 地址,我仍然可以访问互联网站点(如 1.1.1.1),但无法访问非 IP 域。 (如 google.com)

我相信这个问题与我的文件有关/etc/resolv.conf,可以编辑该文件以包含nameserver 1.1.1.1成功让我的 DNS 再次工作的行。但是,在重新启动或重新启动服务时,该文件将被重写为以下内容NetworkManager

# Generated by NetworkManager
nameserver ::1

我知道这与内部 DNS 服务器有关,但我不知道管理该 DNS 服务器的是什么,也不知道我应该去哪里更改配置。

该文件/etc/NetworkManager/NetworkManager.conf包含该行dns=default,更改此设置dns=dnsmasq会影响生成的resolv.conf文件以包含该行nameserver 127.0.0.53而不是上面的内容::1

为了解决这个问题,我希望能够为我的系统设置一个持久的全局 DNS 配置,忽略所有其他 DNS 设置,尽管我不确定如何做到这一点。编辑head文件似乎resolvconf不会影响resolv.conf,可能是因为resolv.conf仅由 生成NetworkManager

也许有一个地方可以编辑生成的默认配置,但resolv.conf到目前为止/etc/NetworkManager我还找不到任何东西。我想避免制作resolv.conf持久文件,因为我担心它可能会破坏某些东西,但此时我正在考虑它。我最好会改变它的生成方式。

答案1

事实证明,这是我的 VPN 的问题,弄乱了符号链接,resolv.conf并且在断开连接后没有正确修复它。

从这个答案到DNS 设置在 lubuntu 17.10 上不起作用:

您的 DNS 配置失败,因为当激活 protonVPN 时,它会删除您的原始/etc/resolv.conf符号链接,并用自己的文件替换它。

不幸的是,当它发生故障时,它不会重新创建符号链接,从而有效地在 /etc/resolv.conf文件和 resolvconf/之间创建断开连接NetworkManager

要纠正这个问题,您必须运行以下命令 每次使用(断开)VPN 后恢复 resolvconf 符号链接:

sudo rm /etc/resolv.conf
sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf

我还会向 protonVPN 开具罚单,因为这是一个相对已知的问题,并且在某些 VPN 提供商的软件中很常见。

对于更熟悉 Linux 的人来说,另一种可能的(临时)解决方法是不依赖 NetWorkManager 和 resolvconf,并直接处理接口的手动配置。

答案2

它曾经解决了我的问题,但今天又发生了。这不是解决方案。我通过编辑 /etc/resolv.conf 并添加行 nameserver 8.8.8.8 8.8.4.4 修复了它。

之前我也尝试过:添加

sudo nano /etc/systemd/network/99-custom-dns.conf

在这个文件里面

[Network]
DNS=8.8.8.8 8.8.4.4

比重新启动

sudo systemctl restart systemd-networkd systemd-resolved

并重新启动所有网络

sudo nmcli networking off
sudo nmcli networking on

最后我通过将行更改为 nameserver 8.8.8.8 8.8.4.4 修复了我的 /etc/resolve

相关内容