arp -s 绑定重启失效是因为仅写入内核arp缓存,未持久化;生产中需通过/etc/network/interfaces(debian/ubuntu)或nmcli post-up-command(rhel/centos)实现开机自动绑定,并配合交换机端口安全等措施。

为什么 arp -s 绑定后重启就失效?
因为 arp -s 是临时命令,只写入内核 ARP 缓存,系统重启或网络服务重载后清空。实际生产中必须落盘持久化,否则防不了持续的 ARP 欺骗。
常见错误是只跑一遍 arp -s 192.168.1.1 00:11:22:33:44:55 就以为搞定了,结果几小时后攻击恢复——缓存过期或 DHCP 更新触发了 ARP 表刷新。
- 绑定前确认目标 IP 确实在线且 MAC 正确:
ping -c1 192.168.1.1 && arp -n | grep 192.168.1.1 - 静态条目需带
pub参数才可响应其他主机的 ARP 请求(仅限网关等需要代理应答的场景) - 普通终端机一般用
arp -s+arp -D(禁用动态学习)组合,但后者在较新内核中已被弃用,改用 sysctl 控制
如何让静态 ARP 在 Ubuntu/Debian 开机生效?
推荐写进 /etc/network/interfaces(ifupdown 方式),比 systemd service 更底层、更可靠。NetworkManager 或 netplan 用户需另寻路径(见下节)。
在对应接口段末尾添加 post-up 指令:
auto eth0
iface eth0 inet static
address 192.168.1.10
netmask 255.255.255.0
gateway 192.168.1.1
post-up arp -s 192.168.1.1 00:11:22:33:44:55
post-up arp -s 192.168.1.254 aa:bb:cc:dd:ee:ff
- 多条绑定用多个
post-up,不要合并成一行(shell 解析可能出错) - 确保
ifupdown已安装:apt install ifupdown,否则ifup命令不存在 - 测试是否生效:
sudo ifdown eth0 && sudo ifup eth0,再执行arp -n查看 PERM 标记
CentOS/RHEL 8+ 或使用 NetworkManager 的机器怎么处理?
NetworkManager 默认忽略 /etc/sysconfig/network-scripts/ifcfg-* 中的 arp 相关指令,也不能直接改内核参数来锁死 ARP 表。稳妥做法是用 nmcli 配置连接级脚本:
nmcli connection modify "System eth0" +ipv4.route-metric 100 nmcli connection modify "System eth0" ipv4.ignore-auto-routes yes nmcli connection modify "System eth0" +ipv4.post-up-command "arp -s 192.168.1.1 00:11:22:33:44:55" nmcli connection down "System eth0" && nmcli connection up "System eth0"
-
post-up-command是 NM 1.22+ 支持的特性,旧版本需用dispatcher脚本 - 务必加
ignore-auto-routes,否则 DHCP 获取的网关可能覆盖静态 ARP 条目 - NetworkManager 不会自动执行
arp -D,如需禁用动态学习,得额外设sysctl -w net.ipv4.conf.eth0.arp_accept=0
绑定后仍被欺骗?检查这几个关键点
静态 ARP 只防“你主动发包时找错网关”,不防“别人冒充你”。ARP 欺骗检测和防御是两件事。以下情况会导致绑定形同虚设:
- 目标 IP 对应的 MAC 实际已变更(比如网关设备重换、虚拟机迁移),但本地没更新绑定 —— 静态 ARP 不会自适应
- 交换机端口安全未开启,攻击者仍可泛洪发送伪造 ARP,导致其他主机缓存污染(你的机器安全了,别人还在中毒)
- 未关闭本机的
arp_ignore和arp_announce,当收到非本机 IP 的 ARP 请求时,仍可能响应,暴露自身存在 - 容器或 Docker 网络中,
arp -s只作用于宿主机 namespace,容器内部需单独绑定或改用 CNI 插件策略
真正健壮的防护要结合交换机端口绑定、DHCP Snooping、以及定期校验 arp -n 输出与可信清单的一致性——静态 ARP 只是其中一环,而且是最容易配错的一环。











