当我尝试时:
$ ip -6 addr
我得到类似的东西:
inet6 fe80::d773:9cf0:b0fd:572d/64 scope link
如果我尝试从机器本身 ping 它:
$ ping6 fe80::d773:9cf0:b0fd:572d/64
unknown host
$ ping6 fe80::d773:9cf0:b0fd:572d
connect: Invalid argument
我究竟做错了什么?
当我尝试时:
$ ip -6 addr
我得到类似的东西:
inet6 fe80::d773:9cf0:b0fd:572d/64 scope link
如果我尝试从机器本身 ping 它:
$ ping6 fe80::d773:9cf0:b0fd:572d/64
unknown host
$ ping6 fe80::d773:9cf0:b0fd:572d
connect: Invalid argument
我究竟做错了什么?
任何以 IPv6 地址开头
fe80:
的地址都等同于 IPv4169.254.*.*
地址,即它是链路本地地址,只能在它直接连接的网段中访问,使用专门连接到该网段的 NIC。然而,与 IPv4 不同的是,NIC 同时具有链路本地 IPv6 地址和一个或多个全局 IPv6 地址是完全正常的。由于
fe80:
IPv6 地址是本地链接的,因此您必须在 ping 它时指定要使用的网络接口。例子:
%
您还可以使用符号将接口附加到地址的末尾:ping6 fe80::beae:c5ff:febe:a742%eth0
。此要求仅适用于链路本地 IPv6 地址:您可以在不指定接口的情况下 ping 全局可路由 IPv6 地址。
从
man ping6
,您必须告诉 ping 您正在使用哪个接口:例如,如果您的界面是
eth0
:或者,没有
-I
选项: