ping通ipv6地址

Windows

ping ipv6主机名的方法如下:

ping -6 ipv6.google.com

ping ipv6地址的方法如下:

ping IPv6Address[%ZoneID]

例如ping 2001:4860:0:2001::68。如果要ping link-local地址,则需要指定网络接口索引:

ping fe80::260:97ff:fe02:6ea5%4

其中%4表示用索引为4的网络接口ping目标计算机。要查看网络接口索引,使用如下命令:

netsh interface ipv6 show address

Linux

ping ipv6主机名的方法如下:

ping6 ipv6.google.com

ping ipv6地址的方法如下:

ping6 IPv6Address[%InterfaceName]

如果要ping link-local地址,则需要指定网络接口名称:

ping6 fe80::260:97ff:fe02:6ea5%eth0

其中%eth0表示用网络接口eth0ping目标计算机。
使用ping6命令访问一个IPv6的地址时,经常出现connect: Invalid argument的错误。解决方法是在IPv6地址后加上%设备名,例如ping6 fe80::172:16:212:4%eth0Linux使用ifconfig命令就可列出所有网络接口名称。

为什么Link-local地址后面要有百分号?

由于所有的link-local地址都有相同的前缀FE80::/64,并且每个网络接口都必须分配一个link-local地址,因而导致当发送数据包到一个link-local地址时,如果路由器使用普通的路由方法就无法决定选用哪个网络接口。因此引入了一种被叫做zone index的标识符,它提供额外的路由信息,这个标识符通常指网络接口,并且通过一个百分号被附加在IPv6地址后面。