ip neigh 是Linux中管理ARP/NDP缓存的核心工具,支持查看、添加、删除、修改邻居条目及持久化配置,适用于排错、安全加固与虚拟化等场景。

在Linux中,ip neigh 是管理ARP(IPv4)和NDP(IPv6)缓存表的核心工具,既能查看动态学习的邻居条目,也能添加、删除或固定静态绑定,对网络排错、安全加固和特定组网场景(如虚拟化、容器通信)非常实用。
查看当前ARP缓存表
执行以下命令可列出所有已知的IPv4邻居(即ARP表):
ip neigh show
默认显示包括IP地址、MAC地址、设备接口、状态(如REACHABLE、STALE、FAILED)等字段。若只关注某张网卡(如eth0),可加限定:
ip neigh show dev eth0
加 -s 参数可显示更详细统计信息,例如老化计时、重传次数等。
添加静态ARP条目(永久绑定)
静态条目不会被自动刷新或超时,适用于需要强制指定MAC地址的场景(如防止ARP欺骗、对接不可控设备):
- 基本语法:
ip neigh add <IP> lladdr <MAC> dev <IFACE> nud permanent - 示例:将 192.168.1.100 绑定到 MAC
00:11:22:33:44:55,走 enp0s3 接口:ip neigh add 192.168.1.100 lladdr 00:11:22:33:44:55 dev enp0s3 nud permanent -
nud permanent表示“不可达检测禁用且永久有效”,该条目不会因超时或探测失败而消失
修改或删除ARP条目
已存在的条目可直接更新(如MAC变更)或删除:
- 替换MAC:
ip neigh replace 192.168.1.100 lladdr 00:aa:bb:cc:dd:ee dev enp0s3 nud permanent - 删除单条:
ip neigh del 192.168.1.100 dev enp0s3 - 清空整个接口的ARP缓存(慎用):
ip neigh flush dev enp0s3 - 清空全部IPv4 ARP条目:
ip neigh flush all
让静态ARP在重启后依然生效
ip neigh 添加的条目是运行时生效,系统重启即丢失。要持久化,需写入启动脚本或网络配置:
- 方法一:加入
/etc/network/interfaces(Debian/Ubuntu)的接口配置段:post-up ip neigh add 192.168.1.100 lladdr 00:11:22:33:44:55 dev eth0 nud permanent - 方法二:使用
systemd-networkd的[Neigh]段(较新发行版) - 方法三:写入自定义 systemd service 或 /etc/rc.local(兼容性高但不推荐用于新部署)
注意:持久化前建议先测试命令是否能正常执行,并确认目标设备确实在同一二层网络中。


















