我的/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-nameservers
和dns-search
条目/etc/network/interfaces
。
对于使用 的静态配置NetworkManager
,选择并在连接编辑器中的和字段Automatic (DHCP) addresses only
Method
中输入地址和域名。Additional DNS servers
Additional search domains
要覆盖 resolvconf 的默认配置,请使用中的 和。base
仅在这些文件中输入地址和域名作为临时措施,因为它们实际上属于其他地方,如上所述。head
tail
/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