使用 Ubuntu 14.04LTS 并在更改 DNS 时遇到问题。我可以更改 /etc/resolvconf/resolv.conf.d/base 和头文件中的服务器,并使用 sudo resolvconf -u 重新启动 resolvconf,它将使用我所做的更改更新 /etc/resolv.conf。然后我可以挖掘主机名,它告诉我它使用我刚刚指定的服务器。然而,当我运行 nm-tool 时,它仍然显示一些我不知道它们来自哪里的 DNS 服务器。该系统不使用 DHCP,一切都是静态配置的,但以防万一我进入 /etc/dhcp/dhclient.conf 并添加“前置域名服务器 8.8.8.8”,认为这会在顶部手动添加 8.8.8.8我在 nm-tool 中看到的 DNS 服务器。在完成所有这些更改之后,我重新启动了网络,但仍然没有运气。我如何强制 nm-tool 使用我指定的内容以及如何找出这些其他条目的来源。 ?
答案1
我的/etc/dhcp/dhclient.conf
文件使用以下配置,注意这一supercede
行
# Configuration file for /sbin/dhclient, which is included in Debian's
# dhcp3-client package.
#
# This is a sample configuration file for dhclient. See dhclient.conf's
# man page for more information about the syntax of this file
# and a more comprehensive list of the parameters understood by
# dhclient.
#
# Normally, if the DHCP server provides reasonable information and does
# not leave anything out (like the domain name, for example), then
# few changes must be made to this file, if any.
#
option rfc3442-classless-static-routes code 121 = array of unsigned integer 8;
#send host-name "andare.fugue.com";
send host-name = gethostname();
#send dhcp-client-identifier 1:0:a0:24:ab:fb:9c;
#send dhcp-lease-time 3600;
supersede domain-name-servers 208.67.222.222,208.67.220.220,8.8.8.8;
# prepend domain-name-servers 208.67.222.222,208.67.220.220;
request subnet-mask, broadcast-address, time-offset, routers,
domain-name, domain-name-servers, domain-search, host-name,
dhcp6.name-servers, dhcp6.domain-search,
netbios-name-servers, netbios-scope, interface-mtu,
rfc3442-classless-static-routes, ntp-servers,
dhcp6.fqdn, dhcp6.sntp-servers;
这是 nm-tool 的输出,它确认了我的 DNS 服务器
$ nm-tool | awk '/DNS/ {print $2}'
208.67.222.222
208.67.220.220
8.8.8.8
也许还有帮助的是,在我的 中/etc/NetworkManager/NetworkManager.conf
,我已dns=dnsmasq
注释掉该行,以便网络管理器不使用 dnsmasq 插件
除了这个方法之外,我还编写了一个脚本来自动更新每个连接的 dns,这是可以用作替代方法的东西,但想法仍然是相同的 - 忽略 dhcp 提供的 dns,使用您的自己的。详细信息在这里:https://unix.stackexchange.com/a/164728/85039