Answers:
任何以IPv6开头的IPv6地址fe80:
都等同于IPv4 169.254.*.*
地址,即它是一个链接本地地址,只能使用直接连接到该网段的NIC在它直接连接到的网段中才能访问。但是,与IPv4不同,NIC完全同时具有链接本地IPv6地址和一个或多个全局IPv6地址是完全正常的。
由于fe80:
IPv6地址是本地链接,因此您必须在ping它时指定要使用的网络接口。
例:
$ ping6 fe80::beae:c5ff:febe:a742
connect: Invalid argument
$ ping6 -I eth0 fe80::beae:c5ff:febe:a742
PING fe80::beae:c5ff:febe:a742(fe80::beae:c5ff:febe:a742) from fe80::beae:c5ff:febe:a742%eth0 eth0: 56 data bytes
64 bytes from fe80::beae:c5ff:febe:a742%eth0: icmp_seq=1 ttl=64 time=0.182 ms
64 bytes from fe80::beae:c5ff:febe:a742%eth0: icmp_seq=2 ttl=64 time=0.167 ms
...
您还可以使用%
符号将该接口附加在地址的末尾ping6 fe80::beae:c5ff:febe:a742%eth0
。
此要求仅适用于本地链接的IPv6地址:您可以在不指定接口的情况下ping全局可路由的IPv6地址。
$ ping6 2a00:1450:400f:80a::200e # that's ipv6.google.com
PING 2a00:1450:400f:80a::200e(2a00:1450:400f:80a::200e) 56 data bytes
64 bytes from 2a00:1450:400f:80a::200e: icmp_seq=1 ttl=55 time=17.6 ms
64 bytes from 2a00:1450:400f:80a::200e: icmp_seq=2 ttl=55 time=19.6 ms
...
ping6 fe80::beae:c5ff:febe:a742%eth0
ping6: UDP connect: No route to host
从man ping6
,您必须告诉ping您正在使用哪个接口:
-I接口地址
将源地址设置为指定的接口地址。参数可以是数字IP地址或设备名称。当ping IPv6链接本地地址时,此选项是必需的。
例如,如果您的界面是eth0
:
ping6 -I eth0 fe80::xxxxxx
或者,没有-I
选择:
ping6 fe80:xxxxxx%eth0
scope link
在输出中说:)