我遇到了一个每隔几天就会出现的问题,即 ping 无法解析我的 LAN 上的主机名(但 nslookup 可以)。这是在 OSX 10.9.2(最新版本)上。
在这种情况下,机器被称为“solo”,尽管它可能在不同时间与其他主机名一起出现。我的网络基础设施没有发生变化,而且我从经验中知道它会在一段时间后自行修复(尽管修复它会发生什么尚不清楚)。
我知道 ping 在最终发出 dns 请求之前会参考本地资源,但是 /etc/hosts 中没有任何内容,并且我已经刷新了本地 dns 缓存(以及服务器缓存)
有人能解释这种现象吗?
ping 无法解决‘solo’问题
[carpii@imac:~]$ ping solo
ping: cannot resolve solo: Unknown host
刷新本地 DNS 缓存以获得更好的效果
[carpii@imac:~]$ flushdns````
ping 'creek',这是我的 dns 服务器
[carpii@imac:~]$ ping creek
PING creek.carpnet (192.168.1.2): 56 data bytes
64 bytes from 192.168.1.2: icmp_seq=0 ttl=128 time=2.640 ms
64 bytes from 192.168.1.2: icmp_seq=1 ttl=128 time=2.702 ms
nslookup 可以单独解析,并使用正确的 DNS 服务器
[carpii@imac:~]$ nslookup solo
Server: 192.168.1.2
Address: 192.168.1.2#53
Name: solo.carpnet
Address: 192.168.1.79
通过 ip ping ‘solo’
[carpii@imac:~]$ ping 192.168.1.79
PING 192.168.1.79 (192.168.1.79): 56 data bytes
64 bytes from 192.168.1.79: icmp_seq=0 ttl=64 time=6.294 ms
64 bytes from 192.168.1.79: icmp_seq=1 ttl=64 time=2.801 ms
但我仍然无法通过主机名进行 ping
[carpii@imac:~]$ ping solo
ping: cannot resolve solo: Unknown host
即使有 DNS 后缀
[carpii@imac:~]$ ping solo.carpnet
ping: cannot resolve solo.carpnet: Unknown host
对同一 DNS 服务器提供服务的另一台 LAN 机器执行 ping 操作
[carpii@imac:~]$ ping nelson
PING nelson.carpnet (192.168.1.66): 56 data bytes
64 bytes from 192.168.1.66: icmp_seq=0 ttl=64 time=6.297 ms
64 bytes from 192.168.1.66: icmp_seq=1 ttl=64 time=2.712 ms
[更新:可以 ssh 进入另一个局域网主机,并能从那里单独解决]
[carpii@imac:~]$ ssh node@node
/www/nodechat> ping solo
PING solo.carpnet (192.168.1.79) 56(84) bytes of data.
64 bytes from solo.carpnet (192.168.1.79): icmp_seq=1 ttl=64 time=2.02 ms