resolvconf
从 Ubuntu 16.04 升级到 17.10 后,DNS 设置似乎不再起作用。我猜这可能与从到 的迁移有关systemd-resolv
。
如何确保已安装的软件包和配置处于 17.10 的默认状态?
例如,我注意到已resolvconf
安装,然后我将其删除。但是,这并没有解决问题。我猜还有更多步骤可以确保它处于 17.10 默认设置。
/etc/resolv.conf
我可以通过明确设置名称服务器(例如)使其(暂时)工作nameserver 8.8.8.8
,但这不是预期的方法。
答案1
我也遇到了同样的问题。从 17.04 升级到 17.10 后,我的 DNS 停止工作。
暂时有效的解决方案是
/etc/systemd/resolved.conf
DNS=<DNS server here> FallbackDNS=<DNS server here>
然后
systemd-resolved
通过运行重新启动#sudo systemctl restart systemd-resolved
另一种方法是改变
/etc/NetworkManager/NetworkManager.conf
dns=dnsmasq
到
dns=systemd-resolved
然后通过运行以下命令重新启动 NetworkManager:
#sudo systemctl restart NetworkManager
您的 DNS 应该可以正常工作。
答案2
我发现一篇优秀的博客文章有关最新的 Ubuntu DNS 问题,systemd-resolved
它为我解决了这个问题。
步骤如下:
nameserver 8.8.8.8
添加一行/etc/resolv.conf
- 安装不受约束
sudo apt-get install unbound
使用以下命令禁用有问题的守护进程:
sudo systemctl disable systemd-resolved
sudo systemctl stop systemd-resolved
dns=unbound
在 [main] 部分添加/etc/NetworkManager/NetworkManager.conf
启用
unbound
:sudo systemctl enable unbound-resolvconf
sudo systemctl enable unbound
- 重新启动计算机
答案3
正如 @spark 所说,您必须编辑/etc/systemd/resolved.conf
并重新启动服务后,所有功能都可以正常工作,但您看不到任何变化,/etc/resolv.conf
因为systemd-已解决工作原理不同解析conf服务。
systemd-已解决使用中间解析器 ( 127.0.0.53
) 将所有请求传递到您在中指定的 DNS 服务器/etc/systemd/resolved.conf
DNS部分。所以你不应该/etc/resolv.conf
直接更改。如果你想检查你的更改是否受到影响,你可以打开/run/systemd/resolve/resolv.conf
查看你的 DNS 服务器。这是systemd-已解决用于解析地址。
答案4
步骤 1:检查默认路由使用以下命令之一:
route -n
或者
ip r
询问新的 IP 地址并使用以下命令修改连接:
dhclient -v wlan0