12 个 Ping 命令示例来测试你的网络
Ping是一种简单、广泛使用的跨平台网络实用程序,用于测试在Internet 协议( IP ) 网络上是否可以访问主机。它的工作原理是向目标主机发送一系列Internet 控制消息协议( 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 回显请求
您可以使用如图所示的标志指定 ping 退出后要发送的ECHO_REQUEST数量-c
(在这种情况下,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 Flooding 进行 DoS 攻击,又称“死亡之 Ping”
要确定高负载条件下网络的响应,可以使用交换机运行“ flood 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 广播
您可以使用该选项启用 ping 广播-b
,它将从连接到您的 LAN 网络的所有 IP 地址获得响应。
$ ping -b 192.168.0.0
6.设置 Ping TTL 值
要限制探测遍历的网络跳数(TTL -生存时间),请使用该标志。您可以设置1到255-t
之间的任何值;不同的操作系统设置不同的默认值。
每个接收数据包的路由器都会从计数中减去至少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 命令示例。通过下面的评论表与我们分享您的想法。