在我的本地计算机(Ubuntu)上,如果我要ping不存在的主机名,ping命令将返回
$ ping somefakedomain.com.au ping: unknown host somefakedomain.com.au
然而,在我的远程centOS服务器上的相同的命令返回完全不同的结果
$ ping somefakedomain.com.au PING texh.net (103.4.16.120) 56(84) bytes of data. 64 bytes from toph.texh.net (103.4.16.120): icmp_seq=1 ttl=64 time=0.046 ms ...
这真的让我难住,如果有人有任何想法,我会很乐意。 我尝试了谷歌search,但所有我似乎能够find是相反的问题,人们无法ping有效的主机由于各种networking问题。
我打算做的是build立一个cron作业来ping几台服务器来检查他们是否仍然在线,并且测量两者之间的networking延迟,但是如果其中一台服务器发生故障,会简单地ping本身并返回误报。
检查你的/etc/resolv.conf,看看你是否有名称服务器来parsing域名,如果我们有名称服务器条目丢失,我们也会得到这个错误
我怀疑你的麻烦是, texh.net不是一个虚假的域名。 当我尝试时,它parsing为103.4.16.120 。 对于toph.texh.net我得到了103.4.16.251 ,但我根本无法得到103.4.16.120的反向查找。 你的问题是你得到一个IP地址,因此它不是一个“未知的主机”。
当select一个虚假的域名,确保它实际上不存在。
另外,将您的问题中的域名( 大部分出现)更改为somefakedomain.com.au混淆该问题,因为该域名实际上不存在。 只是因为你错过了其中两个才能看到真正的问题。
在testingDNSparsing时, dig是你应该使用的工具,而不是ping 。 ping让你无法控制你使用的名字服务器或你查找的loggingtypes。 ping也会看你的主机文件(取决于你的nsswitch.conf ),这可能会进一步混淆这个问题。
注意 :如果你使用OpenDNS,他们将返回一个他们拥有的IP地址,当他们返回一个NXDOMAIN响应。 您可以通过在他们的网站上创build一个帐户并在设置部分select选项或使用不同的DNS服务来退出。