【问题标题】:How do I edit resolv.conf? [closed]如何编辑 resolv.conf? [关闭]
【发布时间】:2013-10-26 06:09:00
【问题描述】:

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

【问题讨论】:

  • sudo vi resolv.conf

标签: linux dns


【解决方案1】:

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

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

【讨论】:

  • Linux rwilson-Inspiron-1318 3.8.0-31-generic #46-Ubuntu SMP Tue Sep 10 19:56:49 UTC 2013 i686 i686 i686 GNU/Linux 我的系统有文件“/etc /resolvconf/resolv.conf.d/base" 但它是空的
  • 它只包括该文件中的内容以及它动态计算的其他条目。像添加普通的resolv.conf 文件一样在那里添加您的条目​​,在您运行命令后,它应该更新您在 resolv.conf 中看到的内容并执行您需要的操作。
【解决方案2】:

您的系统使用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-* 信息
$ 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

【讨论】:

  • 最后我选择了 TIP,似乎很有魅力。但以防万一,作为第一步,我更喜欢mv /etc/resolv.conf /etc/resolv.conf.disabled 而不是rm。以防万一我需要把simlink放回去:)
  • 最后一个对我有用。虽然可能不是理想的解决方案,但这个至少可行。谢谢,在找到这个之前,我尝试了 4 或 5 种不同的解决方案。你帮我省了很多麻烦。
猜你喜欢
  • 2013-05-07
  • 2017-04-23
  • 2013-05-18
  • 1970-01-01
  • 1970-01-01
  • 2016-09-19
  • 1970-01-01
  • 2010-09-21
  • 2012-03-19
相关资源
最近更新 更多