指定DNS设置以覆盖DHCP的设置


12

每隔6个月左右,我将无法在使用的任何路由器上访问DNS。通常必须手动将名称服务器添加到/etc/resolv.conf文件中。我尝试将Google免费DNS添加到文件中,但它没有任何改变。我不必每次去其他咖啡店都不必手动更改文件,该怎么办?


您使用哪个dhcp客户端?应该有一个配置选项来忽略dhcp提供的DNS。
casey 2014年

我正在使用Network-Manager而不是ifup。
John Coder 2014年

Answers:


21

您可以将以下行添加到/etc/dhcp/dhclient.conf

prepend domain-name-servers <working DNS IP(s) here>;

这会将您指定的DNS IP地址添加到由DHCP提供的DNS IP地址之前。如果您想在DHCP提供的地址之后添加它/它们,只需使用

append domain-name-servers <working DNS IP(s) here>;

相反,如果您想完全忽略DHCP提供的DNS地址,请使用

supersede domain-name-servers <working DNS IP(s) here>;

1
@casey是的。请查看更新。
约瑟夫R.14年

由于我根本没有DNS功能,因此不确定我是否必须从窗口中执行此操作。我可以仅在没有名称服务器识别的情况下ping四元符号
John Coder 2014年

@JohnCoder我不确定我是否理解您的意思。请澄清...
Joseph R.

例如,我可以ping google dns 8.8.8.8,但不能在Linux框中ping goggle.com,但是由于我无法从Linux框中访问名称服务器,因此我从Windows框中发布了此内容。我会重启,然后看看。
John Coder 2014年

@JohnCoder你得到host google.com 8.8.8.8什么?
约瑟夫R.14年

3

通过将其放入网络的配置文件(/etc/NetworkManager/system-connections/my-essid如果保存到系统中),可以告诉NetworkManager忽略DHCP提供的DNS服务器。

重要的一点是 ignore-auto-dns=true

[ipv4]
ignore-auto-dns=true
dns=8.8.8.8;
method=auto

有什么方法可以在所有连接上强制执行此设置吗?我的意思是,我可以将其设置为默认值,以便当我连接到另一个WiFi时,它将自动忽略其DHCP的DNS吗?
Vojtech Kane,
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.