每次重启后都无法通过 Dns 解析主机

每次重启后都无法通过 Dns 解析主机

每次重启后,Ubuntu 都无法通过 DNS 解析主机,也无法打开任何页面。我习惯在每次重启后运行这些命令来确保一切正常

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

我怎样才能避免这个问题?

答案1

我看到您已经尝试使用此处描述的解决方案: https://unix.stackexchange.com/questions/280264/no-dns-resolution-after-upgrade-from-ubuntu-14-04-to-16-04

虽然不是最理想的,但一个解决方法是在启动时自动运行命令。本页面包含一些方法:

http://linuxtechlab.com/executing-commands-scripts-at-reboot/

另一种可能性是你受到了 2017 年 3 月更新中的错误的影响:

https://www.digitalocean.com/community/questions/how-to-fix-the-march-2017-ubuntu-dns-resolution-issues

这里出现了另一个非常透彻的答案: 16.10 无法解析 DNS

我不太了解您的具体情况,因此无法建议您先尝试其中的某一种,但希望其中一种方法对您有用。

更新:根据在非标准 VPN 客户端启动的情况下服务器重新启动时失败的认知,可以合理地假设此 VPN 客户端可能正在修改 resolv.conf 并删除一些默认条目,以避免 DNS 泄漏。我建议确保您的 VPN 客户端在关机前断开连接,并且可能在启动后仍自动重置 resolv.conf。

或者,您可以尝试添加您选择的合法名称服务器,例如nameserver 8.8.8.8添加到文件/etc/resolvconf/resolv.conf.d/head,这可能会有所帮助。我不确定这是否会影响您的 VPN 功能,或导致 DNS 泄漏,因此请谨慎使用。来源:
https://ubuntuforums.org/showthread.php?t=2352821&page=2

答案2

听起来好像有什么东西(可能是您的 PulseSecure 客户端)正在覆盖,/etc/resolv.conf或者/run/resolvconf/resolv.conf后者默认应该包含以下内容:

# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 127.0.1.1

前者,正如您所知,应该是后者的符号链接。您可以在重新启动之前检查这些文件,以确保它们没有变化。或者更好的是,检查watch它们的更改,以确定修改发生的时间和原因。

相关内容