ping命令

ping 命令 #

ping命令是一个用于测试网络连接的基本网络工具。它通过发送 ICMP 回显请求包到指定的主机,并等待回显响应包来测试网络连通性和响应时间。

语法 #

ping [选项] 目标主机

常用选项 #

选项 描述
-c 数量 指定发送的请求数量
-i 秒数 指定请求之间的间隔(秒)
-s 大小 指定发送的数据包大小(字节)
-t TTL 设置 IP 生存时间(TTL)值
-W 秒数 设置响应超时时间(秒)
-q 安静模式,只显示摘要
-v 详细模式
-4 强制使用 IPv4
-6 强制使用 IPv6

常见用法 #

1. 基本用法(持续 ping 直到手动停止) #

ping example.com

输出示例:

PING example.com (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=11.6 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=11.8 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=11.7 ms

Ctrl+C停止。

2. 发送特定数量的 ping 请求 #

ping -c 4 example.com

输出示例:

PING example.com (93.184.216.34) 56(84) bytes of data.
64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=11.6 ms
64 bytes from 93.184.216.34: icmp_seq=2 ttl=56 time=11.8 ms
64 bytes from 93.184.216.34: icmp_seq=3 ttl=56 time=11.7 ms
64 bytes from 93.184.216.34: icmp_seq=4 ttl=56 time=11.9 ms

--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 11.634/11.761/11.903/0.098 ms

3. 更改 ping 间隔 #

ping -i 2 -c 3 example.com

这会每 2 秒发送一次 ping 请求,共发送 3 次。

4. 更改数据包大小 #

ping -s 1000 -c 3 example.com

这会发送 1000 字节的数据包,共发送 3 次。

5. 设置超时时间 #

ping -W 1 -c 3 example.com

这会将响应超时时间设置为 1 秒。

6. 只显示摘要信息 #

ping -q -c 5 example.com

输出示例:

PING example.com (93.184.216.34) 56(84) bytes of data.

--- example.com ping statistics ---
5 packets transmitted, 5 received, 0% packet loss, time 4006ms
rtt min/avg/max/mdev = 11.634/11.761/11.903/0.098 ms

7. 指定 IPv4 或 IPv6 #

ping -4 example.com  # 强制使用IPv4
ping -6 example.com  # 强制使用IPv6

8. 检查本地网络连接 #

ping -c 3 192.168.1.1

9. 使用 ping 检测网络延迟 #

ping -c 10 example.com

查看输出中的平均(avg)、最小(min)和最大(max)响应时间。

输出解释 #

64 bytes from 93.184.216.34: icmp_seq=1 ttl=56 time=11.6 ms
  • 64 bytes:接收到的数据包大小
  • from 93.184.216.34:响应的 IP 地址
  • icmp_seq=1:ICMP 序列号
  • ttl=56:生存时间值(数据包可以经过的路由器数量)
  • time=11.6 ms:往返时间(从发送到接收的时间)

统计信息解释 #

--- example.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3005ms
rtt min/avg/max/mdev = 11.634/11.761/11.903/0.098 ms
  • 4 packets transmitted:发送的数据包数量
  • 4 received:接收到的数据包数量
  • 0% packet loss:丢包率
  • time 3005ms:总耗时
  • rtt min/avg/max/mdev:往返时间的最小值/平均值/最大值/平均偏差

提示 #

  • 如果 ping 不通,可能是目标主机关闭、网络问题或防火墙阻止了 ICMP 包
  • 许多服务器和防火墙配置为不响应 ping 请求,这是一种安全措施
  • 高 ping 时间(>100ms)可能表示网络拥塞或距离远
  • 丢包率高表示网络连接不稳定
  • 使用pingtraceroute结合可以更全面地诊断网络问题
  • 在某些系统上,普通用户可能需要特殊权限才能使用某些 ping 选项