核心结论 ping 是操作系统自带的网络连通性测试命令,全称 Packet Internet Groper,它依靠 ICMP 协议发送探测数据包,向目标主机发送请求报文,等待目标返回应答报文,以此判断本机和目标地址之间网络是否通畅,同时获取往返延迟 丢包率等基础网络数据,是网络排障最基础最常用的工具,不管是 Windows Linux Mac 系统都内置 ping 命令,它只能做基础连通性检测,不能代表端口是否可以正常访问,也不能证明上层业务服务一定正常,很多新手会误以为 ping 通就代表网站或者应用一定能用,这个是常见认知误区。
ping 命令核心含义与工作原理
ping 使用 ICMP 协议的 echo request 请求包和 echo reply 应答包
本机向外发送探测包,目标主机收到之后原路返回应答包
通过计算发包和收包的时间差,得到往返时间 RTT
如果超时没有收到应答,就判定网络不通或者被防火墙拦截
默认 Windows 系统 ping 会发送 4 个探测包,Linux Mac 默认会持续 ping,需要手动终止
基础语法格式
Windows 格式 ping 目标地址
Linux Mac 格式 ping 目标地址
目标地址可以填写 IP 地址,也可以填写域名,填写域名的时候 ping 会自动先做 DNS 解析,把域名转换成 IP 再测试连通性
常用参数说明
t Windows 下持续 ping 目标,直到手动按 Ctrl C 停止
n 指定发送数据包数量,例如 ping n 10 目标地址
l 指定数据包大小,单位字节,用来测试大包传输情况
w 设置超时等待时间,单位毫秒
i 指定 TTL 相关相关参数
f 设置不分片标记,测试链路 MTU 相关问题
完整操作步骤
第一步 Windows 按下 Win R,输入 cmd 打开命令提示符,Linux Mac 打开终端
第二步 输入基础 ping 命令,例如 ping 8.8.8.8 或者 ping
第三步 回车执行命令,等待返回测试结果
第四步 读取返回信息,重点查看回复超时 时间 TTL 丢包统计
第五步 如果需要持续测试,加上参数 t,测试完成按 Ctrl C 停止,查看最终汇总统计
返回结果关键指标解读
来自目标地址的回复 代表收到应答,网络连通
时间 也就是往返延迟,单位毫秒,数值越低网络响应越快
TTL 生存时间,数据包每经过一个路由就减 1,可以粗略判断经过路由跳数
请求超时 没有收到应答,可能线路断开 目标关机 防火墙拦截 ICMP
统计信息里面的丢失 代表丢包率,丢包率高代表网络不稳定
常用参数汇总表格
参数 适用系统 作用
t Windows 持续 ping
n Windows 指定发包数量
l Windows 指定数据包大小
w Windows 设置超时时间
c Linux Mac 指定发包数量
i Linux Mac 设置发包间隔
补充深度拓展
ping 不通有多种可能性,不一定是网线断了,目标主机防火墙 运营商封禁 ICMP 路由策略 安全设备拦截,都可以造成 ping 超时,但是业务端口仍然可以正常通信,另外 ping 只能测试三层网络连通,无法检测 TCP 端口,端口检测需要搭配 telnet 或者 nc 工具,还有网络抖动场景,单次 ping 结果正常不代表长时间稳定,所以排障的时候经常使用持续 ping,观察一段时间延迟和丢包变化,定位间歇性网络故障。
【常见问题】
问题 1 ping 命令的含义是什么,依靠什么协议工作
回答 1 ping 命令是网络连通性检测工具,依靠 ICMP 协议发送请求应答探测包,用来测试本机到目标主机网络是否连通,同时获取往返延迟数据。
问题 2 Windows 里面 ping 默认发送几个数据包
回答 2 Windows 系统 ping 默认发送 4 个探测数据包,如果想要持续 ping,需要加上 t 参数,按 Ctrl C 终止 ping 命令。
问题 3 ping 命令显示请求超时就一定是网络断了吗
回答 3 不是,ping 命令请求超时有可能是网络中断,也有可能是目标防火墙拦截 ICMP 报文,或者路由策略限制,不能直接判定物理网络断开。
问题 4 ping 通目标地址是不是就代表业务服务一定正常
回答 4 不是,ping 命令只测试三层网络连通性,业务服务属于上层应用,就算 ping 通,端口关闭或者服务故障,业务依旧无法访问。
免责申明
本文属于网络基础科普讲解,ping 命令参数会随不同操作系统版本存在差异,相关内容参考计算机网络通用教材,本文仅作学习参考,不替代专业网络运维官方文档。


