ping命令的使用
ping是一個(gè)很常用的小工具,它主要用于確定網(wǎng)絡(luò)的連通性問題。使用ping命令后,常見的出錯(cuò)信息通常分為3種,下面是學(xué)習(xí)啦小編整理的一些關(guān)于ping命令的使用的相關(guān)資料,供您參考。
ping命令的使用
1、Unknown host:不知名主機(jī)這種出錯(cuò)信息的意思是,該遠(yuǎn)程主機(jī)的名字不能被域名服務(wù)器(DNS)轉(zhuǎn)換成IP地址。
故障原因可能是域名服務(wù)器有故障,或者其名字不正確,或者網(wǎng)絡(luò)管理員的系統(tǒng)與遠(yuǎn)程主機(jī)之間的通信線路有故障。
2、Noanswer:無響應(yīng)這種故障說明本地系統(tǒng)有一條通向中心主機(jī)的路由,但卻接收不到它發(fā)給該中心主機(jī)的任何信息。故障原因可能是下列之一:中心主機(jī)沒有工作;本地或中心主機(jī)網(wǎng)絡(luò)配置不正確:本地或中心的路由器沒有;通信線路有故障;中心主機(jī)存在路由選擇問題。 3、Request timbd out:超時(shí)工作站與中心主機(jī)的連接超時(shí),數(shù)據(jù)包全部丟失of原因:可能是到路由器的連接出現(xiàn)問題,或路由器不能通過,也可能是中心主機(jī)已經(jīng)關(guān)機(jī)或死機(jī)。
如何用ping命令查找無法上網(wǎng)的原因?
1.Ping命令的語法格式
有必要先給不了解Ping命令的人介紹一卜Ping命令的具體語法格式:ping目的地址[參數(shù)1J[參數(shù)2]……
其中目的地址是指被測(cè)試計(jì)算機(jī)的IP地址或域名。主要參數(shù)有:
a:解析主機(jī)地址。
n:數(shù)據(jù):發(fā)出的測(cè)試包的個(gè)數(shù),缺省值為4。
l:數(shù)值:所發(fā)送緩沖區(qū)的大小。
t:繼續(xù)執(zhí)行Ping命令,直到用戶按Ctrl/C終上。
有關(guān)hng的其他參數(shù),可通過在MS-DOS提示符—卜運(yùn)行Ping或Ping—?命令來查看。
2.hng命令的應(yīng)用技巧
用Ping::[:具檢查網(wǎng)絡(luò)服務(wù)器和任意一臺(tái)客戶端上TCP/IP協(xié)議的:]二作情況時(shí),只要在網(wǎng)絡(luò)中其他任何一臺(tái)計(jì)算機(jī)上Ping
該計(jì)算機(jī)的IP地址即可。例如要檢查網(wǎng)絡(luò)文件服務(wù)器192.192.225.225HPQW上的TCP/IP協(xié)議二[:作是否正常,只要在
開始菜單下的“運(yùn)行”子項(xiàng)中鍵入Ping 192.192.225.225就可以了。如果HPQW的TCP/IP協(xié)議:[:作正常,即會(huì)以DOS
屏幕方式顯示如下所示的信息
Pinging 192.192.225.225 with 32 byteS of dara:
Reply from 192.192.225,225:bytes=32 time=lms TTL二128
Reply from 192.192,225.225:bytes=32 time<1mS TTL=128
Reply from 192.192.225.225:byteS’32 timeReply from 192.192.225.225:byteS‘32 timePing StatiStiCe for 192.192.225.225:
PacketS:Sent二4,ReceiVed二4,LOSt二0(0%lOSS)
Approximate round trip timeS in milli-secondS:
Minimum=Oms,Maximum=1mS,Average=OmS
以上返回了4個(gè)測(cè)試數(shù)據(jù)包,其中bytes=32表示測(cè)試中發(fā)送的數(shù)據(jù)包大小是32個(gè)字節(jié),“me<10ms表示與對(duì)方主機(jī)
往返一次所用的時(shí)間小于10毫秒,TTL=128表示當(dāng)前測(cè)試使用的TTL(Time to Live)值為128(系統(tǒng)默認(rèn)值)。
如果網(wǎng)絡(luò)有問題,則返回如下所示的響應(yīng)失敗信息:
Pinging 192.192,225.225 with 32 bytes of data
RequeSt timed out.
RequeSt timed out.
RequeSt timed OUt.
RequeSt timed out.
Ping StatiStiCe for 192.192.225,225:
PacketS:Sent=4,ReceiVed二0,LOSt\二4(100%lOSS)
Minimum‘0ms,Maximum=OmS,Average’0mS
網(wǎng)絡(luò)故障:出現(xiàn)第二種情況時(shí),建議從以上幾個(gè)方面來著手排查:一是看被測(cè)試計(jì)算機(jī)是否已安裝了TCP/IP協(xié)議: 二是檢查一下被測(cè)試計(jì)算機(jī)的網(wǎng)卡安裝是否正確且是否已經(jīng)連通:三是看被測(cè)試計(jì)算機(jī)的TCP/IP協(xié)議是否與網(wǎng)F 有效的綁定(具體方法是通過選擇“開始一設(shè)置一控制面板一網(wǎng)絡(luò)”來查看):如果通過以上幾個(gè)步驟的檢查還沒有發(fā)現(xiàn)問題的癥結(jié),建議重新安裝并設(shè)置一,‘廠TCP/”協(xié)議,如果是TCP/IP協(xié)議的問題,這時(shí)絕對(duì)可以徹底解決。
按照上述方法,我們還可以用Ping命令來檢查任意一臺(tái)客戶湍計(jì)算機(jī)上TCP/IP的工作情況。例如我們要檢查網(wǎng)絡(luò)任一客戶端“機(jī)房0廠上的TCP/IP協(xié)議的配置和工作情況,可直接在該臺(tái)機(jī)器上Ping本機(jī)的IP地址,若返回成功的信息,說明IP地虹LB己置無誤,若失敗則應(yīng)檢查IP地址的配置??赏ㄟ^以下步驟進(jìn)行:首先先檢查一·卜整個(gè)網(wǎng)絡(luò),重點(diǎn)看一下該IP地址是否正在被其他用戶使用,然后再看一下該工作站是否已正確連入網(wǎng)絡(luò)(很多情況下用戶沒有登陸網(wǎng)絡(luò)也會(huì)出現(xiàn)此種情況,這可是低級(jí)錯(cuò)誤啊)。最后檢查網(wǎng)—E的I/0地址lIRQ值和DMA值,這些值是否與其他設(shè)備發(fā)生了沖突。其中最后一項(xiàng)的檢查非常重要,也常被許多用戶所忽視,即使是Ping成功后也要進(jìn)行此項(xiàng)的檢查。因?yàn)楫?dāng)Ping 本機(jī)的IP地址成功后,僅表明本機(jī)的IP地址配置沒有問題,但并不能說明網(wǎng)卡的配置完全正確。這時(shí)雖然在本機(jī)的“網(wǎng)上鄰居”中能夠看到本機(jī)的計(jì)算機(jī)名,可就是無法與其他的用戶連通,不知問題出在何處,其實(shí)問題往往就出在網(wǎng)卡上。
簡(jiǎn)單來說,TTL全程Time to Live,意思就是生存周期。
首先要說明ping命令是使用的網(wǎng)絡(luò)層協(xié)議ICMP,所以TTL指的是一個(gè)網(wǎng)絡(luò)層的網(wǎng)絡(luò)數(shù)據(jù)包(package)的生存周期,這句話不懂的先回去復(fù)習(xí)OSI7層協(xié)議去。
第一個(gè)問題,為什么要有生存周期這個(gè)概念。
很顯然,一個(gè)package從一臺(tái)機(jī)器到另一臺(tái)機(jī)器中間需要經(jīng)過很長(zhǎng)的路徑,顯然這個(gè)路徑不是單一的,是很復(fù)雜的,并且很可能存在環(huán)路。如果一個(gè)數(shù)據(jù)包在傳輸過程中進(jìn)入了環(huán)路,如果不終止它的話,它會(huì)一直循環(huán)下去,如果很多個(gè)數(shù)據(jù)包都這樣循環(huán)的話,那對(duì)于網(wǎng)絡(luò)來說這就是災(zāi)難了。所以需要在包中設(shè)置這樣一個(gè)值,包在每經(jīng)過一個(gè)節(jié)點(diǎn),將這個(gè)值減1,反復(fù)這樣操作,最終可能造成2個(gè)結(jié)果:包在這個(gè)值還為正數(shù)的時(shí)候到達(dá)了目的地,或者是在經(jīng)過一定數(shù)量的節(jié)點(diǎn)后,這個(gè)值減為了0。前者代表完成了一次正常的傳輸,后者代表包可能選擇了一條非常長(zhǎng)的路徑甚至是進(jìn)入了環(huán)路,這顯然不是我們期望的,所以在這個(gè)值為0的時(shí)候,網(wǎng)絡(luò)設(shè)備將不會(huì)再傳遞這個(gè)包而是直接將他拋棄,并發(fā)送一個(gè)通知給包的源地址,說這個(gè)包已死。
其實(shí)TTL值這個(gè)東西本身并代表不了什么,對(duì)于使用者來說,關(guān)心的問題應(yīng)該是包是否到達(dá)了目的地而不是經(jīng)過了幾個(gè)節(jié)點(diǎn)后到達(dá)。但是TTL值還是可以得到有意思的信息的。
每個(gè)操作系統(tǒng)對(duì)TTL值得定義都不同,這個(gè)值甚至可以通過修改某些系統(tǒng)的網(wǎng)絡(luò)參數(shù)來修改,例如Win2000默認(rèn)為128,通過注冊(cè)表也可以修改。而Linux大多定義為64。不過一般來說,很少有人會(huì)去修改自己機(jī)器的這個(gè)值的,這就給了我們機(jī)會(huì)可以通過ping的回顯TTL來大體判斷一臺(tái)機(jī)器是什么操作系統(tǒng)。
以我公司2臺(tái)機(jī)器為例
看如下命令
D:Documents and Settingshx>ping 61.152.93.131 Pinging 61.152.93.131 with 32 bytes of data: Reply from 61.152.93.131: bytes=32 time=21ms TTL=118 Reply from 61.152.93.131: bytes=32 time=19ms TTL=118 Reply from 61.152.93.131: bytes=32 time=18ms TTL=118 Reply from 61.152.93.131: bytes=32 time=22ms TTL=118 Ping statistics for 61.152.93.131: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss Approximate round trip times in milli-seconds: Minimum = 18ms, Maximum = 22ms, Average = 20ms D:Documents and Settingshx>ping 61.152.104.40 Pinging 61.152.104.40 with 32 bytes of data: Reply from 61.152.104.40: bytes=32 time=28ms TTL=54 Reply from 61.152.104.40: bytes=32 time=18ms TTL=54 Reply from 61.152.104.40: bytes=32 time=18ms TTL=54 Reply from 61.152.104.40: bytes=32 time=13ms TTL=54 Ping statistics for 61.152.104.40: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss Approximate round trip times in milli-seconds: Minimum = 13ms, Maximum = 28ms, Average = 19ms |
第一臺(tái)TTL為118,則基本可以判斷這是一臺(tái)Windows機(jī)器,從我的機(jī)器到這臺(tái)機(jī)器經(jīng)過了10個(gè)節(jié)點(diǎn),因?yàn)?28-118=10。而第二臺(tái)應(yīng)該是臺(tái)Linux,理由一樣64-54=10。
了解了上面的東西,可能有人會(huì)有一些疑問,例如以下:
1,不是說包可能走很多路徑嗎,為什么我看到的4個(gè)包TTL都是一樣的,沒有出現(xiàn)不同?
這是由于包經(jīng)過的路徑是經(jīng)過了一些最優(yōu)選擇算法來定下來的,在網(wǎng)絡(luò)拓?fù)浞€(wěn)定一段時(shí)間后,包的路由路徑也會(huì)相對(duì)穩(wěn)定在一個(gè)最短路徑上。具體怎么算出來的要去研究路由算法了,不在討論之列。
2,對(duì)于上面例子第二臺(tái)機(jī)器,為什么不認(rèn)為它是經(jīng)過了74個(gè)節(jié)點(diǎn)的Windows機(jī)器?因?yàn)?28-74=54。
對(duì)于這個(gè)問題,我們要引入另外一個(gè)很好的ICMP協(xié)議工具。不過首先要聲明的是,一個(gè)包經(jīng)過74個(gè)節(jié)點(diǎn)這個(gè)有些恐怖,這樣的路徑還是不用為好。
要介紹的這個(gè)工具是tracert(*nix下為traceroute),讓我們來看對(duì)上面的第二臺(tái)機(jī)器用這個(gè)命令的結(jié)果
D:Documents and Settingshx>tracert 61.152.104.40 Tracing route to 61.152.104.40 over a maximum of 30 hops 1 13 ms 16 ms 9 ms 10.120.32.1 2 9 ms 9 ms 11 ms 219.233.244.105 3 12 ms 10 ms 10 ms 219.233.238.173 4 15 ms 15 ms 17 ms 219.233.238.13 5 14 ms 19 ms 19 ms 202.96.222.73 6 14 ms 17 ms 13 ms 202.96.222.121 7 14 ms 15 ms 14 ms 61.152.81.86 8 15 ms 14 ms 13 ms 61.152.87.162 9 16 ms 16 ms 28 ms 61.152.99.26 10 12 ms 13 ms 18 ms 61.152.99.94 11 14 ms 18 ms 16 ms 61.152.104.40 Trace complete. |
從這個(gè)命令的結(jié)果能夠看到從我的機(jī)器到服務(wù)器所走的路由,確實(shí)是11個(gè)節(jié)點(diǎn)(上面說10個(gè)好像是我犯了忘了算0的錯(cuò)誤了,應(yīng)該是64-54+1,嘿嘿),而不是128的TTL經(jīng)過了70多個(gè)節(jié)點(diǎn)。
既然已經(jīng)說到這里了,不妨順便說說關(guān)于這兩個(gè)ICMP命令的高級(jí)一點(diǎn)的東西。
首先是ping命令,其實(shí)ping有這樣一個(gè)參數(shù),可以無視操作系統(tǒng)默認(rèn)TTL值而使用自己定義的值來發(fā)送ICMP Request包。
例如還是用那臺(tái)Linux機(jī)器,用以下命令:
D:Documents and Settingshx>ping 61.152.104.40 -i 11 Pinging 61.152.104.40 with 32 bytes of data: Reply from 61.152.104.40: bytes=32 time=10ms TTL=54 Reply from 61.152.104.40: bytes=32 time=13ms TTL=54 Reply from 61.152.104.40: bytes=32 time=10ms TTL=54 Reply from 61.152.104.40: bytes=32 time=13ms TTL=54 Ping statistics for 61.152.104.40: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 10ms, Maximum = 13ms, Average = 11ms D:Documents and Settingshx> |
這個(gè)命令我們定義了發(fā)包的TTL為11,而前面我們知道,我到這臺(tái)服務(wù)器是要經(jīng)過11個(gè)節(jié)點(diǎn)的,所以這個(gè)輸出和以前沒什么不同?,F(xiàn)在再用這個(gè)試試看:
D:Documents and Settingshx>ping 61.152.104.40 -i 10 Pinging 61.152.104.40 with 32 bytes of data: Reply from 61.152.99.94: TTL expired in transit. Reply from 61.152.99.94: TTL expired in transit. Reply from 61.152.99.94: TTL expired in transit. Reply from 61.152.99.94: TTL expired in transit. Ping statistics for 61.152.104.40: Packets: Sent = 4, Received = 4, Lost = 0 (0% loss), Approximate round trip times in milli-seconds: Minimum = 0ms, Maximum = 0ms, Average = 0ms D:Documents and Settingshx> |
可以看到,結(jié)果不一樣了,我定義了TTL為10來發(fā)包,結(jié)果是TTL expired in transit.就是說在到達(dá)服務(wù)器之前這個(gè)包的生命周期就結(jié)束了。注意看這句話前面的ip,這個(gè)ip恰好是我們前面tracert結(jié)果到服務(wù)器之前的最后1個(gè)ip,包的TTL就是在這里減少到0了,根據(jù)我們前面的討論,當(dāng)TTL減為0時(shí)設(shè)備會(huì)丟棄包并發(fā)送一個(gè)TTL過期的ICMP反饋給源地址,這里的結(jié)果就是最好的證明。
通過這里再次又證明了從我機(jī)器到服務(wù)器是經(jīng)過了11個(gè)節(jié)點(diǎn)而不是70多個(gè),呵呵。
最后再鞏固一下知識(shí),有人可能覺得tracer這個(gè)命令很神奇,可以發(fā)現(xiàn)一個(gè)包所經(jīng)過的路由路徑。其實(shí)這個(gè)命令的原理就在我們上面的討論中。
想象一下,如果我給目的服務(wù)器發(fā)送一個(gè)TTL為1的包,結(jié)果會(huì)怎樣?
根據(jù)前面的討論,在包港出發(fā)的第一個(gè)節(jié)點(diǎn),TTL就會(huì)減少為0,這時(shí)這個(gè)節(jié)點(diǎn)就會(huì)回應(yīng)TTL失效的反饋,這個(gè)回應(yīng)包含了設(shè)備本身的ip地址,這樣我們就得到了路由路徑的第一個(gè)節(jié)點(diǎn)的地址。
因此,我們繼續(xù)發(fā)送TTL=2的包,也就受到第二個(gè)節(jié)點(diǎn)的TTL失效回應(yīng),依次類推,我們一個(gè)一個(gè)的發(fā)現(xiàn),當(dāng)最終返回的結(jié)果不是TTL失效而是ICMP Response的時(shí)候,我們的tracert也就結(jié)束了,就是這么簡(jiǎn)單。
順便補(bǔ)一句ping命令還有個(gè)-n的參數(shù)指定要發(fā)包的數(shù)量,指定了這個(gè)數(shù)字就會(huì)按照你的要求來發(fā)包了而不是默認(rèn)的4個(gè)包。如果使用-t參數(shù)的話,命令會(huì)一直發(fā)包直到你強(qiáng)行中止它。
ping命令的使用的相關(guān)文章:
2.ping命令怎么測(cè)試網(wǎng)絡(luò)連通性