nmcli配置静态arp的核心是通过post-up-command在连接激活后执行arp -s命令绑定关键ip,需配合ignore-auto-routes防止dhcp覆盖,并验证perm标记及mac一致性。

用 nmcli 配置静态 ARP 条目,核心是让 NetworkManager 在连接激活后自动执行 arp -s 命令,并确保该绑定不被后续 DHCP 或路由更新覆盖。它不是“锁死整个 ARP 缓存表”,而是对关键 IP(如网关)做静态绑定,配合策略规避动态干扰。
确认 NetworkManager 版本与连接名
静态 ARP 的 post-up-command 功能从 NM 1.22 开始原生支持。先检查版本:
nmcli --version
再查当前有线连接名(通常类似 System eth0 或 Wired connection 1):
nmcli connection show --active | grep ethernet
添加静态 ARP 绑定命令
对目标连接添加 post-up-command,每条绑定单独一条命令:
nmcli connection modify "System eth0" +ipv4.post-up-command "arp -s 192.168.1.1 00:11:22:33:44:55"nmcli connection modify "System eth0" +ipv4.post-up-command "arp -s 192.168.1.254 aa:bb:cc:dd:ee:ff"
注意:必须用 + 号追加,避免覆盖已有 post-up-command;多条绑定不能合并为一行 shell 命令。
关闭自动路由覆盖机制
若连接使用 DHCP 获取网关,DHCP 客户端可能在重获取时刷新 ARP 表或覆盖默认路由。需禁用自动路由注入:
Zynq‑7000 / Zynq UltraScale+ 硬件调试技能。适用于 Xilinx Zynq(Cortex‑A9/A53 + FPGA)Linux 环境,调试 I2C、I2S、UART、GPIO 等外设。包括设备树配置、内核驱动、用户空间调试工具、交叉编译和常见问题排查,支持 PetaLinux 开发。
nmcli connection modify "System eth0" ipv4.ignore-auto-routes yes-
nmcli connection modify "System eth0" ipv4.route-metric 100(可选,降低优先级防冲突)
这能防止 DHCP 更新导致的 ARP 条目丢失或网关 MAC 被错误刷新。
重启连接并验证生效
使配置立即生效:
nmcli connection down "System eth0" && nmcli connection up "System eth0"
验证是否写入且标记为永久:
arp -n | grep 192.168.1.1 → 应显示 PERM 标记
ip neigh show | grep 192.168.1.1 → 应含 PERMANENT 和正确 dev 接口名
再用 arping -c 2 -I eth0 192.168.1.1 确认响应 MAC 与绑定一致。










