在我的局域网上,我有三个基本相同的Debian
Linux盒子运行Avahi.其中一个同时具有IPv4地址和IPv6地址,另外两个只有IPv6地址.它们都出现在Mac上的Bonjour浏览器中,如下所示:
Workgroup Manager (_workstation._tcp.) - 4
Box-1 [00:60:2b:02:45:f8]
[fe80::260:2bff:fe02:45f8]:9
192.168.1.78:9
Box-2 [00:60:2b:02:46:1b]
[fe80::260:2bff:fe02:461b]:9
Box-3 [00:60:2b:02:42:e2]
[fe80::260:sbff:fe02:42e2]:9
从我的Mac,一切都很好……我可以解决Box-1.local.,Box-2.local.,Box-3.local.,ping6到任何一个,ssh到其中任何一个,等等.
但是,我的Windows 7机器只能看到Box-1.例如,在命令提示符窗口中执行dns-sd会让我这样:
C:\>dns-sd -B _ssh._tcp browsing for _ssh._tcp Timestamp A/R Flags if Domain Service Type Instance Name 12:41:14.492 Add 2 17 local. _ssh._tcp. Box-1 SSH
通过Bonjour名称和IPv6对该框进行Ping操作:
C:\>ping -6 msli-dcm-2-10330688.local. Pinging msli-dcm-2-10330688.local. [fe80::260:2bff:fe02:45f8%17] with 32 bytes of data: Reply from fe80::260:2bff:fe02:45f8%17: time=1ms Reply from fe80::260:2bff:fe02:45f8%17: time<1ms Reply from fe80::260:2bff:fe02:45f8%17: time<1ms
…就像通过IPv6地址ping其他框一样:
C:\>ping -6 fe80::260:2bff:fe02:461b
Pinging fe80::260:2bff:fe02:461b with 32 bytes of data:
Reply from fe80::260:2bff:fe02:461b: time=4ms
Reply from fe80::260:2bff:fe02:461b: time<1ms
Reply from fe80::260:2bff:fe02:461b: time<1ms
Reply from fe80::260:2bff:fe02:461b: time<1ms
Ping statistics for fe80::260:2bff:fe02:461b:
Packets: Sent = 4,Received = 4,Lost = 0 (0% loss),Approximate round trip times in milli-seconds:
Minimum = 0ms,Maximum = 4ms,Average = 1ms
C:\>ping -6 fe80::260:2bff:fe02:42e2
Pinging fe80::260:2bff:fe02:42e2 with 32 bytes of data:
Reply from fe80::260:2bff:fe02:42e2: time<1ms
Reply from fe80::260:2bff:fe02:42e2: time<1ms
Reply from fe80::260:2bff:fe02:42e2: time<1ms
Reply from fe80::260:2bff:fe02:42e2: time<1ms
Ping statistics for fe80::260:2bff:fe02:42e2:
Packets: Sent = 4,Maximum = 0ms,Average = 0ms
….似乎Bonjour for Windows根本无法识别已发布的主机,除非它具有IPv4地址.这是一个在Windows的Bonjour中的错误,还是我做错了什么? FWIW,我的Windows 7机器正在运行Bonjour 2.0.2.0
dig @ 224.0.0.251 -p 5353 ptr _ssh._tcp.local是否会报告您查询的任何一台机器?
如果你无法挖掘Windows,那么试试吧
nslookup -q = ptr -port = 5353 _ssh._tcp.local 224.0.0.251
nslookup -q = any -port = 5353 Box-2.local 224.0.0.251
nslookup -q = aaaa -port = 5353 Box-2.local 224.0.0.251