我正在使用Ubuntu 11.10并在/etc/resolv.conf中手动配置DNS服务器,但在重新启动后它会以某种方式被覆盖。我该如何防止这种情况?
感谢。
答案 0 :(得分:11)
正如你可以在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
然后使用resolvconf重新生成resolv.conf:
sudo resolvconf -u
答案 1 :(得分:3)
在阅读其他答案后,由于以下原因,我仍然需要不同的东西:
resolvconf
,只是简单/etc/resolv.conf
。chattr +i
锁定resolv.conf
似乎过于苛刻。我需要Puppet在必要时自由更改。我发现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上有用。
答案 2 :(得分:2)
我认为NetworkManager正在覆盖/etc/resolv.conf文件。就我而言,我的DNS服务器列出的顺序是我想要改变的。您可以通过编辑连接IP4V设置通过NetworkManager执行此操作。
答案 3 :(得分:0)
你有DHCP客户端这样做。请按照instructions覆盖它。
答案 4 :(得分:0)
我使用以下行: chattr + i /etc/resolv.conf
撤消使用: chattr -i /etc/resolv.conf
让我知道它是否有效......
答案 5 :(得分:0)
可以将NetworkManager配置为使用手动输入的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吧。设置/etc/resolv.conf后,NetworkManager会调用它,如果有必要,我的脚本会修复它;第一个grep检测到网络已启动,第二个没有应用修复 - 它们都是应用修复所必需的。
答案 6 :(得分:0)
我有同样的问题,我编辑了我的`/etc/dhcp/dhclient.conf'文件通过添加域名和域名服务器
.row-fluid
192.168.56.103是我的运行bind9的vm,我的域名是local.com
我也从supersede domain-name "local.com";
supersede domain-name-servers 192.168.56.103;
部分删除了它。
答案 7 :(得分:0)
如果服务器实例的网络接口由DHCP控制,则只要重新启动网络服务,dhclient程序就会覆盖/etc/resolv.conf文件。
您可以通过编辑“/etc/dhcp/dhclient.conf”文件并为域名,域名搜索和<添加替代语句来解决此问题。 strong>域名服务器如下:
supersede domain-name "mydomain.com";
supersede domain-search "mydomain.com"
supersede domain-name-servers 8.8.8.8;
在这种特殊情况下,名称服务器位于“8.8.8.8”,域名为“mydomain.com”。替换您的特定信息。
请注意,每一行都以分号结尾,域名用双引号括起来。