在 Windows 7 客户端上,当我 ping LAN 主机 MYSTERY 时,它给了我正确的 IP。但是,当我执行 nslookup MYSTERY 时,它说域不存在。我检查了 ipconfig 中列出的 DNS,发现主机名 MYSTERY 确实没有列出。DHCP 服务器也没有该条目。在我执行 ipconfig /flushdns 后会发生相同的行为。本地 Windows 主机文件中也没有条目。
如何找出客户端在哪里获得解析的 IP?
注意:MYSTERY 是配置为加入网络域的 Synology Rackstation。
你的 Windows 机器必须有某种 mDNS 解析器 ( Bonjour ),让它来自 iTunes、Skype 或其他安装 mDNS 解析器的软件。
ping
如果安装了解析器,将正确解析,因为LLMNR现在在 Windows Vista 及更高版本中使用。LLMNR 利用 mDNS 解析器返回记录。Synology 使用一个名为 avahi 的守护程序,这是一个多播 DNS /mDNS/DNS-SD 服务器。出厂时,Synology 开箱即用,根据我的经验将其配置为“RackStation”或主机名。
如果您有 Mac,
dns-sd -B
将向您显示多播服务。您将看到 _http._tcp.local。为 RackStation 列出的服务。dns-sd -G v4 RackStation.local
应该为您的 RackStation 提供正确的 IP 地址dns-sd -L RackStation _http._tcp.
应该返回服务的所有信息,包括端口号、序列号、型号等这也适用于 DiskStation。我在 DiskStation 上进行了测试。RackStation 应该是一样的。
(这个答案可能是错误的。@xeon 似乎在正确的轨道上,我在这里学到了一些东西。)
DNS 查找失败的原因是 ping 没有使用 DNS 来解析该名称。
nslookup
是用于 DNS 查找的命令。ping
另一方面也会尝试使用NetBIOS / WINS和hosts 文件进行名称解析。最可能的情况是该名称是通过前者获得的。您可以使用
nbtstat -c
列出最近看到的 NetBIOS 名称和 IP 地址,或者nbtstat -a <device>
如果您想主动搜索名称。请记住,这-a
将花费更长的时间,因为它必须在每个界面上尝试一次。(你不能告诉它跳过广播/只使用 WINS)该
-r
选项可让您比较通过广播解决的内容与通过 WINS 解决的内容,但这变得更高级了。检查您的 Windows主机文件以确保您没有硬编码的条目。这将强制名称解析,即使它在那里无法解析。