我刚刚将笔记本电脑从 Xubuntu 17.04 升级到 17.10。最后一次重启后,DNS 停止工作。这显然是个问题!我可以 ping 已知 IP 地址;但无法解析 DNS。
我没有调整过任何 DNS 设置;据我所知,我之前使用的是标准 DNS 配置。它只是一台笔记本电脑,使用 DHCP 从我的家庭 WiFi 路由器获取详细信息。
显然,当系统本身无法解析任何网址时,诊断此问题的能力是有限的。我在手机上进行了一些谷歌搜索,我发现的大多数答案似乎都建议关闭 dnsmasq。然而,dnsmasq 已经关闭了。但/etc/resolv.conf
显示 127.0.1.1,这似乎意味着它期望 dnsmasq 正在运行。
我打开了 dnsmasq,通过编辑/etc/NetworkManager/NetworkManager.conf
和添加
[main]
dns=dnsmasq
然后我运行了这个命令
sudo systemctl restart NetworkManager
我的 DNS 解析现已正常工作。
然而,鉴于默认的 Ubuntu 配置是不是要使用 dnsmasq,我实际上应该做什么来诊断和修复这个问题?
答案1
我今天正在将 Ubuntu 从 16.10 版本升级到 17.04 版本,然后再升级到 17.10 版本。对我来说,DNS 也停止工作了。符号resolv.conf
链接
/etc/resolv.conf -> /run/NetworkManager/resolv.conf
对于 17.10 来说,这显然是错误的。上一位发帖人收到的错误消息来自以下输出resolvconf -service
:
$ systemctl status resolvconf
它给出了以下输出。
resolvconf[623]: /etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf
通过删除原始符号链接,链接到/run/resolvconf/resolv.conf
并/etc/resolv.conf
重新启动 resolvconf -service DNS 开始再次工作:
$ sudo rm /etc/resolv.conf
$ sudo ln -s /run/resolvconf/resolv.conf /etc/resolv.conf
$ systemctl restart resolvconf
resolvconf-service
有趣的是,甚至在符号链接指向正确的文件之前,退出代码就已经成功了。
答案2
我发现这里报告了此错误:https://bugs.launchpad.net/ubuntu/+source/resolvconf/+bug/1725840;请确认您是否也遇到了此问题。只需通过简单的 即可解决dpkg-reconfigure resolvconf
。
答案3
我遇到了同样的问题,并在查看 resolvconf 时看到了这个问题
Oct 20 00:36:17 drew-8570w resolvconf[708]: /etc/resolvconf/update.d/libc: Warning: /etc/resolv.conf is not a symbolic link to /run/resolvconf/resolv.conf
重新创建符号链接解决了这个问题。现在默认使用 127.0.0.53 了吗?
$ ls -al /etc/resolv.conf
lrwxrwxrwx 1 root drew 27 Apr 6 2017 /etc/resolv.conf -> /run/resolvconf/resolv.conf
$ cat /etc/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
# 127.0.0.53 is the systemd-resolved stub resolver.
# run "systemd-resolve --status" to see details about the actual nameservers.
nameserver 127.0.0.53