Ubuntu 客户端忽略本地网络上的 DNS 服务器

Ubuntu 客户端忽略本地网络上的 DNS 服务器

我目前在桌面 Ubuntu 15.04 安装上运行了一个 dnsmasq DNS 服务器。我使用它来指向我网络上的本地设备。例如,我有一条记录将 kerberos.dgourd.com 链接到 192.168.1.106(我的桌面 IP 地址)。但是,这个名称从未被解析过。

我将路由器设置为分配三个 DNS 服务器:

  1. 192.168.1.106(我的本地 DNS 服务器)
  2. 8.8.8.8(两个 Google DNS 服务器)
  3. 8.8.4.4

在我的笔记本电脑上(也运行着 Ubuntu 15.04),我运行nmcli dev show | grep DNS以确保它使用了正确的名称服务器,并得到了以下结果:

IP4.DNS[1]:    192.168.1.106
IP4.DNS[2]:    8.8.8.8
IP4.DNS[3]:    8.8.4.4
IP4.DNS[4]:    192.168.1.1

运行dig kerberos.dgourd.com结果没有返回任何记录:

; <<>> DiG 9.9.5-9ubuntu0.2-Ubuntu <<>> kerberos.dgourd.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NXDOMAIN, id: 51586
;; flags: qr rd ra ad; QUERY: 1, ANSWER: 0, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;kerberos.dgourd.com.       IN  A

;; Query time: 1 msec
;; SERVER: 127.0.1.1#53(127.0.1.1)
;; WHEN: Sat Aug 22 16:31:48 CDT 2015
;; MSG SIZE  rcvd: 37

但是,运行dig @192.168.1.106 kerberos.dgourd.com结果是返回正确的记录:

; <<>> DiG 9.9.5-9ubuntu0.2-Ubuntu <<>> @192.168.1.106 kerberos.dgourd.com
; (1 server found)
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 51972
;; flags: qr aa rd ra ad; QUERY: 1, ANSWER: 1, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;kerberos.dgourd.com.       IN  A

;; ANSWER SECTION:
kerberos.dgourd.com.    0   IN  A   192.168.1.106

;; Query time: 5 msec
;; SERVER: 192.168.1.106#53(192.168.1.106)
;; WHEN: Sat Aug 22 16:36:05 CDT 2015
;; MSG SIZE  rcvd: 53

到目前为止,我完全搞不懂为什么会发生这种情况。有时,我的计算机会自发地开始正确解析这些地址,然后又恢复到忽略我的 DNS 服务器。有人对我下一步可以做什么来进一步调查这个问题有什么建议吗?

答案1

我认为这与 NetworkManager 控制 DNS 和 DHCP(通过 dnsmasq)有关。如果您可以在 /etc/NetworkManager 中编辑 NetworkManager.conf,并将 dns=dnsmasq 替换为 dns=192.168.1.106,它应该可以工作。当然,在尝试使用 dig 之前,请重新启动 NetworkManager 服务。

相关内容