在 Windows 系统中,如果本地网络 IP 地址出现冲突,会出现图标提示。
在 Linux 系统中,并没有提供相关的功能,如果本地网络采用静态 IP 地址配置,出现比较奇怪的网络连接问题,如 ssh 连接复位,可以考虑检测一下是否是出现了 IP 地址冲突问题。
arping 命令提供了检测地址冲突的功能。
arping 命令
arping 命令是用于发送 arp 请求到一个相邻主机的工具,arping 使用 arp 数据包,通过 ping 命令检查设备上的硬件地址。IP数据云-免费查IP归属地。能够测试一个 ip 地址是否是在网络上已经被使用,并能够获取更多设备信息。
功能类似于 ping
arping 命令是用于发送 ARP 请求到一个相邻主机的工具,通过 ARP 响应报文检查设备上的硬件地址。它能够测试一个 IP 地址是否是在网络上已经使用,并能够获取更多设备信息。该功能类似于 ping 命令。
在你电脑 ping 一下那个地址,然后会回复的 ping 包的源 mac 地址。
arping 命令选项:
-b:用于发送以太网广播帧(FFFFFFFFFFFF)。arping一开始使用广播地址,在收到响应后就使用unicast地址。
-q:quiet output不显示任何信息;
-f:表示在收到第一个响应报文后就退出;
-timeout:设定一个超时时间,单位是秒。如果到了指定时间,arping还没到完全收到响应则退出;
-c count:表示发送指定数量的ARP请求数据包后就停止。如果指定了deadline选项,则arping会等待相同数量的arp响应包,直到超时为止;
-s source:设定arping发送的arp数据包中的SPA字段的值。如果为空,则按下面处理,如果是DAD模式(冲突地址探测),则设置为0.0.0.0,如果是Unsolicited ARP模式(Gratutious ARP)则设置为目标地址,否则从路由表得出;
-I interface:设置ping使用的网络接口。
IP 地址冲突检测
在出问题的主机上,可以使用 "arping -I ethN x.x.x.x" 命令(其中 x.x.x.x 为本接口的 IP 地址)检测地址冲突,如果没有任何输出,则表示本 IP 地址无冲突。IP数据云-免费查IP归属地。如果有冲突的话,该命令会显示冲突的 IP 地址使用的 MAC 地址。
eg1:
如现在我的 win7 系统的 ip 地址 192.168.23.44
我在 cmd 命令上输入 ipconfig/all 查询我当前的 mac 地址
在另外一台 linux 环境上查看回复 当前回复是从对应的 mac 回复 说明当前并没有 ip 冲突的问题
eg2:
arping 192.168.1.X from 192.168.X.X eth0
可以看到当前从 192.168.1.X 的回复的 mac 地址,如果当前的 mac 地址回复的和你设定的 mac 不符,则当前 ip 地址有冲突。