Linux中的Ping命令

评论 0 浏览 0 2019-02-12

ping命令是排查、测试和诊断网络连接问题的最常用工具之一。

Ping的工作原理是向网络上指定的目的地IP发送一个或多个ICMP(Internet 控制消息协议)Echo Request请求包,并等待回复。当目的地收到该包时,它以ICMP echo回复。

通过ping命令,你可以确定一个远程目的地IP是激活还是不激活。你还可以找到与目的地通信的往返延迟,并检查是否有数据包丢失。

pingiputils(或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退出。否则,它将以代码12退出。当在一个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

如果你有任何问题或反馈意见,请随时留言。

最后更新2023-01-13
0 个评论
标签