我需要设置 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
您的系统使用 resolvconf,因此 resolv.conf 文件被替换为符号链接,/etc/resolvconf/run/resolv.conf
并且 resolvconf 动态生成了该文件。这就是为什么DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
要正确更新文件中的信息,您可以将 dns-* 参数放在/etc/network/interfaces
eg
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
这通常需要编辑/etc/resolvconf/resolv.conf.d/base
(取决于您的发行版,此位置可能略有不同)或此目录中的其他文件。它们是由 resolvconf 进程本身添加的。这些文件的格式与标准 resolv.conf 相同。
完成这些编辑后,您可以使用命令强制 resolvconf 更新resolvconf -u
。