Linux中的Ping命令
ping
命令是排查、测试和诊断网络连接问题的最常用工具之一。
Ping的工作原理是向网络上指定的目的地IP发送一个或多个ICMP(Internet 控制消息协议)Echo Request请求包,并等待回复。当目的地收到该包时,它以ICMP echo回复。
通过ping
命令,你可以确定一个远程目的地IP是激活还是不激活。你还可以找到与目的地通信的往返延迟,并检查是否有数据包丢失。
ping
是iputils
(或iputils-ping
)软件包的一部分,它被预装在几乎所有的Linux发行版上。它也可以在Windows、macOS和FreeBSD上使用。
如何使用Ping命令
ping命令的语法如下:
ping [OPTIONS] DESTINATION
为了更好地说明,ping命令是如何工作的,让我们来ping google.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
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
.
默认情况下,发送一个新数据包的时间间隔为一秒。
ping
命令将继续向目的地IP地址发送ICMP包,直到它收到一个中断。要停止该命令,只需按下Ctrl+C
组合键。
一旦命令停止,它就会显示一个统计数字,包括丢包的百分比。丢包意味着数据在网络的某个地方被丢掉了,表明网络内部有问题。如果有丢包,你可以使用traceroute
命令来确定丢包发生的位置。
如果ping
没有返回回复,这意味着网络通信没有建立。当这种情况发生时,它并不总是意味着目标IP没有被激活。有些主机可能有一个防火墙,阻止了ICMP流量,或者设置为不响应ping请求。
成功时,ping
命令以代码0
退出。否则,它将以代码1
或2
退出。当在一个shell脚本中使用ping
工具时,这可能很有用。
在下面的章节中,我们将介绍最常用的ping
命令选项。
指明数据包的数量
如前所述,默认情况下,ping
将继续发送ICMP包,直到它收到一个中断信号。要指定发送Echo Request包的数量,之后ping将退出,请使用-c
选项,后面跟着包的数量。
ping -c 1 DESTINATION
例如,要想只ping linuxize.com
一次,你会使用。
ping -c 1 linuxize.com
指定源头接口
ping
命令的默认行为是通过默认路由发送ICMP包。如果你的机器上有多个接口,你可以用-I
选项指定源接口。
ping -I INTERFACE_NAME DESTINATION
下面的命令将使用em2
作为源接口来ping linuxize.com
。
ping -I em2 linuxize.com
指明互联网协议
当你运行ping
命令时,它将使用IPv4或IPv6,这取决于你的机器的DNS设置。
要强制ping
使用IPv4,请通过-4
选项,或使用它的别名ping4
。
ping -4 DESTINATION
对于IPv6,请通过-6
选项,或使用ping6
。
ping -6 DESTINATION
总结
ping
是一个命令行网络工具,它允许你测试网络上给定主机的IP级连接性。
要查看ping
命令的所有可用选项,请在你的终端中输入man ping
。
如果你有任何问题或反馈意见,请随时留言。