The ping
命令是最常用的用于故障排除、测试和诊断网络连接问题的工具之一。
Ping 的工作原理是向网络上指定的目标 IP 发送一个或多个 ICMP(互联网控制消息协议)回显请求包,并等待回复。当目的地收到数据包时,它会使用 ICMP 回显回复进行响应。
随着ping
命令,您可以确定远程目标 IP 是活动的还是非活动的。还可以查看与目的地通信的往返时延,检查是否存在丢包情况。
ping
是的一部分iputils
(or iputils-ping
) 软件包,几乎所有 Linux 发行版都预安装了该软件包。它也可在 Windows、macOS 和 FreeBSD 上使用。
如何使用 Ping 命令#
ping 命令的语法如下:
ping [OPTIONS] DESTINATION
为了更好地说明 ping 命令的工作原理,让我们 pinggoogle.com
:
ping google.com
输出将如下所示:
PING google.com (172.217.22.206) 56(84) bytes of data.
64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=1 ttl=53 time=40.2 ms
64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=2 ttl=53 time=41.8 ms
64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=3 ttl=53 time=47.4 ms
64 bytes from muc11s01-in-f14.1e100.net (172.217.22.206): icmp_seq=4 ttl=53 time=41.4 ms
^C
--- google.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 7ms
rtt min/avg/max/mdev = 40.163/42.700/47.408/2.790 ms
The ping
命令将域名解析为IP地址,并开始向目的IP发送ICMP包。如果目标 IP 可达,它将做出响应,并且 ping 命令会打印包含以下字段的行:
- 数据字节数。默认值为 56,转换为 64 个 ICMP 数据字节 -
64 bytes
.
- 目的地的 IP 地址 -
from muc11s01-in-f14.1e100.net (172.217.22.206)
.
- 每个数据包的 ICMP 序列号。
icmp_seq=1
.
- 生存的时间。 -
ttl=53
- TTL如何工作?
.
- ping 时间(以毫秒为单位),即数据包到达主机以及响应返回发送方的往返时间。 -
time=41.4 ms
.
缺省情况下,发送新报文的时间间隔为1秒。
The ping
命令将继续发送 ICMP 数据包到目标 IP 地址,直到收到中断。要停止命令,只需点击Ctrl+C
组合键。
命令停止后,它会显示统计信息,包括数据包丢失的百分比。数据包丢失意味着数据在网络中的某个位置丢失,表明网络中存在问题。如果出现丢包的情况,可以使用traceroute
命令来识别丢包发生的位置。
If ping
没有返回回复,则表示网络通信未建立。发生这种情况时,并不总是意味着目标 IP 不活动。某些主机可能有防火墙阻止 ICMP 流量或设置为不响应 ping 请求。
论成功,ping
命令退出并带有代码0
。否则,它将退出并显示代码1
or 2
。这在使用时很有用ping
shell 脚本中的实用程序。
在以下部分中,我们将介绍最常用的ping
命令选项。
指定数据包数量#
正如已经提到的,默认情况下,ping
会继续发送ICMP包,直到收到中断信号。要指定 ping 将退出之前要发送的 Echo Request 包的数量,请使用-c
选项后跟包裹数量:
例如,要 pinglinuxize.com
您只会使用一次:
ping -c 1 linuxize.com
指定源接口#
默认行为ping
命令是通过默认路由发送ICMP包。如果您的计算机上有多个接口,您可以使用以下命令指定源接口-I
option:
ping -I INTERFACE_NAME DESTINATION
以下命令将 pinglinuxize.com
using em2
作为源接口:
ping -I em2 linuxize.com
指定互联网协议#
当你运行ping
命令,它将使用 IPv4 或 IPv6,具体取决于您的计算机 DNS 设置。
强迫ping
要使用 IPv4,请传递-4
选项,或使用其别名ping4
:
对于 IPv6,请传递-6
选项或使用ping6
:
结论#
ping
是一个命令行网络实用程序,允许您测试网络上给定主机的 IP 级连接。
查看所有可用选项ping命令、类型man ping
在您的终端中。
如果您有任何问题或反馈,请随时发表评论。