如何防止在Ubuntu 11.10重新启动后覆盖/etc/resolv.conf?
我使用的是Ubuntu 11.10,我在/etc/resolv.conf中手动配置了DNS服务器,但在重新启动后它会被某种程度的覆盖。我怎样才能防止这一点?如何防止在Ubuntu 11.10重新启动后覆盖/etc/resolv.conf?
谢谢。
我认为NetworkManager覆盖了/etc/resolv.conf文件。就我而言,这是我列出的DNS服务器顺序是我想改变的。您可以通过NetworkManager编辑连接IP4V设置来完成此操作。
我用下面一行: chattr命令+我在/etc/resolv.conf
撤消使用: chattr命令-i的/etc/resolv.conf
让我知道它的工作.. 。
网络管理器可以配置为使用手动输入IPv4配置,或者从DHCP IP /掩码/路由器只得到 - 在这种情况下它不应该在/etc/resolv.conf
然而改变,人们可能希望有他的在/etc/resolv.conf中拥有自己的设置 - 就像要搜索的域名服务器或域一样;我只是需要一个域名,我做了通过将文件/etc/NetworkManager/dispatcher.d/99my_fix包含:
#!/bin/bash rc=/etc/resolv.conf; le="search my.domain" grep -q domain $rc && ! grep -q "$le" $rc && echo "$le" >> $rc
当然我搭配chmod-ED + X吧。 NetworkManager在设置/etc/resolv.conf后调用它,如果需要,我的脚本会修复它;第一个grep检测到网络已启动,第二个修复未应用 - 它们都是修复应用所必需的。
正如你在resolv.conf中的标题读出:
Dynamic resolv.conf file for glibc resolver generated by resolvconf
所以,产生resolv.conf的,如果你想保持重启后需要resolvconf配置,你必须编辑/ etc /resolvconf/resolv.conf.d/base。在那个文件中,像在resolv.conf中那样输入你的信息。
nameserver 8.8.8.8
然后重新生成的resolv.conf和resolvconf:
sudo resolvconf -u
阅读其他的答案后,我仍然需要的东西,原因如下不同:
-
我不使用
- ,只是普通的
/etc/resolv.conf
。 - 使用
chattr +i
锁定resolv.conf
似乎太hacky。我需要Puppet在必要时可以*地进行更改。
resolvconf
的best solution我发现覆盖使用其记录挂钩的dhclient
默认行为。
创建于/etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
包含以下内容的新文件:
#!/bin/sh
make_resolv_conf() {
:
}
然后使文件可执行:
chmod +x /etc/dhcp/dhclient-enter-hooks.d/nodnsupdate
现在,当dhclient的运行 - 无论是在重新启动或当您手动运行sudo ifdown -a ; sudo ifup -a
- 它加载这个脚本nodnsupdate
。该脚本覆盖了一个名为make_resolv_conf()
的内部函数,该函数通常会覆盖resolv.conf
,而不会执行任何操作。
这在Ubuntu 12.04上适用于我。
我有同样的问题,我通过添加域名和域名的服务器编辑我的`/etc/dhcp/dhclient.conf”文件
supersede domain-name "local.com"; supersede domain-name-servers 192.168.56.103;
192.168.56.103是我的虚拟机运行bind9和我的域名是local.com
我已经从request
部分删除了相同的部分。
如果服务器实例的网络接口受DHCP控制,则每当网络服务重新启动时,dhclient程序都会覆盖/etc/resolv.conf文件。
您可以通过编辑“/etc/dhcp/dhclient.conf”文件并添加取代了域名,域搜索和域名的服务器如下语句解决这个问题:
supersede domain-name "mydomain.com";
supersede domain-search "mydomain.com"
supersede domain-name-servers 8.8.8.8;
在这种特殊情况下,名称服务器位于“8.8.8.8”,域名是“mydomain.com”。替换您的特定信息。
请注意,每行都以分号终止,域名用双引号括起来。
我试过你链接到的解决方案,但它不起作用。看起来网络管理器是这样做的,因为/etc/resolv.conf中的第一行显示为:“#由NetworkManager生成”。一般来说,有没有办法知道编辑/etc/resolv.conf的程序? – mkhezr 2013-03-12 17:55:13