我有一台运行 Xubuntu 12.04 Desktop 32bit 的笔记本电脑。大约 3 年前,它被全新安装。最近我把它带到国外,并在别人的网络上使用它。我遇到了一些非常常见的网站名称解析问题。我摆弄了一会儿,最终将他们的路由器设置为使用 Google 的 DNS 服务器。然后它完美地运行了 2 周。问题解决了 - 我以为。
但是当我回家并连接到家里的路由器时,DNS 根本不起作用。我尝试将笔记本电脑连接到第三个网络,但仍然无法解析名称。运行 Xubuntu 12.04 和 14.04 的其他台式电脑继续在我的家庭网络上正常工作。
我的路由器是 192.168.2.1,并为笔记本电脑分配 192.168.2.60。
$ nm-tool
...
IPv4 Settings:
Address: 192.168.2.60
Prefix: 24 (255.255.255.0)
Gateway: 192.168.2.1
DNS: 192.168.2.1
$ nslookup askubuntu.com
Server: 127.0.0.1
Address: 127.0.0.1#53
** server can't find askubuntu.com: SERVFAIL
有趣的是,如果我在执行上述操作时嗅探数据包:
$ sudo tcpdump -n -vv -i wlan0 -W 1200 | grep askubuntu.com
192.168.2.60.16887 > 192.168.2.1.53: [udp sum ok] 59738+% [1au] A? askubuntu.com. ar: . OPT UDPsize=4096 OK (42)
192.168.2.1.53 > 192.168.2.60.16887: [udp sum ok] 59738 q: A? askubuntu.com. 1/0/0 askubuntu.com. A 104.16.111.188 (47)
这表明名称解析正在进行并且答案正在被发回。
如果我指定 DNS 服务器,它就会起作用:
$ nslookup askubuntu.com 192.168.2.1
Server: 192.168.2.1
Address: 192.168.2.1#53
Non-authoritative answer:
Name: askubuntu.com
Address: 104.16.113.188
我尝试过这里建议的各种方法:升级到 Ubuntu 13.10(Saucy)后,如何修复 DNS 解析不起作用的问题
$ nmcli dev list iface eth0 | grep IP4.DNS
IP4.DNS[1]: 192.168.2.1
文件/etc/resolv.conf
是指向 的符号链接/run/resolvconf/resolv.conf
。它实际上只包含nameserver 127.0.0.1
。尽管我尝试过sudo dpkg-reconfigure resolvconf
但没有变化。
我尝试注释掉该行dns=dnsmasq
并/etc/NetworkManager/NetworkManager.conf
重新启动网络管理器,但没有变化。我再次取消注释该行。
最近唯一可能相关的调整是,我libunbound2
在出国前在台式电脑上安装了该软件包,以满足 DKIM 验证程序插件的要求(https://github.com/lieser/dkim_verifier/wiki/DNS) 适用于 Thunderbird。该插件以前工作过,现在仍然运行良好。在国外时,我libunbound2
出于同样的原因在笔记本电脑上安装了该软件包,它在国外运行良好。我的理解是,我只是安装了插件要使用的库。
我现在完全不知所措了。如能得到任何帮助,我将不胜感激。