如何从resolv.conf中删除localhost名称服务器

目前我的/etc/resolv.conf读取:

 nameserver 127.0.0.1 nameserver 10.255.0.101 nameserver 10.255.0.11 

而我希望它改为:

 search [my domain] nameserver 10.255.0.101 nameserver 10.255.0.11 nameserver 208.67.222.222 nameserver 208.67.220.220 

由于无法手动编辑/etc/resolv.conf/etc/resolv.conf.d/head ,如何进行此更改?

首先, 可以手动编辑/etc/resolvconf/resolv.conf.d/head 。 文件中的注释表示DO NOT EDIT THIS FILE BY HAND不适用于/etc/resolvconf/resolv.conf.d/head本身,而是适用于/etc/resolv.conf ,前者是前置的。

但是,在正常情况下,您不必编辑/etc/resolvconf/resolv.conf.d/head

文件/etc/resolvconf/resolv.conf.d/head/etc/resolvconf/resolv.conf.d/tail是作为一种强制头和尾到生成的resolv.conf ,如果在例外情况下需要的话但是如果你正确使用resolvconf并且在正常情况下你就不必这样做了。

你说文件内容是

 nameserver 127.0.0.1 nameserver 10.255.0.101 nameserver 10.255.0.11 

nameserver 127.0.0.1的存在表明您正在运行本地转发名称服务器,例如dnsmasq。 上面的文件不是resolvconf在这些情况下通常生成的文件。 它通常会生成如下文件。

 # 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.0.1 search foo.com 

我的猜测是在你的系统上/etc/resolv.conf不是../run/resolvconf/resolv.conf的符号链接,但它是一个普通文件,可能由resolvconf以外的东西生成,也可能不生成。 如果文件是完全静态的,那么只需编辑它,使其看起来像你想要的样子。 如果文件是由resolvconf之外的某个工具生成的,那么找出生成文件的工具并配置该工具。

或者,恢复符号链接/etc/resolv.conf -> ../run/resolvconf/resolv.conf并正确配置resolvconf。

如何从resolv.conf中删除localhost名称服务器?

以下说明仅适用于使用resolvconf管理/etc/resolv.conf ,即/etc/resolv.conf../run/resolvconf/resolv.conf的符号链接。

如果行nameserver 127.0.0.1位于/etc/resolvconf/resolv.conf.d/中的某个文件中,则从那里删除它。

否则该行来自一些本地运行的名称服务器。 要么卸载该名称服务器,要么将该名称服务器配置为不使用resolvconf注册地址127.0.0.1。 特别是,如果您正在运行本地命名的BIND 9,请将其删除或在/etc/default/bind9设置RESOLVCONF=no

参考: https : //bugs.launchpad.net/debian/+source/bind9/+bug/933723

尝试

 sudo vi /run/resolvconf/interface/NetworkManager 

删除或替换nameserver 127.0.0.1,然后使用

 sudo resolvconf -u. 

检查您的NetworkManager配置:

 sudo NetworkManager --print-config 

如果有的话

 dns=systemd-resolved 

然后编辑设置

 /run/resolvconf/interface/systemd-resolved 

并更新

 sudo resolvconf -u 

在我的情况下也有

 /run/resolvconf/interface/tun0.openvpn 

文件(由OpenVPN创建),可以安全删除以避免干扰:

 sudo rm /run/resolvconf/interface/tun0.openvpn