ping 的参数覆盖大多数链路问题
ping 是联网诊断的第一条命令,但它的价值不只是「能不能通」:数量与间隔可以看稳定性,包大小与是否禁止分片可以验证 MTU,指定源接口与源地址可以验证多网卡出口,总超时与单包超时可以控制排障节奏。把常用参数记成两组,一组 Linux 一组 Windows,遇到问题时就不用临时翻手册。
Linux 常用
Linux 常用
ping -c 4 1.1.1.1 # 只发 4 个包,避免一直占用终端
ping -i 0.2 -c 20 10.0.0.9 # 间隔 0.2 秒快速探测,小于 0.2 秒需要 root
ping -s 1200 -M do 10.0.0.9 # 指定包大小并禁止分片,用来探测路径 MTU
ping -I eth1 10.0.0.9 # 指定源接口,验证多网卡出口选择
ping -w 3 -c 1 host # 总超时 3 秒,脚本里最常用
ping -6 -c 3 2400:3200::1 # IPv6 探测Windows 常用
Windows 常用
ping -n 4 1.1.1.1 # 发 4 个包
ping -l 1400 -f 1.1.1.1 # 指定负载大小并禁止分片
ping -w 1000 1.1.1.1 # 单包等待超时(毫秒)
ping -4 1.1.1.1 # 强制使用 IPv4
ping -a 1.1.1.1 # 顺带反向解析主机名输出逐列读法
| 字段 | 含义 | 异常表现 |
|---|---|---|
| icmp_seq | 序列号 | 跳号即丢包,连续丢失说明链路中断 |
| ttl | 剩余跳数 | 可用于粗略推断对端系统与经过的跳数 |
| time | 往返时延 | 忽大忽小说明链路抖动,稳定偏高多为地理距离 |
| packet loss | 丢包率 | 短时高丢包要与限速策略区分 |
| rtt 统计行 | 最小、平均、最大与偏差 | 偏差明显偏大是抖动最直接的证据 |
典型使用场景
- 判断目标主机是否可达,快速排除路由与网络层问题
- 用大包加禁止分片探测路径 MTU,定位大文件传输卡住的原因
- 多网卡服务器上验证指定接口的连通性,确认出口选择正确
- 把 ping 放到脚本里做前置检查,超时参数控制整体耗时
- 对比多个目标地址的时延与抖动,评估线路质量
IPv6 探测用 ping6 或 ping 加 -6,链路本地地址必须带接口标识,否则内核不知道该从哪个网卡发出。
用禁止分片的大包探测时,必须同时观察是否返回 ICMP 需要分片的提示:如果提示被中间设备过滤掉,现象会与链路丢包一模一样,容易被误判。