ping命令(做ping探测的总结)
ping命令:
作用:主要用于确定网络的连通性问题。
执行ping指令会使用ICMP传输协议,向目标主机发送ICMP ping请求报文,期待获得目标主机的ICMP ping响应。若远端主机的网络功能没有问题,就会回应该信息,因而得知该主机运作正常。
Linux ping命令:
语法:
ping [-LRUbdfnqrvVaAB] [-c <完成次数>] [-i <间隔秒数>] [-l <前置载入>] [-p <范本样式>] [-s <数据包大小>] [-t <存活数值>] [-w <期限>] [-I <网络界面>] [hop ...] 主机名称或IP地址
参数:
-c<完成次数> 后面接的是执行ping的次数。
-i<间隔秒数> 指定收发信息的间隔时间。
-l<前置载入> 设置在送出要求信息之前,先行发出的数据包。
-p<范本样式> 设置填满数据包的范本样式。
-s<数据包大小> 指定发送的数据字节数,预设值是56,加上8字节的ICMP头,一共是64ICMP数据字节。
-t<存活数值> 设置存活数值TTL的大小,预设是255,每经过一个节点就会少一。
-w <期限> 指定超时时间期限,在此期间内,count数目的包发送时,ping不会停止;
-I<网络界面> 使用指定的网络界面送出数据包。
-b 后面接的是broadcast的ip,用在你需要对整个网域的主机进行ping时。
-q不显示任何传送封包的信息,只显示最后的结果。
-r 忽略普通的Routing Table,直接将数据包送到远端主机上。
-R 记录路由过程。
-M [do|dont] 主要在侦测网络的MTU数值大小,两个常见的项目是:
do: 代表传送一个DF(Don’t Fragment)旗标,让封包不能重新拆包与打包;
don't: 代表不要传送DF旗标,表示封包可以在其他主机上拆包与打包。
结果显示分析:
“……bytes from……”:说明目标主机工作正常,中间的线路也正常。
“Request timed out.”:表示在规定时间内因某种原因没有返回ping命令的应答,这种情况很可能是对方的计算机没有运行,或者中间线路不通致使信息没有到达对方那里。大多数情况下是企业防火墙等阻挡了ping命令中使用的ICMP信息。在这种情况下即便通信对象正在工作,也会有这种结果显示。(echo包顺利到达目的主机,且目的主机也向源主机返回echo-reply包,但是echo-reply包在半路上丢失,无法到达源主机。)
“Destination host unreachable.”:此错误信息表明执行命令的计算机没能将信息发送到对方那里。大多数情况是自己一方的计算机LAN连接线掉线,或者由于IP设置不对,而无法进行正常通信。
“unknown host”: 不知名主机,该远程主机的名字不能被域名服务器DNS转换成IP地址,故障原因可能是域名服务器有故障,或者目标主机的名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。
IP寻址故障诊断:
1. ping 127.0.0.1 检查本机IP栈是否初始化,失败则重装TCP/IP协议;
2. ping 本主机IP 检查网卡NIC功能是否正常;
3. ping 网关 成功则NIC连接到网络,并且网络通信正常;
4. ping 远端主机 成功则表示主机与远端主机可进行IP通信。
测试例子:
[root@fly ~]# ping baidu.com -c 4 -w 5
PING baidu.com (220.181.38.84) 56(84) bytes of data.
64 bytes from 220.181.38.84: icmp_seq=1 ttl=50 time=142 ms
64 bytes from 220.181.38.84: icmp_seq=2 ttl=50 time=142 ms
64 bytes from 220.181.38.84: icmp_seq=3 ttl=50 time=142 ms
64 bytes from 220.181.38.84: icmp_seq=4 ttl=50 time=140 ms
--- baidu.com ping statistics ---
4 packets transmitted, 4 received, 0% packet loss, time 3000ms
rtt min/avg/max/mdev = 140.880/141.834/142.199/0.719 ms
结果分析:表示与目标主机连接成功,其中:
64bytes:表示测试中发送的ICMP数据包的大小是64个字节,这是预设值,在某些特殊场合中,例如要搜索整个网络内最大的MTU时,可以使用-s 2000之类的数值来取代;
icmp_seq = 1:ICMP所侦测进行的次数;
ttl= 50:表示当前测试使用的TTL time to live 值为50,每3经过一个带有MAC的节点时,例如router,bridge时,TTL就会减少一,可以透过-t 150之类的方法来重新设定预设TTL数值;
(ps:如果你的主机与待侦测主机并不在同一个网域内,那么TTL的预设值使用255,如果是同一个网域内,那么TTL预设则使用64。)
time = 142 ms:回应时间,单位有ms及us,一般来说,越小的回应时间,表示两部主机之间的网络连接越良好。
如果你忘记加上-c 4 这样的规定侦测次数,那就可得要使用【ctrl】+c 将他结束掉了!
[root@fly ~]# ping 192.168.99.22 -w 5 -c 4
PING 192.168.99.22 (192.168.99.22) 56(84) bytes of data.
From 192.168.99.2 icmp_seq=2 Destination Host Unreachable
From 192.168.99.2 icmp_seq=3 Destination Host Unreachable
From 192.168.99.2 icmp_seq=4 Destination Host Unreachable
--- 192.168.99.22 ping statistics ---
4 packets transmitted, 0 received, +3 errors, 100% packet loss, time 2999ms
, pipe 3
结果分析:这是因为发送给目标主机的echo包在192.168.99.2上被迫终止,即echo包无法到达目标主机;可能原因:某个路由器192.168.99.2的端口上,禁止来自源主机的数据包通过。
[root@localhost ~]# ping qq.cn
ping: unknown host qq.cn
结果分析:不知名主机,该远程主机的名字不能被域名服务器DNS转换成IP地址,故障原因可能是域名服务器有故障,或者目标主机的名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。