Linux 如何编辑resolv.conf?

Linux 如何编辑resolv.conf?,linux,dns,Linux,Dns,我需要设置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 这通常需要编辑此目录中的/etc/resolvconf/re

我需要设置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

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


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

强制resolvconf更新您的系统使用resolvconf,因此resolv.conf文件被替换为指向
/etc/resolvconf/run/resolv.conf
的符号链接,并且resolvconf动态生成该文件。这就是为什么
不要手动编辑此文件--您的更改将被覆盖

要正确更新文件中的信息,可以将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-*信息:

$ 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

sudo vi resolv.conf
Linux rwilson-Inspiron-1318 3.8.0-31-generic#46 Ubuntu SMP Tue Sep 10 19:56:49 UTC 2013 i686 i686 i686 i686 i686 GNU/Linux我的系统有文件“/etc/resolvconf/resolv.conf.d/base”,但它是空的,它只包括该文件中的内容以及它动态计算的其他条目。在那里添加你的条目,就像在普通的
resolv.conf
文件中一样,在你运行命令之后,它应该会更新你在resolv.conf中看到的内容,并做你需要的事情。最后我找到了提示,似乎很有魅力。但以防万一,作为第一步,我宁愿禁用
mv/etc/resolv.conf/etc/resolv.conf
而不是
rm
。以防万一我需要把simlink放回去:)最后一个对我有用。虽然可能不是理想的解决方案,但这一方案至少有效。谢谢,我尝试了4到5种不同的解决方案,直到找到了这个。你帮我省去了很多头痛。