为什么 Ubuntu Mate 使用 Google DNS 服务器?

为什么 Ubuntu Mate 使用 Google DNS 服务器?

更新:看起来它avahi-dnsconfd正在添加8.8.8.88.8.4.4我的/etc/resolv.conf文件中。我在 /var/log/syslog 中找到了以下内容:

Jan  4 17:00:21 freewill nm-dispatcher: req:1 'up' [ens33]: start running ordered scripts...
Jan  4 17:00:21 freewill avahi-dnsconfd[3579]: New DNS Server 8.8.4.4 (interface: 2.IPv4)
Jan  4 17:00:21 freewill avahi-dnsconfd[3579]: New DNS Server 8.8.8.8 (interface: 2.IPv4)

如何让 Ubuntu 从 DHCP 获取 DNS 服务器仅有的不是使用 Avahi (mDNS) 获取 DNS 服务器?


我正在测试 Ubuntu Mate 16.04.1 LTS,遇到了问题,因为有些东西不断将 Google 的 DNS 服务器添加到/etc/resolv.conf

josh@freewill:~$ cat /etc/resolv.conf 
# Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
#     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
nameserver 10.100.1.1
nameserver 8.8.4.4
nameserver 8.8.8.8
search my.domain.name

我不希望8.8.4.4这样,8.8.8.8因为/etc/resolv.conf这会破坏我的本地网络:我的本地 DNS 服务器(10.100.1.1)为没有公共 DNS 记录的本地 NAT 服务提供 DNS。

如果我手动编辑/etc/resolv.conf并删除 Google DNS 名称服务器,它们会通过重新启动或resolvconf -u

NetworkManager 没有列出 8.8.8.8 或 8.8.4.4其他 DNS 服务器所以这不是原因。

该系统有三个以太网接口,只有一个连接。它与提供 DNS 信息的 DCHP 服务器位于同一网络上。内容如下/etc/network/interfaces

# interfaces(5) file used by ifup(8) and ifdown(8)
auto lo
iface lo inet loopback

我已经运行过了,配置文件中grep -R '8\.8\.8\.8' /etc没有其他引用。下面也没有提到 Google DNS 服务器!8.8.8.8/etc/resolvconf

为什么 Ubuntu Mate 要添加 Google DNS 服务器/etc/resolv.conf?我该如何停止它?目前,我已经这样做了sudo rm /etc/resolv.conf; sudo cp /run/resolvconf/resolv.conf /etc/resolv.conf; sudo chattr +i /etc/resolv.conf,但我知道将来这会给我带来麻烦……

答案1

经过大量调查(在@Terrance 的帮助下),我发现 Ubuntu Mate 正在使用avahi-dnsconfd我的网络上的一些其他设备(可能是 Raspberry Pi)正在通过 mDNS / Bonjor / Avahi 广播 Google 的 DNS 服务器。

avahi-dnsconfd正在捡起它,什么时候avahi-dnsconfd.action运行后,它调用resolvconf添加通过 mDNS 发现的 DNS 服务器/etc/resolf.conf

我禁用avahi-dnsconfd了:

sudo systemctl stop avahi-dnsconfd.service
sudo systemctl disable avahi-dnsconfd.service

为了保险起见,我还进行了编辑/etc/default/avahi-daemon和设置AVAHI_DAEMON_DETECT_LOCAL=0(因为我知道我的网络没有为 TLD 提供服务的单播 DS 服务器.local

答案2

您不需要/etc/resolve.conf直接编辑文件,只需调用 即可完成resolvconf - u

您应该编辑该文件:

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

反而。

请确保首先创建备份,以防出现任何问题:

sudo cp /etc/resolvconf/resolv.conf.d/head /etc/resolvconf/resolv.conf.d/head.backup 

然后编辑它以添加你的DNS 名称服务器。这是我使用的 openDNS(推荐):

bitofagoob@me:~$ cat /etc/resolvconf/resolv.conf.d/head

    # Dynamic resolv.conf(5) file for glibc resolver(3) generated by resolvconf(8)
    #     DO NOT EDIT THIS FILE BY HAND -- YOUR CHANGES WILL BE OVERWRITTEN
    nameserver 208.67.222.222
    nameserver 208.67.220.220

然后运行resolvconf - u,名称服务器信息将从文件复制/etc/resolvconf/resolv.conf.d/head/etc/resolv.conf文件。

系统需要这样设置才能有效。

相关内容