Ping 是一个简单、广泛使用的、跨平台的网络工具,用于测试主机在Internet协议(IP)网络上是否可达。它的工作原理是向目标主机发送一系列的Internet控制消息协议(ICMP)ECHO_REQUEST消息,然后等待ICMP 回应(或称为ECHO_RESPONSE)。
你可以运行一个ping测试,以确定你的计算机是否能与另一台计算机(目标主机)通信;它可以帮助你确定:
它的输出是目标主机的回复列表,以及最后一个数据包到达目标主机并返回到你的计算机所需的时间。
它还显示了测试的统计摘要,通常包括传输的数据包数量和接收的数据包数量,数据包丢失的百分比;最小、最大、平均往返时间,以及平均值的标准偏差(mdev)。如果ping测试失败,你将看到错误消息作为输出。
文章目录
你可以运行一个简单的ping测试,看看目标主机baidu.com 是否可达。你也可以使用IP地址代替域名,如下所示。
$ ping baidu.com
#或
$ ping 172.217.27.196
示例输出:从上述命令的结果来看,ping成功,没有丢失任何数据包。在ping测试输出中需要注意的一件重要的事情是,每个ping回应的末尾的时间。
假设你正在对你的服务器进行ping测试,那么这里的值就非常重要,这取决于你在服务器上运行的应用程序的类型。
例如,如果你有一个Web应用程序,其中单个用户请求会导致对数据库进行大量查询以在UI上生成结果,那么到该特定服务器的较低ping时间意味着更多的数据正在无延迟地传输,反之亦然。
-c
标志指定要发送的ECHO_REQUESTs的数量,然后ping就会退出(在这种情况下,ping测试将在发送5个数据包后停止)。$ ping -c 5
示例输出:-i
标志允许你设置发送每个数据包之间的间隔,单位是秒,默认值是一秒。$ ping -i 3 -c 5
示例输出:-f
开关。只有root用户可以使用这个选项,否则,使用sudo命令获取root权限。$ sudo ping -f baidu.com
#或
$ sudo ping -f -i 3 baidu.com #指定请求之间的间隔
示例输出:-b
选项启用ping广播,这将从连接到你的局域网网络的所有IP地址获取响应。$ ping -b 192.168.0.0
-t
标志。你可以设置任何值在1和255之间;不同的操作系统设置不同的默认值。每个接收到数据包的路由器都至少从计数中减去1,如果计数仍然大于0,路由器将数据包转发到下一个跳点,否则,它将丢弃数据包并向你的计算机发送ICMP响应。
在这个例子中,TTL已经超过了,ping测试失败,如截图所示。
$ ping -t 10 baidu.com
-s
选项指定有效载荷的大小,以字节数表示,这将导致总数据包大小为所提供的值加上8个额外字节用于ICMP头部。$ ping -s 1000 baidu.com
如果添加了预加载,ping将发送那么多的数据包,不等待回复。注意,只有root用户才能选择超过3的预加载,否则,使用sudo命令获取root权限。
$ sudo ping -l 5 baidu.com
-W
选项如下所示。$ ping -W 10 baidu.com
-w
标志。$ ping -w 5 baidu.com
-d
选项允许你启用调试IP数据包详细信息,如下所示。$ ping -d baidu.com
-v
标志启用详细输出,如下所示。$ ping -v baidu.com
注意:Ping不一定用于测试网络连通性,它只是告诉你一个IP地址是活动还是非活动的。它通常与traceroute程序一起使用,但是MTR – 一个现代网络诊断工具结合了ping和traceroute的功能,并提供了许多额外的特性。
Ping是一种非常常见的方法,用于排查网络上主机的可访问性。在这篇文章中,解释了12个实用的ping命令实例,用于测试网络设备的可达性。