局域网(内网) ping 不通的解决方法

本文详细介绍了Ping命令的工作原理及其在网络诊断中的应用。Ping命令利用ICMP协议发送请求并接收响应,以此来判断网络连接状态。文章还解释了ICMP协议的作用及如何通过Ping命令排查局域网内的连接问题。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

ping是一种电脑网络工具,用来测试封包能否透过IP协定到达特定主机。ping的运作原理是向目标主机传出一个ICMP的请求回显封包,并等待接收回显响应封包。程序会按时间和成功响应的次数估算遗失封包率(丢包率)和封包往返时间(网络时延,Round-trip delay time)。

在1983年12月,Mike Muuss编写了首个这样的程序,用于在IP网络出现问题时方便探查其根源。因为这个程序的运作原理与潜水艇的主动声纳相似,他便用声纳的声音来为程序取名。David L. Mills曾提出另一个取名:Packet Internet Grouper/Gopher(后者指地鼠)。

网络管理员之间也常将ping用作动词,如ping一下电脑XXX,看它是否开着。

ICMP原理
ICMP提供一致易懂的出错报告信息。发送的出错报文返回到发送原数据的设备,因为只有发送设备才是出错报文的逻辑接受者。发送设备随后可根据ICMP报文确定发生错误的类型,并确定如何才能更好地重发失败的数据包。但是ICMP唯一的功能是报告问题而不是纠正错误,纠正错误的任务由发送方完成。

我们在网络中经常会使用到ICMP协议,比如我们经常使用的用于检查网络通不通的Ping命令(linux和Windows中均有),这个“Ping”的过程实际上就是ICMP协议工作的过程。还有其他的网络命令如跟踪路由的Tracert命令也是基于ICMP协议的。


Ping的原理
ping程序是用来探测主机到主机之间是否可通信,如果不能ping到某台主机,表明不能和这台主机建立连接。ping使用的是ICMP协议,它发送icmp回送请求消息给目的主机。ICMP协议规定:目的主机必须返回ICMP回送应答消息给源主机。如果源主机在一定时间内收到应答,则认为主机可达。

ICMP协议通过IP协议发送的,IP协议是一种无连接的,不可靠的数据包协议。在Unix/Linux,序列号从0开始计数,依次递增。而Windows ping程序的ICMP序列号是没有规律。ICMP协议在实际传输中数据包:20字节IP首部+ 8字节ICMP首部+ 1472字节<数据大小>38字节 ICMP报文格式:IP首部(20字节)+8位类型+8位代码+16位校验和+(不同的类型和代码,格式也有所不同)


Ping工作过程
假定主机A的IP地址是192.168.1.1,主机B的IP地址是192.168.1.2,都在同一子网内,则当你在主机A上运行“Ping 192.168.1.2”后,都发生了些什麽呢?首先,Ping命令会构建一个固定格式的ICMP请求数据包,然后由ICMP协议将这个数据包连同地址“192.168.1.2”一起交给IP层协议(和ICMP一样,实际上是一组后台运行的进程),IP层协议将以地址“192.168.1.2”作为目的地址,本机IP地址作为源地址,加上一些其他的控制信息,构建一个IP数据包,并在一个映像表中查找出IP地址192.168.1.2所对应的物理地址(也叫MAC地址,熟悉网卡配置的朋友不会陌生,这是数据链路层协议构建数据链路层的传输单元——帧所必需的),一并交给数据链路层。后者构建一个数据帧,目的地址是IP层传过来的物理地址,源地址则是本机的物理地址,还要附加上一些控制信息,依据以太网的介质访问规则,将它们传送出去。

在Win10系统正常情况下,局域网ping不通绝大多数原因都是跟防火墙有关系的,用两步操作可以解决这个问题

1.将防火墙中 文件和打印机共享全部都勾选

2. 将防火墙关闭

操作完成后记得点击确定。

end

当遇到 `hostname` 无法过 `ping` 命令达的情况时,可以按照以下步骤排查并解决问题: --- ### **1. 检查网络连接** - 确保目标主机的网络正常工作。如果目标设备断网了,则无论如何都无法到达该设备。 - 使用命令如 `ipconfig /all`(Windows) 或者 `ifconfig`(Linux/macOS),确认本地网络配置是否正确。 --- ### **2. 验证 DNS 解析** 如果你是过域名而不是 IP 地址进行 ping 测试,DNS 可能未解析出正确的地址。 - 尝试运行 `nslookup <hostname>` 查看是否能够成功解析到对应的 IP 地址。 - 若发现未能解析或错误地指向了一个无效的 IP 地址,则需要检查系统的 `/etc/resolv.conf` 文件(UNIX/Linux/Mac) 或 Windows 的 DNS 设置。 --- ### **3. 直接测试IP地址** 替换掉原来尝试使用的 `hostname` ,直接用其实际对应的具体静态公网或者局域网内的私有内网IP去执行同样的指令看看结果是否有变化;比如从“ping www.example.com”改成"ping x.x.x.x”。 --- ### **4. 排除防火墙干扰** 很多时候因为服务器端启用了防火墙规则,默认禁止接收 ICMP 请求包(即 Ping 数据报),所以即便物理层连得好也得不到回应消息回来。 - 登录远程机器上查看是否存在阻止所有入站ICMP类型的过滤策略生效着,并将其暂时关闭以验证问题根源所在; ```bash # Ubuntu/Debian系列系统示例操作 sudo ufw status verbose # 展示当前状态详情信息 sudo iptables -L # 列举iptables规则列表 # CentOS/RHEL家族成员做法类似但略有差异... firewall-cmd --list-all # 显示完整firewalld设定内容概览 ``` --- ### **5. 其他可能原因及处理措施** - **路由器设置限制**:部分企业级路由会对内部某些特定段落实施访问权限控制,需联系管理员协助调整ACL等相关参数。 - **动态分配冲突**:假如两台及以上电脑共享相同的MAC/IP组合数据的话,会造成混乱局面进而影响正常的信流程,建议重新启动DHCP服务让它们各自获取独立唯一的新标识符编号集合。 - **线路老化损坏**:长期暴露在外的线缆容易受到环境因素侵蚀而导致性能下降甚至完全失效现象发生,必要时刻得更换新的硬件设施产品进来替代旧有的装置部件才行哦~ ---
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

熊思宇

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值