Ping是一个简单、广泛使用的、跨平台的网络实用工具,用于测试主机是否可在Internet Protocol(IP)网络上可达。它通过向目标主机发送一系列Internet Control Message Protocol(ICMP)ECHO_REQUEST消息,并等待ICMP回显回复(或ECHO_RESPONSE)来工作。
您可以运行ping测试以确定您的计算机是否能与另一台计算机(目标主机)进行通信;它帮助您确定:
- 目标主机是否可达(活动)或不可达。
- 测量数据包到达目标主机并返回到您的计算机(与目标主机通信的往返时间(rtt))所需的时间,以及
- 数据包丢失的百分比。
它的输出是来自目标主机的回复列表,以及最后一个数据包到达目标主机并返回到您的计算机所需的时间。
它还显示了测试的统计摘要,通常包括传输的数据包数和接收的数据包数,数据包丢失的百分比;最小、最大、平均往返时间以及平均值的标准偏差(mdev)。如果ping测试失败,您将看到错误消息作为输出。
Linux 中的 Ping 命令示例
在本文中,我们将解释用于测试网络上主机可达性的 12 个实用的 ping 命令 示例。
目录
1. Ping 域名或 IP 地址
您可以运行简单的 ping 测试,以查看目标主机 www.google.com 是否可达。您还可以使用 IP 地址代替域名,如所示。
$ ping www.google.com OR $ ping 172.217.27.196
示例输出:
ping www.google.com PING www.google.com (172.217.27.196) 56(84) bytes of data. 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=1 ttl=111 time=5.01 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=2 ttl=111 time=4.75 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=3 ttl=111 time=5.37 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=4 ttl=111 time=4.99 ms ^C --- www.google.com ping statistics --- 4 packets transmitted, 4 received, 0% packet loss, time 3004ms rtt min/avg/max/mdev = 4.751/5.030/5.373/0.222 ms ...
从以上命令的结果来看,ping 成功,并且没有丢失数据包。在 ping 测试输出中需要注意的一点是每次 ping 回复的时间。
假设您正在对服务器进行 ping 测试,那么这里的值很重要,具体取决于服务器上运行的应用程序类型。
例如,如果您有一个 web 应用程序,在该应用程序中,单个用户请求导致数据库执行许多查询以生成 UI 上的结果,则对该特定服务器的 ping 时间越低,意味着更多的数据被传输而没有延迟,反之亦然。
2. Ping 回显请求
您可以使用-c
标志指定发送5个数据包后退出ping测试(在这种情况下,ping测试将在发送5个数据包后停止)。
$ ping -c 5 www.google.com PING www.google.com (172.217.27.196) 56(84) bytes of data. 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=1 ttl=111 time=4.31 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=2 ttl=111 time=4.35 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=3 ttl=111 time=4.06 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=4 ttl=111 time=5.20 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=5 ttl=111 time=4.41 ms --- www.google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 4006ms rtt min/avg/max/mdev = 4.064/4.464/5.195/0.383 ms
3. 设置Ping间隔超时
-i
标志允许您在发送每个数据包之间设置以秒为单位的间隔时间,默认值为一秒。
$ ping -i 3 -c 5 www.google.com PING www.google.com (172.217.27.196) 56(84) bytes of data. 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=1 ttl=111 time=5.71 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=2 ttl=111 time=6.19 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=3 ttl=111 time=5.39 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=4 ttl=111 time=7.34 ms 64 bytes from bom07s15-in-f4.1e100.net (172.217.27.196): icmp_seq=5 ttl=111 time=4.77 ms --- www.google.com ping statistics --- 5 packets transmitted, 5 received, 0% packet loss, time 12014ms rtt min/avg/max/mdev = 4.768/5.879/7.341/0.863 ms
4. 使用Ping Flood进行DoS攻击,又称Ping of Death
为了确定您的网络在高负载条件下的响应情况,您可以运行“洪水ping”,它以尽可能快的速度发送请求,使用-f
开关。只有root用户可以使用此选项,否则,请使用sudo命令获取root权限。
$ sudo ping -f www.google.com OR $ sudo ping -f -i 3 www.google.com #specify interval between requests PING www.google.com (172.217.163.36) 56(84) bytes of data. .......................................................................................................................................................................................^C --- www.google.com ping statistics --- 2331 packets transmitted, 2084 received, 10% packet loss, time 34095ms rtt min/avg/max/mdev = 29.096/29.530/61.474/1.417 ms, pipe 4, ipg/ewma 14.633/29.341 ms
5. Ping广播一个局域网
您可以使用-b
选项启用对广播的ping,这将从连接到您的局域网网络的所有IP地址获取响应。
$ ping -b 192.168.0.0
6. 设置Ping的TTL值
TTL(生存时间)1 到 255 之间的任何值;不同的操作系统设置的默认值不同。
接收数据包的每个路由器至少从计数中减去 1,如果计数仍然大于 0,则路由器将数据包转发到下一个跃点,否则它将丢弃数据包并发送 ICMP 响应回您的计算机。
在本例中,TTL 已超时,ping 测试失败,如屏幕截图所示。
$ ping -t 10 www.google.com

7. 设置 Ping 数据包大小
Ping 测试的默认数据包大小应该足够了,但是您可以根据具体的测试需求进行更改。您可以使用 -s
选项指定有效负载的大小(以字节为单位),这将导致总数据包大小为提供的值加上 ICMP 头所需的额外 8 字节。
$ ping -s 1000 www.google.com
8. 设置 Ping 预加载
如果添加预加载,ping 将发送多个数据包而不等待回复。注意,只有 root 可以选择大于 3 的预加载,否则请使用 sudo 命令 获取 root 权限。
$ sudo ping -l 5 www.google.com
9. 设置 Ping 超时
还可以使用-W
选项设置等待响应的时间,单位为秒。
$ ping -W 10 www.google.com
10. 设置Ping超时时间(秒)
要设置在几秒钟后退出Ping而不管已发送或接收了多少数据包,请使用-w
标志。
$ ping -w 5 www.google.com
11. Ping调试ICMP数据包
使用-d
选项可以启用调试IP数据包详细信息,如下。
$ ping -d www.google.com
12. Ping详细输出
您可以使用-v
标志启用详细输出,如下。
$ ping -v www.google.com
注意:Ping可能并非用于测试网络连接,它只是告诉您IP地址是活动的还是非活动的。
通常与traceroute程序一起使用,但是MTR – 一种现代网络诊断工具结合了ping和traceroute的功能,并提供许多附加功能。
要查看网络工具的全面列表,请访问:Linux网络管理、故障排除和调试
摘要
Ping是用于检测网络上主机可访问性的一种非常常见的方法。在本文中,我们解释了12个用于测试网络设备可达性的实用ping命令示例。请通过下面的评论表单与我们分享您的想法。