如何从 resolv.conf 中删除本地主机名称服务器

use*_*676 11 networking dns resolv.conf

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

nameserver 127.0.0.1  
nameserver 10.255.0.101  
nameserver 10.255.0.11  
Run Code Online (Sandbox Code Playgroud)

我希望它改为阅读:

search [my domain]  
nameserver 10.255.0.101  
nameserver 10.255.0.11  
nameserver 208.67.222.222  
nameserver 208.67.220.220  
Run Code Online (Sandbox Code Playgroud)

由于双方/etc/resolv.conf/etc/resolv.conf.d/head不能手工编辑,我怎么能做出这种改变?

jdt*_*ood 7

首先,/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
Run Code Online (Sandbox Code Playgroud)

该行的存在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
Run Code Online (Sandbox Code Playgroud)

我的猜测是,在您的系统/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