首页/系统/Windows 运维速查/ping 连通性与延迟测试
CMD 常用命令74 条

ping 连通性与延迟测试

ICMP 回显测试:持续 ping、指定次数/大小/超时、不分片探测 MTU,是排查网络的第一步。

Windows 运维速查系统更新于 2026-10-13

ping 是什么

ping 通过发送 ICMP 回显请求并等待回显应答,判断目标主机在三层是否可达,同时给出往返延迟与丢包情况,是网络排查的第一步。它验证的是「IP 层能不能通」,与具体服务是否可用无关。Windows 版 ping 的参数与 Linux 版不同:次数用 -n(Linux 是 -c),载荷大小用 -l(Linux 是 -s),写脚本时不能照搬。

基本信息

适用平台Windows CMD / PowerShell(同名调用的仍是 ping.exe)
语法ping [-t] [-n 次数] [-l 载荷字节] [-f] [-w 超时毫秒] [-4|-6] [-a] 目标
常用开关-t 持续发送、-n 指定次数、-l 载荷大小、-f 不分片、-w 每包超时、-a 反解析主机名
权限普通用户即可;部分安全策略或网络会屏蔽 ICMP
结果要点统计行的丢包百分比与往返时间的最小/最大/平均

典型使用场景

  • 确认目标主机是否在线:ping 网关、ping 同网段另一台机器逐步定位断点
  • 区分是链路问题还是应用问题:ping 通但端口连不上,说明故障在四层以上
  • 观察延迟与抖动:-t 持续跑一段时间,看平均延迟与丢包是否有规律
  • 探测路径 MTU:-f -l 配合不同载荷,找到不分片还能通过的最大包
  • 验证 DNS 解析:直接 ping 域名可以看到解析出的地址,快速判断解析是否正确
  • IPv6 环境验证:用 -6 指定走 IPv6,排除双栈下走错协议族的干扰

常用示例

常用示例
:: 发 4 个包做基本连通性测试
ping -n 4 8.8.8.8
:: 持续 ping,Ctrl+C 结束后看统计
ping -t 192.168.1.1
:: 探测路径 MTU:1472 + 28 字节头 = 1500,不分片
ping -f -l 1472 www.example.com
:: 指定每包超时 1 秒,避免慢链路长时间等待
ping -n 5 -w 1000 10.0.0.8
:: 走 IPv6
ping -6 fe80::1
:: 反解名称,确认解析结果
ping -a 10.0.0.8

参数与结果速查

项含义正常/异常
-n 次数发送多少个回显请求默认 4 个,脚本里显式指定更可控
-l 大小载荷字节数,不含 28 字节 ICMP 与 IP 头出现「需要拆分数据包」说明超过路径 MTU
-f设置不分片标志配合 -l 1472 失败即说明路径 MTU 小于 1500
-w 超时等待应答的毫秒数默认较长,跨网测试建议显式缩小
时间=xxms单包往返时间波动大或阶梯式上升说明链路拥塞或有中间设备限速
丢失未收到应答的包数与百分比持续 1% 以上需要进一步定位;偶发单包可忽略
排查顺序建议:先 ping 127.0.0.1 确认本机协议栈,再 ping 网关确认内网出口,最后 ping 目标地址。逐段推进能把故障范围从整条路径收窄到一个跳点。
ping -t 会一直发包,在跨网或按流量计费的链路上长时间运行会产生实际流量;排查结束记得 Ctrl+C 结束,别留在远程会话里忘记关闭。

失败信息对照

提示常见原因下一步动作
请求超时中间设备丢弃、对方禁 ICMP 或路由不可达改用 TCP 端口测试,再用 tracert 定位断点
无法访问目标主机本机无匹配路由或网关不可达检查本机地址、掩码与默认网关是否配置正确
一般故障本机协议栈或网卡驱动异常先 ping 127.0.0.1 验证本机协议栈
需要拆分数据包载荷超过路径 MTU减小 -l 值,排查 VPN 与隧道链路的 MTU 设置
延迟阶梯式跳变链路拥塞或中间设备限速分段 ping 网关与目标,判断问题在内网还是出口
批量存活检测的思路:把主机清单写成文本,用 for /f 逐行读取并执行 ping -n 1 -w 500,再过滤含 TTL= 的行判断是否有应答,比逐个手工敲快得多。

易错点

  • 把「ping 通」当成「服务可用」:ICMP 通只证明三层可达,应用端口被防火墙拦截时仍然连不上,必须再做端口测试
  • 把「ping 不通」当成「主机下线」:很多主机与云平台默认禁 ICMP,此时要用 TCP 端口探测或 Test-NetConnection 佐证
  • 用 -l 1472 配 -f 测 MTU 时,失败只说明包过大,需要再逐步减小载荷找到临界值,不能直接判断链路故障
  • 在负载均衡或任播地址上 ping,每个包可能落到不同后端,延迟差异大属正常,不能据此判断单台设备异常
  • 在 PowerShell 里写 ping 时容易忘记它是外部程序:判断成败要用 $LASTEXITCODE,而不是 PowerShell 的 $?

数据来源与参考

  • Microsoft Learn:ping 命令
  • RFC 792:ICMP 协议

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌