You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多
文档控制台
免费开始使用

如何获取本机可ping通的IPv6地址?ping链路本地地址失败排查

嘿,这个问题我碰到好多次了——你之所以ping不通那个fe80::d773:9cf0:b0fd:572d地址,核心原因是Link-Local IPv6地址(fe80::/10网段)的特殊性:这类地址是每个网络接口自动生成的,但它们的作用范围仅限当前链路,而且必须和具体的网络接口绑定才能正常收发数据包,哪怕是ping本机自己的Link-Local地址也不能例外。

问题出在哪?

当你直接敲ping6 fe80::d773:9cf0:b0fd:572d时,系统根本不知道该用哪个网络接口来发送这个ping请求——毕竟你的电脑可能有多个网卡(比如有线、无线),每个都有自己的Link-Local地址。系统没法自动推断接口,导致ping包根本没正确发出去,自然收不到响应。

正确的操作姿势

你需要在ping命令里明确指定该地址绑定的网络接口

Linux/macOS 系统

ping6-I参数(大写i)指定接口名,比如你的接口是eth0(有线)或wlan0(无线),命令如下:

ping6 -I eth0 fe80::d773:9cf0:b0fd:572d

不确定接口名的话,跑ip link show就能看到本机所有网络接口的列表,对应ip -6 addr输出里该地址所在行的开头接口名(比如eth0: inet6 fe80::...)。

Windows 系统

Windows下要在地址末尾加%接口名称%接口索引,比如:

ping fe80::d773:9cf0:b0fd:572d%eth0

或者用接口索引(通过netsh interface ipv6 show interfaces查看):

ping fe80::d773:9cf0:b0fd:572d%3

快速验证小技巧

先回到ip -6 addr的输出,找到那个fe80地址对应的接口(比如行首的wlan0:),用这个接口执行ping命令,百分百能通——我每次这么操作都没问题。

内容的提问来源于stack exchange,提问作者Paul C

火山引擎 最新活动