ip neigh 看的是邻居表
ip neigh 查看与管理 IPv4 的 ARP 邻居表和 IPv6 的 NDP 邻居表,输出回答的是“这个 IP 对应哪个 MAC、当前处于什么状态”。同网段丢包、时通时断、IP 冲突这类问题,第一站就是这里:二层关系不对,应用层再怎么调都不会好。它属于 iproute2,替代了老工具 arp。
基本信息
| 适用平台 | Linux(iproute2);IPv4 与 IPv6 通用 |
|---|---|
| 权限要求 | 查看普通用户即可;增删改需 root |
| 语法 | ip neigh {show|add|del|replace|flush|get} [目标] [dev 接口] |
| 相关命令 | arping、ip link、tcpdump |
| 替代关系 | 取代 net-tools 的 arp(老脚本里的 arp -a) |
典型使用场景
- 同网段时通时断,怀疑存在 IP 冲突
- 更换设备后连接异常(对端 MAC 变了,邻居条目还是旧的)
- 网关或防火墙更换网卡后流量中断
- 排查 FAILED/INCOMPLETE 密集出现,判断二层是否通
- 演练或环境复位时清理静态条目
常用示例
常用示例
ip neigh show # 列出全部邻居条目
ip neigh show dev eth0 # 只看指定接口
ip neigh show 10.0.0.9 # 单条查询:IP、MAC 与状态
ip -s neigh show 10.0.0.9 # 附带使用统计,便于判断条目新鲜度
ip neigh del 10.0.0.9 dev eth0 # 删除单条(换机换 MAC 后常用)
ip neigh replace 10.0.0.9 lladdr 00:11:22:33:44:55 dev eth0 nud permanent # 静态绑定
ip neigh flush dev eth0 # 清空整接口条目:短时抖动,生产慎用
arping -I eth0 -c 2 10.0.0.9 # 探测该 IP 实际应答的 MAC,用于确认冲突状态读法
| 状态 | 含义 | 异常信号 |
|---|---|---|
| REACHABLE | 最近确认过可达 | 正常状态 |
| STALE | 条目可用但需要重新确认 | 正常,有流量时会自动确认 |
| DELAY / PROBE | 正在尝试确认可达性 | 长时间停留说明对端有问题 |
| FAILED | 解析失败 | 二层不通或对端有策略限制 |
| INCOMPLETE | 请求无应答 | 本网段可能没有这个 IP 在使用 |
| PERMANENT | 静态条目 | 不会自动清除,换机后需人工维护 |
FAILED 与 INCOMPLETE 反复出现说明二层没通:先查网线、交换机端口、VLAN 与安全组,而不是先怀疑应用。同网段内两台机器使用同一 IP 时,邻居条目会在两个 MAC 之间跳变,ping 表现为时通时断。
flush 会清空整个接口的邻居条目,触发短时大量重新解析并造成流量抖动:生产环境优先用 del 定点清理,动手前先确认影响范围。