arp 命令用于查看和清理 Linux ARP 缓存表,常用操作包括
arp -n查看、sudo arp - d 删除条目、sudo ip neigh flush all清空全表;/proc/sys/net/ipv4/neigh/ 下参数控制超时与回收;arping 可主动刷新 ARP 表;异常变动需排查欺骗或 IP 冲突。

arp 命令查看和清理 ARP 缓存表
Linux 系统中 ARP 表由内核维护,arp命令是直接操作它的最常用 工具。它不依赖网络服务,只要内核 ARP 子系统在运行就能查到当前缓存内容。
- 查看全部条目:
arp -n(加
-n避免 DNS 反查,速度快且结果确定) - 只看某个 IP 对应的 MAC:
arp -n| grep '192.168.1.1' - 删除指定条目:
sudo arp -d 192.168.1.1(注意:普通用户无权限,必须加
sudo) - 清空整个 ARP 表:
sudo ip neigh flush all(比
arp -d -a更可靠,后者在某些发行版中已失效)
常见误操作是用 arp -d -a 想清空所有,但该命令在较新内核(如 5.4+)或使用 iproute2 为主 栈的系统中可能无响应或报错 SIOCDARP: No such device —— 这是因为 arp 命令底层调用已被弃用路径。
/proc/sys/net/ipv4/neigh/ 下的动态参数控制
ARP 表不是静态存储,而是由邻居子系统按策略自动管理。关键行为由 /proc/sys/net/ipv4/neigh/ 下的配置项决定,比如超时时间、垃圾回收阈值等。这些值直接影响 ARP 条目“存活多久”以及“什么时候被踢出”。
- 查看默认超时(单位秒):
cat /proc/sys/net/ipv4/neigh/eth0/base_reachable_time_ms(注意单位是毫秒,典型值为 30000,即 30 秒)
- 临时修改老化时间:
echo 60000 | sudo tee /proc/sys/net/ipv4/neigh/eth0/base_reachable_time_ms - 永久生效需写入
/etc/sysctl.conf:net.ipv4.neigh.eth0.base_reachable_time_ms = 60000 - 触发立即垃圾回收:
echo 1 | sudo tee /proc/sys/net/ipv4/neigh/eth0/gc_stale_time(仅用于调试,生产环境慎用)
不同网卡设备名(如 ens33、enp0s3)对应不同子目录,不能统一写 default —— 它只作为模板,实际生效的是具体接口目录下的值。
arping 探测目标是否在线并刷新本地 ARP 表
当怀疑 ARP 表陈旧导致通信失败(比如服务器换网卡、虚拟机 迁移后 MAC 变了),光删缓存不够,得主动触发重新学习。这时 arping 比 ping 更有效,因为它发的是 ARP 请求帧,能强制对端回应并更新本机 ARP 缓存。
- 向目标发 ARP 请求(不依赖 ICMP):
sudo arping -c 3 -I eth0 192.168.1.1(
-c 3发 3 次,-I eth0指定出口接口) - 静默刷新(不打印输出,适合脚本):
sudo arping -q -c 1 -w 1 -I eth0 192.168.1.1 &>/dev/null - 如果返回
Timeout或无响应,说明目标没在二层可达——可能是断电、VLAN 隔离、防火墙 丢 ARP 包,而非单纯 ARP 表问题
arping 默认走指定接口的 IP 地址发请求;若该接口未配 IP,会报错 Cannot assign requested address,此时需先确认接口状态(ip link show eth0)和 IP 配置(ip addr show eth0)。
排查 ARP 欺骗或重复 IP 冲突
ARP 表异常增长、频繁变动、同一 IP 对应多个 MAC,往往是 ARP 欺骗或 IP 冲突的信号。这类问题不会直接报错,但会导致间歇性丢包、SSH 中断、DNS 解析慢。
- 监控 ARP 表变化:
watch -n 1 '
arp -n| sort'(观察几秒内是否有某 IP 的 MAC 列反复切换)
- 检查是否有重复 IP 声明:
arp -n| awk '{print $1,$3}' | sort | uniq -w 15 -D(提取 IP+MAC 对,找重复 IP)
- 抓包验证:
sudo tcpdump -i eth0
arp -nn -c 10(看是否收到非预期来源的 ARP Reply)
- 内核日志里搜 ARP 异常:
dmesg | grep -i "duplicate address"(部分内核版本会在检测到冲突时记录)
很多交换机不记录 ARP 日志,所以主机侧的持续监控很关键;另外,DHCP 分配范围外的手动配置 IP 最容易引发冲突,排查时优先查网段内未纳入 DHCP 管理的设备。






























