![使用不同的操作系统时,本地计算机的名称查找失败](https://linux22.com/image/1523949/%E4%BD%BF%E7%94%A8%E4%B8%8D%E5%90%8C%E7%9A%84%E6%93%8D%E4%BD%9C%E7%B3%BB%E7%BB%9F%E6%97%B6%EF%BC%8C%E6%9C%AC%E5%9C%B0%E8%AE%A1%E7%AE%97%E6%9C%BA%E7%9A%84%E5%90%8D%E7%A7%B0%E6%9F%A5%E6%89%BE%E5%A4%B1%E8%B4%A5.png)
这有效
- 通过 ip 地址查找
- 从另一台 GNU/Linux 机器查找一台 GNU/Linux 机器的 IP
- 从 Windows 7 计算机查找 Windows XP 计算机的 IP
- 从任何机器查找路由器 IP
这不起作用:
- 从 Windows 查找到 GNU/Linux 或反之亦然
- nslookup 无论如何
有关路由器(D-LINK)的信息:
Model Name: DIR-859
Hardware Version: A3
Firmware Version: 1.04
我试过 nslookup,但失败了。这是我在 Linux 提示符下得到的结果(darkmatter 也运行 Linux,所以这应该有效):
nslookup darkmatter.local
Server: 127.0.1.1
Address: 127.0.1.1#53
** server can't find darkmatter.local: NXDOMAIN
但
PING darkmatter.local (192.168.0.45) 56(84) bytes of data.
64 bytes from 192.168.0.45: icmp_seq=1 ttl=64 time=0.626 ms
64 bytes from 192.168.0.45: icmp_seq=2 ttl=64 time=0.728 ms
64 bytes from 192.168.0.45: icmp_seq=3 ttl=64 time=0.498 ms
64 bytes from 192.168.0.45: icmp_seq=4 ttl=64 time=0.483 ms
^C
--- darkmatter.local ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3001ms
rtt min/avg/max/mdev = 0.483/0.583/0.728/0.104 ms
如果我尝试从 Windows 7 机器(DNS后缀为本地)使用 darkmatter:
ping darkmatter
Ping-begäran kunde inte hitta värddator darkmatter. Kontrollera namnet och prova igen.
然而:
ping 192.168.0.45
Skickar ping-signal till 192.168.0.45 med 32 byte data:
Svar från 192.168.0.45: byte=32 tid=1ms TTL=64
Svar från 192.168.0.45: byte=32 tid < 1 ms TTL=64
Svar från 192.168.0.45: byte=32 tid < 1 ms TTL=64
Svar från 192.168.0.45: byte=32 tid < 1 ms TTL=64
Ping-statistik för 192.168.0.45:
Paket: Skickade = 4, Mottagna = 4, Förlorade = 0 (0 %),
Ungefärlig överföringstid i millisekunder:
Lägsta = 0 ms, Högsta = 1 ms, Medel = 0 ms
更换路由器后出现该问题。
答案1
这可能是因为与大多数其他操作系统不同,Windows 不支持 .local 域的 IETF ZeroConf mDNS RFC。相反,微软选择创建一个名为 LLMNR 的专有事物,并使用 .local 作为该事物。
当桌面 Linux 机器使用 .local 时,它通常会使用 Avahi,它是 IETF ZeroConf RFC 的开源实现。Android Linux 设备使用 Apple 开发的 POSIX 可移植、开源 mDNSResponder 守护程序(Bonjour 只是 Apple 为 IETF ZeroConf mDNS 设计的品牌)。
苹果产品也使用mDNSResponder。
Apple 为 Windows 维护了一个 mDNSResponder 端口,称为 Bonjour for Windows。安装它可能是让标准 IETF ZeroConf mDNS 支持在 Windows 上运行的最简单方法,这样它就可以正确地与您的 Linux、Android 和 Apple 设备进行互操作。