用 ICMP 回显验证主机可达性和时延,定位丢包与 MTU 问题。
ping 向目标发送 ICMP Echo Request,靠 Echo Reply 判断 IP 层是否可达,并给出每包往返时延和 TTL。Windows 默认只发 4 个包,-t 持续发送,-n 指定次数;它既能测 IPv4,也能测 IPv6,主机名会先经过 DNS 解析。
边界:ping 通只说明 ICMP 可达,不代表 TCP 端口或应用可用;ping 不通也不能直接断定主机宕机,Windows 防火墙默认拦截入站 ICMP 回显。测端口要用 Test-NetConnection(PowerShell)或 curl;测路径用 tracert,测逐跳丢包用 pathping。
Windows 10/11 的行为一致;Linux 的 ping 默认持续发送,Windows 默认 4 次后退出,这是跨平台脚本最常见的差异。-t 下按 Ctrl+Break 显示统计但继续发送,按 Ctrl+C 才停止。IPv4 与 IPv6 的响应可能完全不同,排障时要明确协议。
# 1. 发 4 个默认包,快速判断名称解析和 IP 层连通性
C:\> ping example.com
# 2. 发 10 个包、每包等 1 秒,适合观察间歇性丢包
C:\> ping -n 10 -w 1000 192.168.1.1
# 3. 持续 ping;Ctrl+Break 看统计,Ctrl+C 结束
C:\> ping -t 8.8.8.8
# 4. 强制 IPv4 并反向解析地址,确认自己走的是哪条协议栈
C:\> ping -4 -a 8.8.8.8
# 5. 探测路径 MTU:1472 + 28 字节 IPv4 头 = 1500,不允许分片
C:\> ping -f -l 1472 192.168.1.1
# 6. 指定源地址,验证多网卡主机从哪块网卡发出
C:\> ping -S 192.168.1.10 example.com
请求超时 可能是目标不回复 ICMP、防火墙拦截或链路丢包;无法访问目标主机 更像本地路由/网关问题;TTL 传输中过期 表示路由环路或 TTL 太小。先换 IP、换源地址、再用 TCP 端口测试交叉验证。Test-NetConnection host -Port 443 或 curl -I https://host 验证。-w 是每个回包的等待毫秒数,不是总超时;-n 才控制包数。脚本里建议写成 ping -n 1 -w 1000 host,避免默认 4 包把故障等待放大。-l 1472 -f 对应 1500 MTU,IPv6 头是 40 字节,对应负载要减到 1452 左右。ping 192.0.2.10 和 nslookup host 对比,不要混在一起猜。pathping 或对同一目标连发多组包看趋势,单次 4 包不足以定性。合上页面,先回答,再展开对照。
ping 默认发几个包?如何持续发送,怎样只看统计不退出?ping -f -l 1472 中的 1472 是怎么算出来的?出现“需要拆分”说明什么?-t 持续发送,Ctrl+Break 显示统计且继续,Ctrl+C 停止。Test-NetConnection host -Port 443 或 curl -I 验证。
小程序版
微信扫码,随时查命令