为什么我的 resolv.conf 文件每次都会重新生成?

为什么我的 resolv.conf 文件每次都会重新生成?

我的/etc/resolv.conf文件每次都会重新生成,当我重新连接 3G 调制解调器时,我会丢失 Google DNS 服务器。

为了更改 DNS 设置,我查看了http://code.google.com/intl/fr-FR/speed/public-dns/docs/using.html

我的dhclient.conf很大(58 行),所以我把它发布在粘贴箱

dhclient.conf但是,这里是没有注释行或空行的完整内容:

option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
send host-name "<hostname>";
request subnet-mask, broadcast-address, time-offset, routers,
    domain-name, domain-name-servers, domain-search, host-name,
    netbios-name-servers, netbios-scope, interface-mtu,
    rfc3442-classless-static-routes, ntp-servers;
prepend domain-name-servers 8.8.8.8, 8.8.4.4;

我正在使用wvdial网络管理器。

答案1

在 12.04 中,resolvconf 是默认安装的。下面简要介绍了如何针对某些常见用例更改 DNS 配置:

对于使用静态配置ifup,请使用中的dns-nameserversdns-search条目/etc/network/interfaces

对于使用 的静态配置NetworkManager,选择并在连接编辑器中的和字段Automatic (DHCP) addresses only Method中输入地址和域名。Additional DNS serversAdditional search domains

要覆盖 resolvconf 的默认配置,请使用中的 和。base仅在这些文件中输入地址和域名作为临时措施,因为它们实际上属于其他地方,如上所述。headtail/etc/resolvconf/resolv.conf.d/

不建议禁用 resolvconf,但您可以/etc/resolv.conf用常规文件替换符号链接。

欲了解更多信息,请参阅 Stéphane Graber 的博客文章

答案2

如果您只想将 Google DNS 服务器保留在 resolv.conf 中,则可以编辑
/etc/dhcp3/dhclient.conf并添加:

prepend domain-name-servers 8.8.8.8;
prepend domain-name-servers 8.8.4.4;

您所拥有的和我在此处展示的内容之间的唯一区别是,根据您提到的文档,您在一行上拥有两个名称服务器。

除非我遗漏了什么,否则您的 dhclient.conf 不会有问题。目前,我假设问题与 wvdial 有关。

以下是一些值得尝试的东西ubuntu论坛

gksudo gedit /etc/ppp/peers/wvdial

删除参数 usepeerdns 并保存文件。代码:

gksudo gedit /etc/wvdial.conf

添加以下几行:

check DNS = no
auto DNS = no

答案3

通过 CLI 设置名称服务器的最佳方式(无需 NetworkManger、使用静态地址或独立于连接)如下:

安装解析配置包裹。

跑步

sudo nano /etc/resolvconf/resolv.conf.d/head

(忽略可怕的警告。/etc/resolv.conf 是自动生成的,所以有警告,所以当 /etc/resolv.conf 生成时它会被放入 /etc/resolv.conf 中。)在文件末尾添加

 nameserver <ip_of_nameserver>

Ctrl x并回答“是”以保存文件。最后,重新生成 /etc/resolv.conf,以便立即应用更改:

 sudo resolvconf -u

答案4

我使用以下命令解决了同样的问题:

echo "nameserver 212.217.0.1" >> /etc/resolvconf/resolv.conf.d/head
ln -s /etc/resolvconf/resolv.conf.d/head /etc/resolv.conf
resolvconf -u
/etc/init.d/networking restart

相关内容