![无法通过主机名 ping 通](https://linux22.com/image/1063472/%E6%97%A0%E6%B3%95%E9%80%9A%E8%BF%87%E4%B8%BB%E6%9C%BA%E5%90%8D%20ping%20%E9%80%9A%20.png)
我遇到了一个奇怪的情况。通过 IP 进行 Ping 可以正常工作,但通过主机名进行 Ping 却失败。我的观察结果如下:
nslookup -type=ns google.com
;; connection timed out; no servers could be reached
在一个窗口中我调用了:
ping google.com
ping: unknown host google.com
在另一个窗口中我看到了以下内容:
sudo tcpdump -n -i eno1 |grep -A5 172.27.1.100.53 # this is my dns server
11:06:57.336938 IP 172.27.6.77.48852 > 172.27.1.100.53: 61526+ A? google.com. (28)
11:06:57.337151 IP 172.27.1.100.53 > 172.27.6.77.48852: 61526 1/0/0 A 172.217.12.110 (44)
11:06:57.337170 IP 172.27.6.77 > 172.27.1.100: ICMP 172.27.6.77 udp port 48852 unreachable, length 80
正如您在 tcpdump 中看到的,DNS 服务器有一个响应,并且 google.com 被正确解析:172.217.12.110。
这是怎么回事?我能以某种方式进行更多调试吗?
我知道当我重启网络时它会正常工作,因为之前发生过几次。这只是一种解决方法,并不能解决我的问题。
我正在使用 ubuntu 16.04(桌面版)。
谢谢。
答案1
我调查了这些问题: resolv.conf 中的名称服务器 127.0.1.1 不会消失! 升级到 Ubuntu 13.10(Saucy)后,如何修复 DNS 解析不起作用的问题 并通过禁用 /etc/NetworkManager/NetworkManager.conf 中的行“dns=dnsmasq”来做一个技巧。
看起来这解决了我的问题。