从 16.04 升级到 17.10 后出现 DNS 问题:如何将 DNS 设置重置为默认值?

从 16.04 升级到 17.10 后出现 DNS 问题:如何将 DNS 设置重置为默认值?

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 停止工作。

  1. 暂时有效的解决方案是/etc/systemd/resolved.conf

    DNS=<DNS server here>
    FallbackDNS=<DNS server here>
    

    然后systemd-resolved通过运行重新启动

    #sudo systemctl restart systemd-resolved
    
  2. 另一种方法是改变/etc/NetworkManager/NetworkManager.conf

    dns=dnsmasq
    

    dns=systemd-resolved
    

    然后通过运行以下命令重新启动 NetworkManager:

    #sudo systemctl restart NetworkManager
    

您的 DNS 应该可以正常工作。

答案2

我发现一篇优秀的博客文章有关最新的 Ubuntu DNS 问题,systemd-resolved它为我解决了这个问题。

步骤如下:

  1. nameserver 8.8.8.8添加一行/etc/resolv.conf
  2. 安装不受约束sudo apt-get install unbound
  3. 使用以下命令禁用有问题的守护进程:

    sudo systemctl disable systemd-resolved

    sudo systemctl stop systemd-resolved

  4. dns=unbound在 [main] 部分添加/etc/NetworkManager/NetworkManager.conf
  5. 启用unbound

    sudo systemctl enable unbound-resolvconf

    sudo systemctl enable unbound

  6. 重新启动计算机

答案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

相关内容