Linux 如何编辑resolv.conf?
我需要设置OpenDNS,但无法编辑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
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种不同的解决方案,直到找到了这个。你帮我省去了很多头痛。