Linux ping 命令

(方格的 Groper) 是一个网络管理实用程序,用于检查 IP 网络上源和目标计算机/设备之间的连接状态。 它还可以帮助您评估从网络发送和接收响应所需的时间。

ping 命令的基本原理

每当需要快速检查网络连接状态或检查目标服务器是否处于活动状态时,我们使用 ping 命令发送 ICMP (Internet 控制消息协议)网络数据包发送和接收回显消息。

除了简单地检查服务器/网络是否处于活动状态之外,它还可以用于查找网络的延迟,即服务器响应客户端请求并发送回响应包所需的时间。 这通常使用所谓的 往返时间 (RTT)。 较低的 RTT 意味着更快的网络延迟,因此连接非常好。

默认情况下每秒发送一条回显消息,并且根据回显回复的到达,还会向用户显示适当的统计信息,其中包含有关接收和发送的数据包数量的信息。 这也说明了 RTT,从而也让用户了解连接延迟。

现在我们了解了 ping 的基础知识,让我们使用 Linux 终端将其应用于各种情况。

Ping 网络主机/对等体

我们可以用 ping 检查远程主机/对等方(hostname) 是否可用,使用以下命令。

ping hostname 

我们也可以用 IP 地址代替主机名,因为主机名解析为 IP 地址。

ping 127.0.0.1 

输出将显示 ping 传输尝试的统计信息。

例子:

[email protected]:!/test# ping google.com 
Ping 主机名示例

请注意,此命令默认情况下从不终止,必须使用信号手动终止,例如 Ctrl+C.

增加回显请求之间的时间

默认情况下,如前所述,发送两次连续回显请求之间的时间为 1 秒。 如果你想改变它,你必须指定 -i (间隔)选项。

格式: ping -i TIME hostname

下面的示例显示了一个 ping 命令,连续请求之间的间隔为 5 秒。

[email protected]:~/test# ping -i 5 google.com 
Ping 间隔示例

更改 ping 命令的数据包大小

默认情况下,ICMP 数据包的大小为 56 字节,您可以从前面的输出中观察到。 要修改它,我们可以使用 -s(大小)选项。

格式: ping -s SIZE hostname 会ping hostname 数据包大小为 SIZE 字节。

下面的示例使用数据包大小 ping 远程主机 100 字节。

[email protected]:~/test# ping -s 100 google.com 
Ping 数据包大小示例Ping 数据包大小示例

发送一定数量的数据包

默认版本 ping 将继续发送数据包,直到它被终止。 为了避免这种情况,并且只发送有限数量的数据包,我们可以指定 -c (计数)选项。

格式: ping -c count hostname 将发送 count 到的数据包数 hostname 然后终止。

[email protected]:~/test# ping -c 4 google.com 
Ping 计数示例Ping 计数示例

设置 ping 超时

您可以设置一个时间限制,之后 ping 将退出,无论发送或接收多少 ping 数据包,使用 -w 超时选项。

格式: ping -w timeout hostname 将使用超时作为 timeout 秒数。

下面的示例在 ping google.com 时使用了 2 秒的超时时间,这意味着 3 秒后,它会自动终止。

[email protected]:~/test# ping -w 2 google.com 
Ping 超时示例Ping 超时示例

用 ping 请求淹没网络

Linux ping 命令允许超级用户(例如,当使用 sudo) 通过以下命令每秒发送 100 个或更多数据包:

sudo ping -f hostname

这对于查看服务器如何处理大量请求以及检查这些类型场景中的潜在漏洞可能很有用。

警告: 不要乱用这个命令。 如果您发送太多请求,某些服务器可能会阻止您,因此只能谨慎使用。

[email protected]:~/test# sudo ping -f google.com 
Ping 泛洪示例Ping 泛洪示例

更多选项

下表给出了 ping 所采用的选项列表及其功能。

选项 描述
-一个 当对等方/主机可达时发出哔声
-b 使用此选项允许 ping 广播地址
-B 如果您不想让 ping 更改探测的源地址,请使用此选项
-C 设置发送 ping 请求的次数
-d 设置 调试 正在使用的套接字上的选项
-F 通过每秒发送数百个或更多数据包来淹没网络
-一世 指定连续数据包传输之间的间隔
-一世 将源地址设置为指定的接口地址。 ping IPv6 链路本地地址时需要此选项。 它的参数可以是设备的 IP 地址或名称。
-n 将网络地址显示为数字而不是主机名
-q 安静的输出 – 仅在启动和完成时显示摘要
-T 设置生存时间 (TTL)
-v 详细输出
-w 指定 ping 退出前的超时时间(以秒为单位),无论已发送或接收多少数据包。

结论

在这篇文章中,我们了解了 ping 实用程序命令,这对于分析网络/服务器状态非常有用,并测量其他有用的统计信息,如延迟、RTT 等。我们还学习了使用此命令使用各种选项来发送我们的请求并根据指定的选项对它们进行不同的分析.

参考

  • 用于 ping 的 Linux 手册页