首页/系统/Linux 运维命令速查/arping 二层连通验证
网络命令82 条

arping 二层连通验证

绕过 IP 层直接测二层:arping 目标 IP 看谁回 MAC;-D 做重复地址检测(DAD),IP 冲突排查利器。

Linux 运维命令速查系统更新于 2026-10-13

arping 测二层

ping 走的是 IP 层,中间可能被各种策略影响;arping 直接发 ARP 请求,问「这个地址对应的网卡是谁」,绕开 IP 层看二层是否可达。它最常见的用途是做重复地址检测:在 IP 尚未正式启用前发问,如果有别的主机回应,说明该地址已被占用,这正是排查 IP 冲突的关键手段。

基本信息

适用平台Linux(存在两个常见实现,参数与输出略有差异)
语法arping [-I 接口] [-c 次数] [-w 超时] 地址
关键选项-I 指定接口、-c 发送次数、-D 重复地址检测、-q 安静模式
权限要求多数场景需要相应权限(原始套接字操作)

典型使用场景

  • 新分配的 IP 上线前做冲突检测,避免地址被别人占用
  • 同网段内某台主机 ping 不通时,确认二层是否可达
  • 定位「MAC 地址来回漂移」这类双绑冲突问题
  • 迁移或克隆虚拟机后检查地址是否重复
  • 确认网关或同类设备的地址解析关系

常用示例

常用示例
arping -I eth0 -c 3 10.0.0.9             # 指定接口发 3 个请求
arping -I eth0 -c 2 10.0.0.5             # 看回应的 MAC 地址
arping -D -I eth0 -c 2 10.0.0.5          # 重复地址检测:有回应即疑似冲突
arping -q -c 5 10.0.0.5                  # 安静模式,只看汇总
arp -n | grep 10.0.0.5                   # 与本机地址表交叉核对
tcpdump -i eth0 -n arp | head            # 抓 ARP 包看真实交互

输出与选项读法

项目含义关注点
回复行来自某 MAC 的单播回复记录 MAC,多次测试取交集更可靠
丢包统计发送与接收计数全丢说明二层不通或目标静默
-D 检测结果有人回应即存在冲突嫌疑需结合交换机地址表进一步确认
-I 接口从哪块网卡发出多网卡与绑定场景必须显式指定
判定冲突的关键是「两个不同 MAC 回应同一个 IP」,只看到一次回应可能来自网关代理,最好多测几轮并与交换机侧地址表交叉验证。

配套检查

  • 在服务端地址表里查该 MAC 对应的端口,确认物理位置
  • 在出现冲突的两台主机上核对地址配置来源
  • 检查是否配置了浮动地址或高可用方案导致的共享地址
  • 确认同网段是否有代理应答行为干扰判断
  • 处理完后再次做一次检测,确认冲突已消失
不同实现(发行版自带的与第三方维护的版本)参数含义与输出格式不同,脚本里使用前先用帮助信息确认,并避免混用参数。

易错点

  • 跨网段使用得不到回应:ARP 不会穿过网关,目标必须在同一个二层域内
  • 多网卡或绑定环境下不指定接口,请求可能从错误的网卡发出,结果失去意义
  • 两个实现的参数与输出不同,脚本里混用会导致判断失效
  • 只凭一次回应就判定冲突,忽略代理应答等干扰因素,需要交叉验证

数据来源与参考

  • man 8 arping(iputils 手册)

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌