040 ping命令
命令说明
ping 通过发送 ICMP Echo Request 并等待回包来检测主机可达性与网络质量,输出延迟与丢包率,是网络排障第一步。
语法
ping [选项]... 主机/IP
常用参数
| 参数 | 说明 |
|---|---|
| -c 次数 | 发送指定次数后停止(Linux 默认一直发,脚本必加) |
| -i 秒 | 发送间隔,默认 1 秒,root 可设小于 0.2 |
| -W 毫秒 | 等待单个回包的超时时间 |
| -w 秒 | 总截止时间,到点即退出 |
| -s 大小 | 指定数据包大小(字节),测试大包分片用 1472/1400 |
| -f | 洪水模式高速发包(压测用,需 root) |
| -q | 静默模式,只输出最终统计 |
| -4 / -6 | 强制 IPv4 / IPv6(ping6) |
| -I 接口 | 指定出接口或源地址,多网卡排障常用 |
| -n | 只输出数字地址,不做反向 DNS 解析 |
使用示例
$ ping -c 4 baidu.com
测试外网可达与平均延迟(最常用)
$ ping -c 4 192.168.1.1
测试网关是否在线
$ ping -I eth1 -c 4 10.0.0.1
指定从 eth1 网卡发包测试路由
$ ping -c 4 -s 1472 192.168.1.1
大包测试 MTU 是否够用(1472+28=1500)
$ ping -c 4 -W 1000 192.168.1.50
1 秒超时快速判断主机是否活着
$ ping -q -c 10 host
只看丢包与延迟统计,适合脚本采集
$ ping -c 4 8.8.8.8
用 IP 排除 DNS 因素:IP 通而域名不通是 DNS 问题
$ ping6 -c 4 ipv6.google.com
测试 IPv6 连通性
实用技巧
- 排障分层思路:ping 网关通不通 → ping 公网 IP 通不通 → ping 域名通不通,分别定位二层/路由/DNS 问题。
- ping 不通不等于主机宕机:很多防火墙/云安全组默认禁 ICMP,可用 tcping 或 ssh 端口验证。
- Linux 下 ping 默认持续发送,Ctrl+C 停止并打印统计;脚本中务必加 -c 否则永远不退出。
- 丢包率与延迟波动是判断网络质量的关键:rtt 的 min/avg/max/mdev 中 mdev 大说明抖动严重。
- Windows 的 ping 默认只发 4 次且 -w 单位是毫秒,与 Linux 习惯不同,跨平台脚本要注意。