局域网ping不通ip地址的局域原因
下午三点,办公室的原因老张喊我:“新装的打印机,ping不通192.168.1.50。局域”我走过去,原因屏幕上一排“请求超时”。局域这场景太常见了——局域网里ping不通某个IP,原因八成不是局域网线断了,而是原因你压根没搞清楚问题出在哪一层。
先查物理层。局域网线松了、原因交换机端口灯不亮、局域网卡被禁用,原因这些低级错误占了三成。局域有一回我折腾了半小时,原因最后发现是局域墙上信息模块的线序接错了——568A和568B混着打,百兆能通千兆必断。你拿测线仪一测,灯乱跳,别怀疑,重打水晶头比啥都强。
物理层没事,那就看IP配置。Windows下ipconfig看一眼,Linux下ip addr。最常见的是子网掩码填错,比如把255.255.255.0写成255.255.0.0,两台机器明明在同一网段,路由器却把它们当成了不同世界。还有更隐蔽的——IP地址冲突。两台设备抢同一个地址,系统日志里会蹦出“检测到IP地址冲突”,但很多人从不去翻日志。我见过最离谱的一次,打印机自己设了静态IP,跟DHCP池里的地址撞了,结果所有人轮流断网,谁ping它都通,但谁也连不上它。
配置没问题,那就查ARP缓存。你ping的IP不在本地,但网关也不回你,多半是ARP表出了问题。在命令行敲arp -a,看看目标IP对应的MAC地址是不是全零或者乱码。有一次公司换核心交换机,忘了清老设备的ARP条目,结果全网大部分机器能上网,唯独财务那两台怎么ping都超时——因为它们的流量被交换机错误地转发到了一个已经不存在的旧服务器上。清缓存,arp -d,再ping,通了。
再往下走,防火墙。Windows自带的防火墙默认拦ICMP,你ping不通但能访问共享文件夹,那基本就是它干的。Linux的iptables更狠,有人写了条规则DROP掉所有入站ping,自己忘了。我有个同事,新装的服务器怎么都ping不通,远程桌面却好好的,最后发现是安装时勾选了“阻止所有传入连接”。关了它,世界清净了。
别忘了网段隔离。VLAN划分之后,不同网段之间要靠路由。你ping不通的IP可能根本不在你本地广播域里,中间隔着三层交换机或者路由器。查路由表,route print或者ip route,看看有没有去往那个网段的路径。没有?那得找网络管理员开路由,别自己瞎折腾。有一回我在客户现场,ping不通另一栋楼的服务器,折腾了半天才发现他们两栋楼之间用光纤连着,但VLAN没配trunk,数据包走到交换机就被扔了。
最后说个玄学的——延迟。ping不通不代表机器死机,可能是网络拥塞到超时。你ping一个IP,偶尔通一次,剩下全超时,那多半是链路质量差或者广播风暴。抓包看,如果看到大量非本机的ARP请求,那基本就是有台机器网卡坏了,在疯狂发广播包,把带宽吃光了。这时候别ping了,去交换机上拔线找源头吧。
每次排查,我都按这个顺序来:物理层、IP配置、ARP、防火墙、路由、链路质量。六步走完,九成问题能揪出来。剩下的那一成,可能是硬件故障——比如某块网卡在高温下性能骤降,或者光纤衰减太大,那得用专业仪器测了。但说真的,多数时候你卡在第二步或第三步,因为人总爱假设自己没配错,可现实是——你配错了,而且错得自己都看不出来。
下次再遇到ping不通,先别急着重启。打开命令行,一步步查,像剥洋葱一样,总有一层会给你答案。要是全查完了还不行,那就拔了网线重插——这招虽然土,但真能解决不少稀奇古怪的问题。