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 习惯不同,跨平台脚本要注意。