知用网
白蓝主题五 · 清爽阅读
首页  > 网络运维

用网络命令工具快速排查IP冲突问题

办公室突然断网,同事的电脑显示“IP地址冲突”,一问才发现有人手动设置了相同的静态IP。这种问题在小型局域网里太常见了,尤其是临时接设备、调试服务器的时候。其实不用慌,几个简单的网络命令工具就能帮你快速定位和确认IP冲突。

arping:直接探测IP是否被占用

在Linux或macOS系统中,arping是最直接的工具。它通过ARP协议询问局域网内某个IP地址对应的MAC地址。如果收到多个不同的MAC地址回应同一个IP,那基本就是冲突了。

arping -I eth0 192.168.1.100

上面这条命令的意思是,在eth0网卡所连接的局域网中,向192.168.1.100发起ARP请求。如果看到返回的MAC地址不断变化,说明这台IP被人“抢”了。

ping + arp:Windows下的土办法也能见效

Windows没有原生命令叫arping,但可以组合使用pingarp -a来判断。先ping目标IP,让它进入本地ARP缓存,再查MAC地址。

ping 192.168.1.100
arp -a | findstr 192.168.1.100

如果多次执行后发现同一个IP对应不同的物理地址,那八成出问题了。比如你昨天看到它是“00-1e-4f-xx-xx-xx”,今天变成“ac-de-48-xx-xx-xx”,说明有人换了设备还用了相同IP。

抓包看真相:tcpdump抓ARP广播

更彻底的办法是直接抓包。用tcpdump监听ARP通信,能看到谁在频繁声明某个IP的所有权。

tcpdump -i eth0 arp | grep 192.168.1.100

一旦发现两条来自不同MAC地址的ARP响应都说“我是192.168.1.100”,这就是铁证。这种情况多发生在员工私自设置静态IP,又没做登记的时候。

预防比处理更重要

与其每次都手动查,不如在路由器上启用ARP防护功能,或者统一用DHCP分配地址。还可以定期跑个脚本,扫描局域网里重复的IP-MAC映射。比如写个简单的Shell脚本结合arp-scan工具:

arp-scan --local | awk '{print $2" "$3}' | sort | uniq -d -f1

这条命令会列出所有MAC地址重复出现的IP,帮你提前发现问题设备。别等到用户打电话说上不了网才动手,那时候已经影响工作了。

IP冲突看着小,真出了问题能折腾半天。熟练用好这些命令工具,几分钟就能搞定别人搞一天的事。