30

我需要设置 OpenDNS,但我无法编辑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 127.0.1.1
search gateway.2wire.net
4

2 回答 2

43

您的系统使用 resolvconf,因此 resolv.conf 文件被替换为符号链接,/etc/resolvconf/run/resolv.conf并且 resolvconf 动态生成了该文件。这就是为什么DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN

要正确更新文件中的信息,您可以将 dns-* 参数放在/etc/network/interfaceseg

auto eth0
iface eth0 inet static
     address 33.33.13.10
     netmask 255.255.255.0
     gateway 33.33.13.1
     dns-nameservers 33.33.13.1 12.34.56.78
     dns-search example.com

然后,您可以通过以下方式更新 dns-* 信息

$ resolvconf -d eth0
$ resolvconf -a eth0

或者您可以执行 ifdown & ifup 和 resolvconf -d, -a 将在幕后发生。

注意:有时我发现 resolvconf -u 不起作用。我不知道为什么

你应该阅读man resolvconf。有更多关于这一切的信息。

提示:如果要手动更新 /etc/resolv.conf,可以删除符号链接并手动创建 /etc/resolv.conf。这样,文件将永远不会从 resolvconf 更新。

    $ rm /etc/resolv.conf         ;# to remove the symlink
    $ vi /etc/resolv.conf         ;# to create a regular file
于 2013-10-19T16:00:34.713 回答
11

这通常需要编辑/etc/resolvconf/resolv.conf.d/base(取决于您的发行版,此位置可能略有不同)或此目录中的其他文件。它们是由 resolvconf 进程本身添加的。这些文件的格式与标准 resolv.conf 相同。

完成这些编辑后,您可以使用命令强制 resolvconf 更新resolvconf -u

于 2013-10-17T16:25:03.467 回答