Linux 判断网络是否连通 ping
ping命令用于判断当前主机与目标的网络是否连通。
1 基本原理
执行ping命令,当前主机会向目标主机发送数据包,目标同时会向当前主机返回数据包。根据当前主机接收到数据包的情况,返回相应结果:数据包大小、响应时间、等。
注:虚拟机中ping的TTL数值可能不准确。
2 语法
ping 选项 目标主机
 
目标主机:通常为对方主机的域名或IP地址。
可通过 ping -help查看帮助。
3 常用选项
| 常用选项 | 说明 | 
|---|---|
| -c | count,发送数据包个数 | 
| -i | interval,发送的间隔时间,默认为1秒 | 
| -s | packetsize,数据包大小 | 
4 ping域名
本地虚拟 ping百度(www.baidu.com)。
ping www.baidu.com
 
默认情况下,会不停发送数据包,按Ctrl+C 结束命令。
运行结果如下。

64 bytes from 157.148.69.80 (157.148.69.80): icmp_seq=1 ttl=128 time=24.5 ms
| 响应项 | 含义 | 
|---|---|
| 64bytes | 表示发送的数据包大小,64字节 | 
| 157.148.69.80 | 域名解析到的服务器IP | 
| icmp_seq=1 | 数据包的序号,依次1,2,递增 | 
| ttl=128 | TTL大小。 | 
| time=24.5 ms | 响应时间,单位为毫秒 | 
9 packets transmitted, 9 received, 0% packet loss, time 8014ms
rtt min/avg/max/mdev = 23.923/26.752/33.224/3.415 ms
| 响应项汇总 | 含义 | 
|---|---|
| 9 packets transmitted | 发送数据包个数,9 | 
| 9 received | 返回响应包个数,9 | 
| 0% packet loss | 数据包的损失率,0 | 
| time 8014ms | 总时长。默认每秒发送1个包 | 
| rtt min/avg/max/mdev | TTL最小值、平均值、最大值、偏离度(越大越不稳定) | 
5 ping IP地址
我们在ping百度域名得到对应的IP地址,也可以直接ping IP地址。
(注:不同时间不同地点这个IP地址可能不同,以当前实际运行结果为准。)
IP地址可以是外网IP、内网IP或本机IP。
这里我们继续ping百度的IP地址。
ping 157.148.69.80
 
运行结果如下。

6 ping -c 指定发送数量
ping默认不停发送数据包,通过-c指定发送数量。
下面我们指定数量为5。
ping -c 5 baidu.com
 
可省略-c与数值间的空格,两者等价。
ping -c5 baidu.com
 
运行结果如下。

7 ping -i指定间隔时间
ping3次,每次间隔两秒。
ping -c3 -i2 baidu.com
 
