的?地址被称为
scope zone.当您使用
link-local IPv6地址时,需要镜像区域,以便系统知道哪个接口发送数据包.
在Windows上,如果发出netsh interface ipv6 show addresses命令,您将看到分配给系统的地址以其区域ID完成.请注意,区域ID与接口索引匹配.例如:
Interface 22: VirtualBox Host-Only Network
Addr Type DAD State Valid Life Pref. Life Address
--------- ----------- ---------- ---------- ------------------------
Other Preferred infinite infinite fe80::15c3:6bea:aaac:a015%22
这个地址的范围是“,因为它在一个索引为22的接口上.同样,在Linux上,您可能会看到一个链接本地地址,如fe80 :: 15c3:6bea:aaac:a016%eth0.区域ID的格式运行IPv6的每台机器都是唯一的,所以如果您尝试从其他系统ping,可能会有所不同.
例如,如果你有:
System A (Windows): fe80::15c3:6bea:aaac:a015%22
System B (Linux): fe80::15c3:6bea:aaac:a016%eth0
…并且你想从Windows框中ping Linux框,你不能ping ping fe80 :: 15c3:6bea:aaac:a016%eth0.但是你可以ping ping fe80 :: 15c3:6bea:aaac:a016“这是问题,链接本地地址可能很棘手.
尝试指定正确的区域ID.也就是说,当你做你的ping fe80 :: 9dc8:72fa:aacd:76e2?首先做netsh接口ipv6显示你正在ping的机器上的地址,并更改?到要在源系统上使用的接口的接口索引.
如果您正在ping的机器是Linux,则必须执行ping6 -I eth0 fe80 :: 9dc8:72fa:aacd:76e2(假设另一个系统在eth0上),因为Linux命令行实用程序不支持指定区域的%方式(无论如何,最后一次检查).