Linux:我如何编辑resolv.conf

时间:2013-10-17 16:18:26

标签: linux dns

我需要设置开放DNS,但我无法编辑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

2 个答案:

答案 0 :(得分:31)

您的系统使用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中,例如

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- * info
$ 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

答案 1 :(得分:9)

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

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