{"msg":"操作成功","code":200,"data":{"createBy":"admin","createTime":"2025-01-02 12:54:46","updateBy":"admin","updateTime":"2025-01-02 12:54:46","remark":null,"id":97,"articleTitle":"每天一个Linux命令（二十一）ping","articleUrl":"linux_ping","articleThumbnail":"https://www.asumimoe.com/imgfiles/20250301/b95d839fa195428cb42fc7f104f50b0d.png","articleFlag":"0","draftStatus":"1","reprintStatement":"0","articleSummary":"ping是 Linux/Unix 系统中用于测试网络连接的命令，通过发送 ICMP（Internet Control Message Protocol）回显请求报文到目标主机，并等待回显应答，从而判断网络是否可达以及测量网络延迟。它是网络故障排查中最常用的工具之一。","articleContent":"`ping` 是 Linux/Unix 系统中用于**测试网络连接**的命令，通过发送 ICMP（Internet Control Message Protocol）回显请求报文到目标主机，并等待回显应答，从而判断网络是否可达以及测量网络延迟。它是网络故障排查中最常用的工具之一。\n\n---\n\n## 语法\n\n```bash\nping [选项] 目标主机\n```\n\n---\n\n## 常用选项\n\n| 选项 | 说明                         |\n| ---- | ---------------------------- |\n| `-c` | 指定发送的 ICMP 请求次数     |\n| `-i` | 设置发送请求的时间间隔（秒） |\n| `-s` | 设置 ICMP 数据包大小（字节） |\n| `-t` | 设置 TTL（Time To Live）值   |\n| `-W` | 设置等待响应的超时时间（秒） |\n| `-q` | 静默模式（仅显示统计信息）   |\n| `-f` | 洪水模式（快速发送大量请求） |\n| `-I` | 指定发送请求的网络接口       |\n| `-4` | 强制使用 IPv4                |\n| `-6` | 强制使用 IPv6                |\n\n---\n\n## 输出字段说明\n\n| 字段                   | 说明                      |\n| ---------------------- | ------------------------- |\n| `64 bytes`             | ICMP 数据包大小           |\n| `from`                 | 响应主机的 IP 地址        |\n| `icmp_seq`             | ICMP 请求序列号           |\n| `ttl`                  | 数据包的生存时间（TTL）   |\n| `time`                 | 往返时间（RTT，单位：ms） |\n| `packet loss`          | 丢包率                    |\n| `rtt min/avg/max/mdev` | 最小/平均/最大/标准差 RTT |\n\n---\n\n## 基础使用示例\n\n### 1. 测试网络连通性\n\n```bash\nping example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34): 56 data bytes\n64 bytes from 93.184.216.34: icmp_seq=0 ttl=54 time=25.3 ms\n64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=24.8 ms\n```\n\n---\n\n### 2. 指定发送次数\n\n```bash\nping -c 4 example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34): 56 data bytes\n64 bytes from 93.184.216.34: icmp_seq=0 ttl=54 time=25.3 ms\n64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=24.8 ms\n64 bytes from 93.184.216.34: icmp_seq=2 ttl=54 time=25.1 ms\n64 bytes from 93.184.216.34: icmp_seq=3 ttl=54 time=24.9 ms\n\n--- example.com ping statistics ---\n4 packets transmitted, 4 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 24.8/25.0/25.3/0.2 ms\n```\n\n---\n\n### 3. 设置数据包大小\n\n```bash\nping -s 1000 example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34): 1000 data bytes\n1008 bytes from 93.184.216.34: icmp_seq=0 ttl=54 time=26.1 ms\n1008 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=25.7 ms\n```\n\n---\n\n### 4. 设置发送间隔\n\n```bash\nping -i 2 example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34): 56 data bytes\n64 bytes from 93.184.216.34: icmp_seq=0 ttl=54 time=25.3 ms\n64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=24.8 ms\n```\n\n---\n\n### 5. 设置超时时间\n\n```bash\nping -W 1 example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34): 56 data bytes\n64 bytes from 93.184.216.34: icmp_seq=0 ttl=54 time=25.3 ms\n64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=24.8 ms\n```\n\n---\n\n### 6. 静默模式\n\n```bash\nping -q -c 4 example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34): 56 data bytes\n\n--- example.com ping statistics ---\n4 packets transmitted, 4 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 24.8/25.0/25.3/0.2 ms\n```\n\n---\n\n### 7. 洪水模式（需 root 权限）\n\n```bash\nsudo ping -f example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34): 56 data bytes\n................................................................\n--- example.com ping statistics ---\n12345 packets transmitted, 12345 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 24.8/25.0/25.3/0.2 ms\n```\n\n---\n\n## 进阶用法\n\n### 1. 指定网络接口\n\n```bash\nping -I eth0 example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34) from 192.168.1.100 eth0: 56 data bytes\n64 bytes from 93.184.216.34: icmp_seq=0 ttl=54 time=25.3 ms\n64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=24.8 ms\n```\n\n---\n\n### 2. 强制使用 IPv4\n\n```bash\nping -4 example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34): 56 data bytes\n64 bytes from 93.184.216.34: icmp_seq=0 ttl=54 time=25.3 ms\n64 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=24.8 ms\n```\n\n---\n\n### 3. 强制使用 IPv6\n\n```bash\nping -6 example.com\n```\n\n输出示例：\n\n```bash\nPING example.com(2606:2800:220:1:248:1893:25c8:1946) 56 data bytes\n64 bytes from 2606:2800:220:1:248:1893:25c8:1946: icmp_seq=0 ttl=54 time=25.3 ms\n64 bytes from 2606:2800:220:1:248:1893:25c8:1946: icmp_seq=1 ttl=54 time=24.8 ms\n```\n\n---\n\n### 4. 设置 TTL 值\n\n```bash\nping -t 128 example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34): 56 data bytes\n64 bytes from 93.184.216.34: icmp_seq=0 ttl=128 time=25.3 ms\n64 bytes from 93.184.216.34: icmp_seq=1 ttl=128 time=24.8 ms\n```\n\n---\n\n### 5. 持续 ping 直到中断\n\n```bash\nping example.com\n```\n\n按 `Ctrl+C` 中断后输出统计信息：\n\n```bash\n--- example.com ping statistics ---\n123 packets transmitted, 123 packets received, 0.0% packet loss\nround-trip min/avg/max/stddev = 24.8/25.0/25.3/0.2 ms\n```\n\n---\n\n### 6. 测试 MTU（最大传输单元）\n\n```bash\nping -s 1472 -M do example.com\n```\n\n输出示例：\n\n```bash\nPING example.com (93.184.216.34): 1472 data bytes\n1480 bytes from 93.184.216.34: icmp_seq=0 ttl=54 time=25.3 ms\n1480 bytes from 93.184.216.34: icmp_seq=1 ttl=54 time=24.8 ms\n```\n\n---\n\n### 7. 记录 ping 结果到文件\n\n```bash\nping example.com | tee ping_log.txt\n```\n\n---\n\n## 注意事项\n\n1. **权限要求**：\n   - 普通用户可使用 `ping`，但洪水模式（`-f`）需 root 权限\n2. **目标主机限制**：\n   - 某些服务器可能禁用了 ICMP 响应，导致 `ping` 失败\n3. **网络延迟**：\n   - 延迟受网络拥塞、路由跳数、目标主机负载等因素影响\n4. **TTL 值**：\n   - TTL 值反映数据包经过的路由跳数，初始值通常为 64 或 128","categoryId":1,"viewCount":76,"categoryName":"Linux","author":"球接子","authorAvatar":null,"tagIds":[10],"tagNames":["Linux基础"]}}