问题描述
我的 /etc/resolv.conf
文件每次都会重新生成,使我在重新连接 3G 调制解调器时失去 Google DNS 服务器。
为了更改 DNS 设置,我查看了 http://code.google.com/intl/fr-FR/speed/public-dns/docs/using.html 。
我的 dhclient.conf
相当大(58 行),所以我将其发布在 pastebin 上。
但是,这是整个 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
而不是网络管理器。
最佳回答
在12.04中,默认安装了resolvconf。以下是如何针对一些常见用例进行 DNS 配置更改的快速摘要:
对于使用 ifup
的静态配置,请使用 /etc/network/interfaces
中的 dns-nameservers
和 dns-search
条目。
对于使用 NetworkManager
的静态配置,选择 Automatic (DHCP) addresses only
Method
并在连接编辑器的 Additional DNS servers
和 Additional search domains
字段中输入地址和域名。
要覆盖 resolvconf 的默认配置,请在 /etc/resolvconf/resolv.conf.d/
中使用 base
、 head
和 tail
。仅在这些文件中输入地址和域名作为临时措施,因为它们实际上属于其他地方,如上所述。
不建议禁用 resolvconf,但您可以将符号链接 /etc/resolv.conf
替换为常规文件。
有关详细信息,请参阅 St\xe9phane Graber 的 blog post 。
次佳回答
如果您只想将 Google DNS 服务器保留在 resolv.conf 中,则可以编辑\n /etc/dhcp3/dhclient.conf
并添加:
prepend domain-name-servers 8.8.8.8;
prepend domain-name-servers 8.8.4.4;
你所拥有的和我在这里展示的唯一区别是,根据你提到的文档,你在一行上有两个 name-servers 。
除非我遗漏了什么,否则你的 dhclient.conf 在这里不是问题。 \n此时,我假设问题与 wvdial 有关。
以下是来自 ubuntuforums 的尝试:
gksudo gedit /etc/ppp/peers/wvdial
删除参数 usepeerdns 并保存文件。\n代码:
gksudo gedit /etc/wvdial.conf
添加这些行:
check DNS = no
auto DNS = no
第三种回答
通过 CLI 设置名称服务器(无需 NetworkManger、使用静态地址或独立于连接)的最佳方法是:
安装 resolvconf 软件包。
跑步
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