Linux ping 命令详细参数及设置包大小方法

Linux ping 命令详细参数及设置包大小方法

1. ‌常用参数详解

参数 描述
-c <次数> 指定发送的 ICMP 包数量(如
-s <大小>
-i <间隔> 设置发包间隔(秒),默认 1 秒(Root 可设 <0.2 秒)
-w <超时> 设置整体超时时间(秒),超时后停止
-W <超时> 设置等待单个回复的超时时间(秒)
-t 设置 TTL(生存时间),限制经过的路由跳数
-q 安静模式:只显示最终统计结果
-v 详细模式:显示更多信息(如 ICMP 错误)
-4 强制使用 IPv4 或 IPv6

2. ‌设置 Ping 包大小

1
2
bashCopy Code
ping -s <包大小> <目标IP或域名>

1
2
3
4
5
6
7
8
9
bashCopy Code
# 发送 100 字节的包(实际大小 = 100 + 28 字节协议头)
ping -s 100 google.com

# 发送 1500 字节大包(测试 MTU 是否支持)
ping -s 1500 192.168.1.1

# 组合参数:发送 5 个 500 字节包,间隔 0.5 秒
ping -s 500 -c 5 -i 0.5 example.com

3. ‌关键注意事项

  1. 实际包大小‌:

  2. 总大小 = -s 值 + ‌28 字节‌(ICMP 头 8 字节 + IP 头 20 字节)。

  3. 例如 -s 100 实际发送 ‌128 字节‌。

  4. 最大包限制‌:

  5. 通常不超过 ‌65535 字节‌(需系统支持)。

  6. 超大包可能被路由器分片或丢弃(建议测试 MTU 时用 -s 1472 测试不分片极限)。

  7. 权限要求‌:

  8. 设置高速发包(-i <0.2)或超大包需 ‌Root 权限‌。

4. ‌高级用法示例

1
2
3
4
5
6
7
8
9
bashCopy Code
# 测试网络延迟(发送 10 个 64 字节包)
ping -c 10 -s 64 example.com

# 诊断大包连通性(1500 字节,超时 2 秒)
ping -s 1500 -W 2 google.com

# 追踪路径并测试分片(TTL 递增)
for i in {1..30}; do ping -t $i -c 1 -s 1472 example.com; done