Linux中的Ping命令
“ ping”命令是用于故障排除,测试和诊断网络连接问题的最常用工具之一。
Ping通过将一个或者多个ICMP(Internet控制消息协议)回显请求包发送到网络上的指定目标IP并等待答复来工作。
当目的地接收到该程序包时,它将以ICMP回显应答进行响应。
使用“ 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地址,并开始将ICMP软件包发送到目标IP。
如果目标IP可达,它将进行响应,并且ping命令将打印包含以下字段的行:
- 数据字节数。默认值为56,这将转换为64个ICMP数据字节-'64 bytes'。
- 目的地的IP地址-'来自muc11s01-in-f14.1e100.net(172.217.22.206)'。
- 每个数据包的ICMP序列号。 'icmp_seq = 1'。
- 生存的时间。 -'ttl = 53'-TTL如何工作? 。
- ping时间(以毫秒为单位),它是数据包到达主机的往返时间以及返回到发送方的响应。 -'时间= 41.4毫秒'
默认情况下,发送新数据包的间隔为一秒。
“ ping”命令将继续将ICMP软件包发送到目标IP地址,直到收到中断。
要停止命令,只需按“ Ctrl + C”组合键。
命令停止后,它将显示统计信息,包括丢包率。
数据包丢失意味着数据被丢弃到网络中的某个位置,表明网络中存在问题。
如果有数据包丢失,我们可以使用“ traceroute”命令来确定发生数据包丢失的位置。
如果“ ping”未返回答复,则表示未建立网络通信。
发生这种情况时,并不总是意味着目标IP处于不活动状态。
某些主机可能具有阻止ICMP流量或者设置为不响应ping请求的防火墙。
成功后,将使用代码“ 0”退出“ ping”命令。
否则,它将以代码'1'或者'2'退出。
在shell程序脚本中使用“ ping”实用程序时,这很有用。
在以下各节中,我们将介绍最常用的“ ping”命令选项。
指定数据包数量
如前所述,默认情况下,“ ping”将继续发送ICMP数据包,直到接收到中断信号为止。
要指定要发送的Echo Request软件包的数量,在此之后ping将退出,请使用'-c'选项,后跟软件包的数量:
ping -c 1 DESTINATION
例如,仅一次ping'theitroad.com',我们将使用:
ping -c 1 theitroad.com
指定源接口
“ ping”命令的默认行为是通过默认路由发送ICMP软件包。
如果计算机上有多个接口,则可以使用“ -I”选项指定源接口:
ping -I INTERFACE_NAME DESTINATION
以下命令将使用“ em2”作为源接口来对“ theitroad.com”执行ping操作:
ping -I em2 theitroad.com
指定互联网协议
当我们运行“ ping”命令时,它将使用IPv4或者IPv6,具体取决于计算机的DNS设置。
要强制“ ping”使用IPv4,请传递“ -4”选项,或者使用其别名“ ping4”:
ping -4 DESTINATION
对于IPv6,请通过'-6'选项或者使用'ping6':
ping -6 DESTINATION