ping是一个很常用的小工具.docx
- 文档编号:30559804
- 上传时间:2023-08-16
- 格式:DOCX
- 页数:17
- 大小:33.47KB
ping是一个很常用的小工具.docx
《ping是一个很常用的小工具.docx》由会员分享,可在线阅读,更多相关《ping是一个很常用的小工具.docx(17页珍藏版)》请在冰豆网上搜索。
ping是一个很常用的小工具
ping是一个很常用的小工具,它主要用于确定网络的连通性问题。
使用ping命令后,常见的出错信息通常分为3种:
1、Unknownhost:
不知名主机这种出错信息的意思是,该远程主机的名字不能被域名服务器(DNS)转换成IP地址。
故障原因可能是域名服务器有故障,或者其名字不正确,或者网络管理员的系统与远程主机之间的通信线路有故障。
飞
2、Noanswer:
无响应这种故障说明本地系统有一条通向中心主机的路由,但却接收不到它发给该中心主机的任何信·
息。
故障原因可能是下列之一:
中心主机没有工作;本地或中心主机网络配置不正确:
本地或中心的路由器没有;1:
:
作:
通信线路有故障;中心主机存在路由选择问题。
1
3、Requesttimbdout:
超时工作站与中心主机的连接超时,数据包全部丢失of原因:
可能是到路由器的连接出现
问题,或路由器不能通过,也可能是中心主机已经关机或死机。
如何用ping命令查找无法上网的原因?
1.Ping命令的语法格式:
有必要先给不了解Ping命令的人介绍一卜Ping命令的具体语法格式:
ping目的地址[参数1J[参数2]……
其中目的地址是指被测试计算机的IP地址或域名。
主要参数有:
a:
解析主机地址。
n:
数据:
发出的测试包的个数,缺省值为4。
l:
数值:
所发送缓冲区的大小。
t:
继续执行Ping命令,直到用户按Ctrl/C终上。
有关hng的其他参数,可通过在MS-DOS提示符—卜运行Ping或Ping—?
命令来查看。
2.hng命令的应用技巧:
用Ping:
:
[:
具检查网络服务器和任意一台客户端上TCP/IP协议的:
]二作情况时,只要在网络中其他任何一台计算机上Ping
该计算机的IP地址即可。
例如要检查网络文件服务器192.192.225.225HPQW上的TCP/IP协议二[:
作是否正常,只要在
开始菜单下的“运行”子项中键入Ping192.192.225.225就可以了。
如果HPQW的TCP/IP协议:
[:
作正常,即会以DOS
屏幕方式显示如下所示的信息:
Pinging192.192.225.225with32byteSofdara:
Replyfrom192.192.225,225:
bytes=32time=lmsTTL二128
Replyfrom192.192,225.225:
bytes=32time<1mSTTL=128
Replyfrom192.192.225.225:
byteS’32timeReplyfrom192.192.225.225:
byteS‘32timePingStatiStiCefor192.192.225.225:
PacketS:
Sent二4,ReceiVed二4,LOSt二0(0%lOSS)
ApproximateroundtriptimeSinmilli-secondS:
Minimum=Oms,Maximum=1mS,Average=OmS
以上返回了4个测试数据包,其中bytes=32表示测试中发送的数据包大小是32个字节,“me<10ms表示与对方主机
往返一次所用的时间小于10毫秒,TTL=128表示当前测试使用的TTL(TimetoLive)值为128(系统默认值)。
如果网络有问题,则返回如下所示的响应失败信息:
Pinging192.192,225.225with32bytesofdata
RequeSttimedout.
RequeSttimedout.
RequeSttimedOUt.
RequeSttimedout.
PingStatiStiCefor192.192.225,225:
PacketS:
Sent=4,ReceiVed二0,LOSt\二4(100%lOSS)
Minimum‘0ms,Maximum=OmS,Average’0mS
网络故障:
出现第二种情况时,建议从以上几个方面来着手排查:
一是看被测试计算机是否已安装了TCP/IP协议:
二是检查一下被测试计算机的网卡安装是否正确且是否已经连通:
三是看被测试计算机的TCP/IP协议是否与网F
有效的绑定(具体方法是通过选择“开始一设置一控制面板一网络”来查看):
如果通过以上几个步骤的检查还没有
发现问题的症结,建议重新安装并设置一,‘厂TCP/”协议,如果是TCP/IP协议的问题,这时绝对可以彻底解决。
按照上述方法,我们还可以用Ping命令来检查任意一台客户湍计算机上TCP/IP的工作情况。
例如我们要检查网络任
一客户端“机房0厂上的TCP/IP协议的配置和工作情况,可直接在该台机器上Ping本机的IP地址,若返回成功的信
息,说明IP地虹LB己置无误,若失败则应检查IP地址的配置。
可通过以下步骤进行:
首先先检查一·卜整个网络,重点
看一下该IP地址是否正在被其他用户使用,然后再看一下该工作站是否已正确连入网络(很多情况下用户没有登陆网
络也会出现此种情况,这可是低级错误啊)。
最后检查网—E的I/0地址lIRQ值和DMA值,这些值是否与其他设备发生
了冲突。
其中最后一项的检查非常重要,也常被许多用户所忽视,即使是Ping成功后也要进行此项的检查。
因为当Ping
本机的IP地址成功后,仅表明本机的IP地址配置没有问题,但并不能说明网卡的配置完全正确。
这时虽然在本机的
“网上邻居”中能够看到本机的计算机名,可就是无法与其他的用户连通,不知问题出在何处,其实问题往往就出在
网卡上。
简单来说,TTL全程TimetoLive,意思就是生存周期。
首先要说明ping命令是使用的网络层协议ICMP,所以TTL指的是一个网络层的网络数据包(package)的生存周期,这句话不懂的先回去复习OSI7层协议去。
第一个问题,为什么要有生存周期这个概念。
很显然,一个package从一台机器到另一台机器中间需要经过很长的路径,显然这个路径不是单一的,是很复杂的,并且很可能存在环路。
如果一个数据包在传输过程中进入了环路,如果不终止它的话,它会一直循环下去,如果很多个数据包都这样循环的话,那对于网络来说这就是灾难了。
所以需要在包中设置这样一个值,包在每经过一个节点,将这个值减1,反复这样操作,最终可能造成2个结果:
包在这个值还为正数的时候到达了目的地,或者是在经过一定数量的节点后,这个值减为了0。
前者代表完成了一次正常的传输,后者代表包可能选择了一条非常长的路径甚至是进入了环路,这显然不是我们期望的,所以在这个值为0的时候,网络设备将不会再传递这个包而是直接将他抛弃,并发送一个通知给包的源地址,说这个包已死。
其实TTL值这个东西本身并代表不了什么,对于使用者来说,关心的问题应该是包是否到达了目的地而不是经过了几个节点后到达。
但是TTL值还是可以得到有意思的信息的。
每个操作系统对TTL值得定义都不同,这个值甚至可以通过修改某些系统的网络参数来修改,例如Win2000默认为128,通过注册表也可以修改。
而Linux大多定义为64。
不过一般来说,很少有人会去修改自己机器的这个值的,这就给了我们机会可以通过ping的回显TTL来大体判断一台机器是什么操作系统。
以我公司2台机器为例
看如下命令
D:
DocumentsandSettingshx>ping61.152.93.131
Pinging61.152.93.131with32bytesofdata:
Replyfrom61.152.93.131:
bytes=32time=21msTTL=118
Replyfrom61.152.93.131:
bytes=32time=19msTTL=118
Replyfrom61.152.93.131:
bytes=32time=18msTTL=118
Replyfrom61.152.93.131:
bytes=32time=22msTTL=118
Pingstatisticsfor61.152.93.131:
Packets:
Sent=4,Received=4,Lost=0(0%loss
Approximateroundtriptimesinmilli-seconds:
Minimum=18ms,Maximum=22ms,Average=20ms
D:
DocumentsandSettingshx>ping61.152.104.40
Pinging61.152.104.40with32bytesofdata:
Replyfrom61.152.104.40:
bytes=32time=28msTTL=54
Replyfrom61.152.104.40:
bytes=32time=18msTTL=54
Replyfrom61.152.104.40:
bytes=32time=18msTTL=54
Replyfrom61.152.104.40:
bytes=32time=13msTTL=54
Pingstatisticsfor61.152.104.40:
Packets:
Sent=4,Received=4,Lost=0(0%loss
Approximateroundtriptimesinmilli-seconds:
Minimum=13ms,Maximum=28ms,Average=19ms
第一台TTL为118,则基本可以判断这是一台Windows机器,从我的机器到这台机器经过了10个节点,因为128-118=10。
而第二台应该是台Linux,理由一样64-54=10。
了解了上面的东西,可能有人会有一些疑问,例如以下:
1,不是说包可能走很多路径吗,为什么我看到的4个包TTL都是一样的,没有出现不同?
这是由于包经过的路径是经过了一些最优选择算法来定下来的,在网络拓扑稳定一段时间后,包的路由路径也会相对稳定在一个最短路径上。
具体怎么算出来的要去研究路由算法了,不在讨论之列。
2,对于上面例子第二台机器,为什么不认为它是经过了74个节点的Windows机器?
因为128-74=54。
对于这个问题,我们要引入另外一个很好的ICMP协议工具。
不过首先要声明的是,一个包经过74个节点这个有些恐怖,这样的路径还是不用为好。
要介绍的这个工具是tracert(*nix下为traceroute),让我们来看对上面的第二台机器用这个命令的结果
D:
DocumentsandSettingshx>tracert61.152.104.40
Tracingrouteto61.152.104.40overamaximumof30hops
113ms16ms9ms10.120.32.1
29ms9ms11ms219.233.244.105
312ms10ms10ms219.233.238.173
415ms15ms17ms219.233.238.13
514ms19ms19ms202.96.222.73
614ms17ms13ms202.96.222.121
714ms15ms14ms61.152.81.86
815ms14ms13ms61.152.87.162
916ms16ms28ms61.152.99.26
1012ms13ms18ms61.152.99.94
1114ms18ms16ms61.152.104.40
Tracecomplete.
从这个命令的结果能够看到从我的机器到服务器所走的路由,确实是11个节点(上面说10个好像是我犯了忘了算0的错误了,应该是64-54+1,嘿嘿),而不是128的TTL经过了70多个节点。
既然已经说到这里了,不妨顺便说说关于这两个ICMP命令的高级一点的东西。
首先是ping命令,其实ping有这样一个参数,可以无视操作系统默认TTL值而使用自己定义的值来发送ICMPRequest包。
例如还是用那台Linux机器,用以下命令:
D:
DocumentsandSettingshx>ping61.152.104.40-i11
Pinging61.152.104.40with32bytesofdata:
Replyfrom61.152.104.40:
bytes=32time=10msTTL=54
Replyfrom61.152.104.40:
bytes=32time=13msTTL=54
Replyfrom61.152.104.40:
bytes=32time=10msTTL=54
Replyfrom61.152.104.40:
bytes=32time=13msTTL=54
Pingstatisticsfor61.152.104.40:
Packets:
Sent=4,Received=4,Lost=0(0%loss),
Approximateroundtriptimesinmilli-seconds:
Minimum=10ms,Maximum=13ms,Average=11ms
D:
DocumentsandSettingshx>
这个命令我们定义了发包的TTL为11,而前面我们知道,我到这台服务器是要经过11个节点的,所以这个输出和以前没什么不同。
现在再用这个试试看:
D:
DocumentsandSettingshx>ping61.152.104.40-i10
Pinging61.152.104.40with32bytesofdata:
Replyfrom61.152.99.94:
TTLexpiredintransit.
Replyfrom61.152.99.94:
TTLexpiredintransit.
Replyfrom61.152.99.94:
TTLexpiredintransit.
Replyfrom61.152.99.94:
TTLexpiredintransit.
Pingstatisticsfor61.152.104.40:
Packets:
Sent=4,Received=4,Lost=0(0%loss),
Approximateroundtriptimesinmilli-seconds:
Minimum=0ms,Maximum=0ms,Average=0ms
D:
DocumentsandSettingshx>
可以看到,结果不一样了,我定义了TTL为10来发包,结果是TTLexpiredintransit.就是说在到达服务器之前这个包的生命周期就结束了。
注意看这句话前面的ip,这个ip恰好是我们前面tracert结果到服务器之前的最后1个ip,包的TTL就是在这里减少到0了,根据我们前面的讨论,当TTL减为0时设备会丢弃包并发送一个TTL过期的ICMP反馈给源地址,这里的结果就是最好的证明。
通过这里再次又证明了从我机器到服务器是经过了11个节点而不是70多个,呵呵。
最后再巩固一下知识,有人可能觉得tracer这个命令很神奇,可以发现一个包所经过的路由路径。
其实这个命令的原理就在我们上面的讨论中。
想象一下,如果我给目的服务器发送一个TTL为1的包,结果会怎样?
根据前面的讨论,在包港出发的第一个节点,TTL就会减少为0,这时这个节点就会回应TTL失效的反馈,这个回应包含了设备本身的ip地址,这样我们就得到了路由路径的第一个节点的地址。
因此,我们继续发送TTL=2的包,也就受到第二个节点的TTL失效回应
依次类推,我们一个一个的发现,当最终返回的结果不是TTL失效而是ICMPResponse的时候,我们的tracert也就结束了,就是这么简单。
顺便补一句ping命令还有个-n的参数指定要发包的数量,指定了这个数字就会按照你的要求来发包了而不是默认的4个包。
如果使用-t参数的话,命令会一直发包直到你强行中止它。
WINDOWS中PING命令,这是我从网络中摘录的:
对于Windows下ping命令相信大家已经再熟悉不过了,但是能把ping的功能发挥到最大的人却并不是很多,当然我也并不是说我可以让ping发挥最大的功能,我也只不过经常用ping这个工具,也总结了一些小经验,现在和大家分享一下。
现在我就参照ping命令的帮助说明来给大家说说我使用ping时会用到的技巧,ping只有在安装了TCP/IP协议以后才可以使用:
ping[-t][-a][-ncount][-llength][-f][-ittl][-vtos][-rcount][-scount][[-jcomputer-list]|[-kcomputer-list]][-wtimeout]destination-list
Options:
-tPingthespecifiedhostuntilstopped.Toseestatisticsandcontinue-typeControl-Break;Tostop-typeControl-C.
不停的ping地方主机,直到你按下Control-C。
此功能没有什么特别的技巧,不过可以配合其他参数使用,将在下面提到。
-aResolveaddressestohostnames.
解析计算机NetBios名。
示例:
C:
\>ping-a192.168.1.21
Pinging[192.168.1.21]with32bytesofdata:
Replyfrom192.168.1.21:
bytes=32time<10msTTL=254
Replyfrom192.168.1.21:
bytes=32time<10msTTL=254
Replyfrom192.168.1.21:
bytes=32time<10msTTL=254
Replyfrom192.168.1.21:
bytes=32time<10msTTL=254
Pingstatisticsfor192.168.1.21:
Packets:
Sent=4,Received=4,Lost=0(0%loss),Approximateroundtriptimesinmilli-seconds:
Minimum=0ms,Maximum=0ms,Average=0ms
从上面就可以知道IP为192.168.1.21的计算机NetBios名为。
-ncountNumberofechorequeststosend.
发送count指定的Echo数据包数。
在默认情况下,一般都只发送四个数据包,通过这个命令可以自己定义发送的个数,对衡量网络速度很有帮助,比如我想测试发送50个数据包的返回的平均时间为多少,最快时间为多少,最慢时间为多少就可以通过以下获知:
C:
\>ping-n50202.103.96.68
Pinging202.103.96.68with32bytesofdata:
Replyfrom202.103.96.68:
bytes=32time=50msTTL=241
Replyfrom202.103.96.68:
bytes=32time=50msTTL=241
Replyfrom202.103.96.68:
bytes=32time=50msTTL=241
Requesttimedout.
………………
Replyfrom202.103.96.68:
bytes=32time=50msTTL=241
Replyfrom202.103.96.68:
bytes=32time=50msTTL=241
Pingstatisticsfor202.103.96.68:
Packets:
Sent=50,Received=48,Lost=2(4%loss),Approximateroundtriptimesinmilli-seconds:
Minimum=40ms,Maximum=51ms,Average=46ms
从以上我就可以知道在给202.103.96.68发送50个数据包的过程当中,返回了48个,其中有两个由于未知原因丢失,这48个数据包当中返回速度最快为40ms,最慢为51ms,平均速度为46ms。
-lsizeSendbuffersize.
定义echo数据包大小。
在默认的情况下windows的ping发送的数据包大小为32byt,我们也可以自己定义它的大小,但有一个大小的限制,就是最大只能发送65500byt,也许有人会问为什么要限制到65500byt,因为Windows系列的系统都有一个安全漏洞(也许还包括其他系统)就是当向对方一次发送的数据包大于或等于65532时,对方就很有可能挡机,所以微软公司为了解决这一安全漏洞于是限制了ping的数据包大小。
虽然微软公司已经做了此限制,但这个参数配合其他参数以后危害依然非常强大,比如我们就可以通过配合-t参数来实现一个带有攻击性的命令:
(以下介绍带有危险性,仅用于试验,请勿轻易施于别人机器上,否则后果自负)
C:
\>ping-l65500-t192.168.1.21
Pinging192.168.1.21with65500bytesofdata:
Replyfrom192.168.1.21:
bytes=65500time<10msTTL=254
Replyfrom192.168.1.21:
bytes=65500time<10msTTL=254
………………
这样它就会不停的向192.168.1.21计算机发送大小为65500byt的数据包,如果你只有一台计算机也许没有什么效果,但如果有很多计算机那么就可以使对方完全瘫痪,我曾经就做过这样的试验,当我同时使用10台以上计算机ping一台Win2000Pro系统的计算机时,不到5分钟对方的网络就已经完全瘫痪,网络严重堵塞,HTTP和FTP服务完全停止,由此可见威力非同小可。
-fSetDon'tFragmentflaginpacket.
在数据包中发送“不要分段”标志。
在一般你所发送的数据包都会通过路由分段再发送给对方,加上此参数以后路由就不会再分段处理。
-iTTLTimeToLive.
指定TTL值在对方的系
- 配套讲稿:
如PPT文件的首页显示word图标,表示该PPT已包含配套word讲稿。双击word图标可打开word文档。
- 特殊限制:
部分文档作品中含有的国旗、国徽等图片,仅作为作品整体效果示例展示,禁止商用。设计者仅对作品中独创性部分享有著作权。
- 关 键 词:
- ping 一个 常用 小工
![提示](https://static.bdocx.com/images/bang_tan.gif)