本文围绕「隐蔽信号」展开。最近帮朋友调试一个家庭网络,总出现间歇性断网——手机突然连不上WiFi,但过几分钟又好了;台式机偶尔ping不通网关,重启路由器又恢复正常。我一开始以为是路由器过热或者固件问题,但用了一整天排查,最后发现是IP地址冲突在作怪。
先说症状:网络时好时坏,没有固定规律。我用笔记本连续ping网关192.168.1.1,发现偶尔出现“请求超时”,但紧接着又通了。同时在路由器管理界面查看了DHCP客户端列表,发现有两个设备都绑定了同一个IP:192.168.1.105。一个是朋友的手机,另一个是家里的小米智能插座。由于两者都是动态获取IP,但DHCP池(192.168.1.100-200)没有设置排除,恰好同时请求到了同一个地址,导致冲突后其中一台设备就会掉线。
我实测了三种排查方法:第一,登录路由器看DHCP租约,如果发现两个设备MAC地址不同但IP相同,基本就是冲突。第二,用arp -a命令查看本地ARP表,发现同一个IP对应两个不同的MAC地址(会交替出现)。第三,用Wireshark抓包,能看到大量的ARP应答包互相覆盖。最好用的是在电脑上使用“arp -d”清除缓存后,再强制ping那个可疑IP,如果回复的MAC地址变化,就确认冲突了。
修复方法很简单:我给那个小米插座手动设了一个固定IP(192.168.1.200),并且把DHCP池缩小到192.168.1.100-150,避开这个地址。同时,我还在路由器里开启了“DHCP地址冲突检测”功能(部分路由叫“防止IP冲突”),这样当新设备请求IP时,路由器会先ping一下看是否被占用。再也没出现过间歇断网。
结合隐蔽信号,最后提醒:很多家用路由默认不开启冲突检测,所以手动规划IP尤为重要。尤其是智能家居设备多、又喜欢手动设固定IP的用户,一定要避开DHCP池范围,或者干脆把DHCP池缩小、手动分配一个安全区间。
Q: 如何预防IP地址冲突?A: 最有效的办法是合理规划IP地址段:将路由器DHCP池设在例如192.168.1.100-199,然后把所有需要手动设置静态IP的设备(如打印机、NAS、智能中枢)放在192.168.1.2-99或200-254,确保手动IP不在DHCP自动分配范围内。另外,开启路由器的“ARP绑定”或“静态DHCP”功能,将设备MAC与IP绑定,这样路由不会把该IP分给别的设备。
Q: IP地址冲突时为什么没有明确报错?A: 家用路由器一般不会主动弹出“IP冲突”提示,因为冲突检测不是强制功能。Windows系统可能会在系统托盘弹出“网络地址冲突”提示,但很多用户忽略;而手机端几乎没有任何通知。实际表现就是随机断网、部分设备上不了网,让用户误以为是路由器或光猫的问题。
Q: 路由器DHCP池会不会自动避免冲突?A: 标准的DHCP协议在分配IP之前会先发送一个ARP探测包(也叫“ping包”),检查该IP是否已被占用。但很多低端家用路由为了节省性能,跳过了这一步,直接分配。这就导致你手动设了固定IP,DHCP仍然可能分给别的设备。解决方法是手动把固定IP排除出DHCP池,或者在路由器里设置“DHCP地址池排除”选项。











