Linux下ping返回信息,Linux命令:ping

ping

介绍

PING程序是我们使用的比较多的用于测试网络连通性的程序。PING程序基于ICMP,使用ICMP的回送请求和回送应答来工作。由计算机网络课程知道,ICMP是基于IP的一个协议,ICMP包通过IP的封装之后传递。

它的作用主要为:

1、用来检测网络的连通情况和分析网络速度

2、根据域名得到服务器IP

3、根据ping返回的TTL值来判断对方所使用的操作系统及数据包经过路由器数量。

常用参数

[root@localhost ~]# ping

Usage: ping [-aAbBdDfhLnOqrRUvV64] [-c count] [-i interval] [-I interface]

[-m mark] [-M pmtudisc_option] [-l preload] [-p pattern] [-Q tos]

[-s packetsize] [-S sndbuf] [-t ttl] [-T timestamp_option]

[-w deadline] [-W timeout] [hop1 …] destination

Usage: ping -6 [-aAbBdDfhLnOqrRUvV] [-c count] [-i interval] [-I interface]

[-l preload] [-m mark] [-M pmtudisc_option]

[-N nodeinfo_option] [-p pattern] [-Q tclass] [-s packetsize]

[-S sndbuf] [-t ttl] [-T timestamp_option] [-w deadline]

[-W timeout] destination

-c 设置完成要求回应的次数。

-f 极限检测。

-i 指定收发信息的间隔时间。

-I 使用指定的网络接口送出数据包。

-l 设置在送出要求信息之前,先行发出的数据包。

-p 设置填满数据包的范本样式。

-q 不显示指令执行过程,开头和结尾的相关信息除外。

-R 记录路由过程。

-s 设置数据包的大小。

-t 设置存活数值TTL的大小。

-v 详细显示指令的执行过程。

-w deadline 指定一个以秒为单位的退出时间,不管ping退出之前发送或接收了多少数据包。

示例

1.检测与主机是否连通(ping ip)

[root@localhost ~]# ping 172.17.0.3

PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.

64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.033 ms

64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.035 ms

64 bytes from 172.17.0.3: icmp_seq=3 ttl=64 time=0.040 ms

64 bytes from 172.17.0.3: icmp_seq=4 ttl=64 time=0.039 ms

^C

— 172.17.0.3 ping statistics —

4 packets transmitted, 4 received, 0% packet loss, time 2999ms

rtt min/avg/max/mdev = 0.033/0.036/0.040/0.007 ms

Linux中需要手动终止命令ctrl+c

也可以使用-c 来指定次数

[root@localhost ~]# ping -c 3 172.17.0.3

PING 172.17.0.3 (172.17.0.3) 56(84) bytes of data.

64 bytes from 172.17.0.3: icmp_seq=1 ttl=64 time=0.031 ms

64 bytes from 172.17.0.3: icmp_seq=2 ttl=64 time=0.037 ms

64 bytes from 172.17.0.3: icmp_seq=3 ttl=64 time=0.033 ms

— 172.17.0.3 ping statistics —

3 packets transmitted, 3 received, 0% packet loss, time 1999ms

rtt min/avg/max/mdev = 0.031/0.033/0.037/0.007 ms

bytes值: 数据包大小,也就是字节。

time值: 响应时间,这个时间越小,说明你连接这个地址速度越快。

TTL值: Time To Live,表示DNS记录在DNS服务器上存在的时间,它是IP协议包的一个值,告诉路由器该数据包何时需要被丢弃。

可以通过Ping返回的TTL值大小,粗略地判断目标系统类型是Windows系列还是UNIX/Linux系列。

默认情况下,Linux系统的TTL值为64或255,WindowsNT/2000/XP系统的TTL值为128,Windows98系统的TTL值为32,UNIX主机的TTL值为255。

因此一般TTL值:

100~130ms之间,Windows系统 ;

240~255ms之间,UNIX/Linux系统。

在最后一行我们看到一个陌生的指标** mdev (Mean Deviation) **

表示 ICMP 包的RTT偏离平均值的程度,主要用来衡量网速的稳定性,mdev值越大说明网络越不稳定。

2.ping域名,获取ip

PING www.a.shifen.com (180.101.49.12) 56(84) bytes of data.

64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=1 ttl=53 time=15.0 ms

64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=2 ttl=53 time=15.1 ms

64 bytes from 180.101.49.12 (180.101.49.12): icmp_seq=3 ttl=53 time=14.7 ms

— www.a.shifen.com ping statistics —

3 packets transmitted, 3 received, 0% packet loss, time 2002ms

rtt min/avg/max/mdev = 14.777/14.966/15.122/0.200 ms

224e653c22eb2480cb633967dd29d558.png

参数使用

-t 指定ttl

TTL是 Time To Live的缩写,该字段指定IP包被路由器丢弃之前允许通过的最大网段数量。

[root@localhost ~]# ping  -t 255 baidu.com

PING baidu.com (220.181.38.148) 56(84) bytes of data.

64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=1 ttl=52 time=26.5 ms

64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=2 ttl=52 time=26.5 ms

64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=3 ttl=52 time=26.4 ms

64 bytes from 220.181.38.148 (220.181.38.148): icmp_seq=4 ttl=52 time=26.7 ms

^C

— baidu.com ping statistics —

4 packets transmitted, 4 received, 0% packet loss, time 3004ms

rtt min/avg/max/mdev = 26.488/26.566/26.740/0.153 ms

-i  指定间隔时间

每2秒ping下百度

[root@localhost ~]# ping  -i 2  baidu.com

PING baidu.com (39.156.69.79) 56(84) bytes of data.

64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=50 time=38.8 ms

64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=50 time=38.8 ms

64 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=3 ttl=50 time=65.8 ms

^C

— baidu.com ping statistics —

3 packets transmitted, 3 received, 0% packet loss, time 4003ms

rtt min/avg/max/mdev = 38.832/47.842/65.833/12.721 ms

-f 极限检测

一下子ping三次

[root@localhost ~]# ping -f  -c 3  220.181.38.148

PING 220.181.38.148 (220.181.38.148) 56(84) bytes of data.

— 220.181.38.148 ping statistics —

3 packets transmitted, 3 received, 0% packet loss, time 38ms

rtt min/avg/max/mdev = 28.496/28.519/28.538/0.195 ms, pipe 2, ipg/ewma 19.064/28.531 ms

-s 设置发送包的大小

默认情况下,ping命令是以64字节大小的数据包来测试网络连通性的

可以用-s 参数修改字节大小

[root@localhost ~]# ping -s 500  220.181.38.148

PING 220.181.38.148 (220.181.38.148) 500(528) bytes of data.

508 bytes from 220.181.38.148: icmp_seq=1 ttl=52 time=26.9 ms

508 bytes from 220.181.38.148: icmp_seq=2 ttl=52 time=26.9 ms

508 bytes from 220.181.38.148: icmp_seq=3 ttl=52 time=26.8 ms

508 bytes from 220.181.38.148: icmp_seq=4 ttl=52 time=27.0 ms

508 bytes from 220.181.38.148: icmp_seq=5 ttl=52 time=26.8 ms

多参数的使用

-i 2 发送周期为 2秒 -s 设置发送包的大小 128  -t 设置TTL值为 255

[root@localhost ~]# ping -i 2 -s 128  -t 255 baidu.com

PING baidu.com (39.156.69.79) 128(156) bytes of data.

136 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=1 ttl=50 time=39.0 ms

136 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=2 ttl=50 time=39.1 ms

136 bytes from 39.156.69.79 (39.156.69.79): icmp_seq=3 ttl=50 time=38.8 ms

^C

— baidu.com ping statistics —

3 packets transmitted, 3 received, 0% packet loss, time 4002ms

rtt min/avg/max/mdev = 38.853/39.009/39.109/0.254 ms

小技巧

判断整个网段所有ip存活情况

利用脚本,获取整个网段ip存活情况

[root@localhost ~]# cat ping.sh

for i in {1…254};

do

ip=192.168.54.$i

ping -c 1 -w 1 -W 1 $ip >/dev/null 2>&1

if [ ? = 0 ] ; t h e n   e c h o " ? = 0 ];then  echo "?=0];thenecho"ip [yes]"

else

echo “$ip [no]”

fi

done

最小情况是1s,那么整个网段大概就要四分钟

这只是最简单的脚本,可以自己去修改

可以利用ping去大致判断下网络情况

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值