旧的 DNS 设置不断恢复

旧的 DNS 设置不断恢复

Ubuntu 16.04

搬迁办公室后,我通过网络 GUI 设置了 DNS 设置(请参阅这里) 更改为我的新值。互联网连接正常,但名称解析似乎非常慢。我的解释是,它尝试使用旧设置进行名称解析,大约 5 秒后超时,然后尝试使用新设置并成功(快速)。

但无论我做什么,旧的价值观总是以某种方式“存在于体系中”。

重启后:

  • /etc/resolvconf/resolv.conf.d/head包含旧的 DNS 地址
  • /etc/resolvconf/resolv.conf.d/base包含新的 DNS 地址
  • /etc/resolv.confrun/resolvconf/resolv.conf)包含旧 DNS 地址(来自head),后跟值/run/resolvconf/interface/NetworkManager(包含localhostsearch参数)

/etc/network/interfaces不包含太多内容:

auto lo
iface lo inet loopback

我添加了新的DNS设置,但/etc/dhcp/dhclient.conf没有效果。

到目前为止唯一的补救措施是/etc/resolv.conf在每次启动后手动编辑。

那么,问题是:我怎样才能让 Ubuntu 忘记旧设置(/etc/resolvconf/resolv.conf.d/head自动生成的设置)。没有nscd安装。似乎是一种方法,但我想一定有更好的方法。

未尝试的选项:安装 dnsmasq 并按说明进行配置这里(我再次认为没有这个也应该可以)

答案1

该文件是在运行时/etc/resolv.conf从存储在目录中的文件生成的。/etc/resolvconf/resolv.conf.dsudo resolvconf -u

如果您对这些文件进行任何更改:

terrance@terrance-ubuntu:/etc/resolvconf/resolv.conf.d$ ls -l
total 8
-rw-r--r-- 1 root root   0 Jun  3  2015 base
-rw-r--r-- 1 root root 151 Feb 25  2017 head
-rw-r--r-- 1 root root  33 Jun  5  2016 original
-rw-r--r-- 1 root root   0 Jun  5  2016 tail

运行resolvconf -u更新命令时,更改将会反映出来。我实际上将 DNS 信息放在了original文件中,而其他文件则保持不变:

terrance@terrance-ubuntu:/etc/resolvconf/resolv.conf.d$ cat original 
search local
nameserver 10.0.0.1

然后运行命令后sudo resolvconf -u我们可以在文件中看到我的更改/etc/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
nameserver 10.0.0.1
search local

编辑:您可能需要检查和更改的另一件事是文件dns=dnsmasq中找到的行/etc/NetworkManager/NetworkManager.conf。您可以复制并粘贴以下行以禁用dnsmasqNetworkManager 的使用。

sudo sed -i 's/dns=dnsmasq/#dns=dnsmasq/' /etc/NetworkManager/NetworkManager.conf 

运行上述行后,重新启动计算机以使新的更改生效。

希望这可以帮助!

相关内容