我有一台名为的 Windows 机器abcd
,它使用 DHCP 来接收 IP 地址(172.28.45.5
例如)
当我执行时,ping -a 172.28.45.5
有时我会收到abcd
主机名。有时我会收到 FQDN,例如abcd.xxx.yyy.com
,这是首选且准确的方式。
为什么我有时会收到主机名,而其他时候收到 FQDN?这是否表明 DNS 在某种程度上已损坏?
答案1
ping
不是名称解析工具。它是一个 ICMP 工具,其中附加了一些 DNS 功能。ping
在 Windows 计算机上将其用作名称解析故障排除工具时,您将在 NetBIOS、可能的 WINS、主机文件、解析器缓存和(如果您幸运的话)DNS 服务器的响应之间来回切换。您的里程可能会有所不同,内容可能会在运输过程中沉淀,产品按重量而不是体积出售,并且照片会放大以显示纹理。
首选方法,实际上是 Windows 上 DNS 解析的权威故障排除方法,是使用nslookup
执行反向查找。例如,nslookup 172.28.45.5
。您可以明确设置要查询的服务器,并将返回记录类型限制为仅 PTR 记录。
如果您曾经nslookup
从同一台服务器执行反向查询,但得到的响应却不尽相同,那么 DNS 肯定出了问题。如果出于某种原因,您确实真的想要ping -a
保持一致,那么您将需要刷新解析器缓存(ipconfig /flushdns
),完全禁用 NetBIOS(感觉不错,伙计),确保您的 hosts 文件中没有任何内容,然后在每次执行之前进行严肃的祈祷,ping -a
因为我仍然不会 100% 信任它。
nslookup
很好,想成为你的朋友。