如何通过示例在 Linux 中使用 Ping 命令
Ping 是一种简单、广泛使用的跨平台网络实用程序,用于测试主机是否可以通过 Internet 协议 (IP) 网络访问。它通过向目标主机发送一系列Internet 控制消息协议 (ICMP) ECHO_REQUEST 消息并等待ICMP< 回显回复(或 ECHO_RESPONSE)。
您可以运行 ping 测试以确定您的计算机是否可以与另一台计算机(目标主机)通信;它可以帮助您确定:
- 目标主机是否可达(活动)。
- 测量数据包到达目标主机并返回您的计算机所花费的时间(与目标主机通信的往返时间 (rtt))和李>
- 丢包率以百分比表示。
它的输出是来自目标主机的回复列表以及最后一个数据包到达目标主机并返回到您的计算机所花费的时间。
它还显示测试的统计摘要,通常包括传输的数据包数量和接收的数据包数量、数据包丢失的百分比;最小值、最大值、平均往返时间和平均值的标准差 (mdev)。如果 ping 测试失败,您将看到错误消息作为输出。
您可能还喜欢:
- 22 个用于系统管理员的 Linux 网络命令
- Linux 最常用的网络端口号
- 13 条 Linux 网络配置和故障排除命令
- Fping – Linux 的高性能 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
标志指定发送 ECHO_REQUESTs 的数量,然后退出 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 泛洪的 DoS 攻击又名 Ping of Death
要确定您的网络在高负载条件下的响应,您可以使用 -f
开关运行“flood ping”,它会尽快发送请求。只有 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 广播,这将从连接到您的 LAN 网络的所有 IP 地址获得响应。
$ ping -b 192.168.0.0
6.设置Ping TTL值
要限制探测遍历的网络跃点数(TTL – 生存时间),请使用 -t
标志。您可以设置1和255之间的任意值;不同的操作系统设置不同的默认值。
每个收到数据包的路由器至少从计数中减去1,如果计数仍然大于0,路由器将数据包转发到下一跳,否则,它丢弃它并将 ICMP 响应发送回您的计算机。
在此示例中,已超过 TTL 且 ping 测试失败,如屏幕截图所示。
$ ping -t 10 www.google.com

7. 设置 Ping 数据包大小
默认数据包大小应该足以进行 ping 测试,但是,您可以更改它以满足您的特定测试需求。您可以使用 -s
选项以字节数指定有效负载的大小,这将导致总数据包大小为提供的值加上 8 额外字节对于 ICMP 标头。
$ 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 地址是活动的还是非活动的。
它通常与 MTR 一起使用——现代网络诊断工具结合了 ping 和 traceroute 的功能,并提供许多附加功能。
有关网络工具的完整列表,请查看:Linux 网络管理、故障排除和调试
概括
Ping 是对网络上主机的可访问性进行故障排除的一种非常常用的方法。在本文中,我们解释了 12 个实用的 ping 命令示例,用于测试联网设备的可达性。通过下面的评论表与我们分享您的想法。