首先,/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,请删除它或RESOLVCONF=no
在中设置/etc/default/bind9
。
参考:https : //bugs.launchpad.net/debian/+source/bind9/+bug/933723