閱讀308 返回首頁    go 小米 go 小米手環


Windows下的命令行工具在網絡故障檢測中的應用

 
Windows下的命令行工具在網絡故障檢測中的應用

很多網絡愛好者都知道,在Windows 2000和Windows 9x的命令提示符下可使用Windows係統自帶的多種命令行網絡故障檢測工具,比如說我們最常用的ping。但大家在具體應用時,可能對這些命令行工具的具體含義,以及命令行後麵可以使用的種種參數還缺乏深入的了解。在本文中,筆者將采用實例分析的方式,對Windows 2000和Windows 9X的命令行工具的使用方法及其重要參數進行介紹。
Windows 2000所包含的命令行網絡故障檢測工具有13個,分別是Ping、PathPing、tracert、nbtstat、netstat、nslookup、 ipconfig、lpq、lpq、route、arp、netsh和shutdown。本文中,一些大家耳熟能詳的工具就隻簡單地做一下介紹,應用比較深一點的我們將采用實例剖析的方式來給大家講解。
1、ping
作用:驗證IP的配置情況並測試IP的連通性。該命令隻有在安裝了下CP/IP協議後才可使用。
主要參數Ping[一t][一a][一r count][-f][-i ttl][一w timeout]遠程計算機的IP地址或主機名(如192.168.0.1或hero)
說明:一t Ping指定的計算機直至中斷。
一a ping目的主機的IP地址,並將IP地址解析成主機名。
一f ping所發送的數據包中加入了“不要分段”的標誌,使數據包不能被網關分段。
一r count Ping目的主機時設立“記錄路由”字段,用來記錄傳出和返回數據包的路由,count的值可在1—9中選擇, 即最多可以記錄9台路由器的IP地址。
一i ttl ping目的主機時指定所發送數據包的“生存時間”,即所發送的數據包經過多長時間後若無響應就被網絡自動拋棄。
一w timeout 默認情況下,在顯示“請求超時”之前,ping等待數據包返回的時間為1000毫秒。若Ping特殊的遠程地址,可用此參數適當延長等待時間。
Ping命令在Windows 9X,Windows 2000, Windows XP下均可使用。
2、pathping
作用:跟蹤數據包到達目標所采用的路由,並顯示路徑中每個路由器的數據包損失的信息。該命令隻有在安裝了TCP/IP協議後才可使用。
主要參數:PathPing[一n][一h][一P][一q][一w]遠程計算機的IP地址或主機名說明:一n 不將IP地址解析成主機名。
一h 指定與目的主機之間需要統計的最大躍點數。躍點就是每一台路由器的IP地址。
一p 指定發送數據包之間等待的毫秒數。
一q 指定在每一個躍點進行多少次查詢以便於統計。
—w 與ping的—w功能類似。
PathPing在Windows 9x中還沒提供,是Windows 2000中新加入的。它結合了Ping和tracert所共有的一些功能,可以對數據包進行跟蹤,並且在一段時間內探測路由上每個躍點,可以顯示數據包的延遲與丟失。
3、tracert
作用:跟蹤數據包到達目標所采用的路由,功能與Pathping類似。但tracert亦可在Windows 9X下使用,而pathping則隻適用於Windows 2000。
主要參數:trscert[一h][一W][一j]遠程計算機的IP地址或主機名
說明:一h和一w的作用與psthping中的參數類似。
一i 可用來指定發送的數據包所采用的路徑中要經過的路由器的列表。在解決網絡問題時常常指定多條路徑使數據包到達同一個點從而判斷究竟是哪一個路由器出了問題。
下麵我們來看一個使用trscert來追蹤路由轉發數據包,解決網絡故障的實例。
網絡情況如圖1所示.

有兩個網段 一個IP地址為10.0.0.1—10.0.0.6,子網掩碼為255.0.0.0;另一個為192.168.0.1—192.168.0.5,子網掩碼為255.255.255.0;均為手動指定靜態IP地址,主機與主機之間均為對等關係。很明顯兩個網段不在同一個子網中,必須使用路由器實現兩網段中不同主機之間的通信。現采用一台高性能的PC機,裝上Windows 2000 Server,配置成獨立的服務器,利用Windows 2000 Server自帶的路由服務,安裝兩塊網卡,綁定不同的IP地址,提供兩個子網接口,一個為10. 0.0.1,用來轉發10.0.0.2—10.0.0.6的數據包 一個為192.168.0.1,用來轉發192.168.0.2—192.168.0.5的數據包。
故障表現:10.0.0.2與192.168.0.2不能互相通信。
解決方法:首先檢查這兩台計算機有天配置TCP/IP,隻有TCP/IP才具有路由功能。隨後看兩台主機的TCP/IP是否安裝正確,使用本文介紹的Ping命令,鍵入Ping 127.0.0.1(127.0.0.1為TCP/IP所特有的自環地址),得到“repiy from1x 0.0.1 ……”的回應,收到回應的數據包,說明TCP/IP安裝正確;再ping本機的網卡IP,收到回應的數據包,說明TCP/IP已綁定到網卡;然後在10.0.0. 2上Ping192.168.0.2,此時顯示“destination host unreachable”,這說明此網絡地址不可到達,而ping本網段的其他主機均有回應。由此可見,問題集中在主機與路由器的通信上 路由器沒有把來自10.0. 0.2的數據包轉發到另一個子網中去。這種情況有可能是傳輸介質的故障,但可能性更大的是路由器配置不當。如果是路由器配置不當,那問題又出在哪一個網絡接口呢?或者兩個網絡接口都有問題7為了進一步檢測,使用我們剛剛提到的tracert命令,對發送至路由器的數據包進行跟蹤,在10.0.0. 2的命令提示符下鍵入trscert192.168.0.2,得到結果為:
Tracing route to 192.168.0.2
Over a maximum over 5 of 30 hops:
0 10.0.0.2
1 10.0.0.1
Destination net unreachable
由此可見,數據包到達了第一個網絡接口10.0.0.1,但沒有被第二個網絡接口192.168.0.2轉發,至少可以斷定第二個網絡接口存在問題。通過更換第二塊網卡,重新綁定192.168.0.1,再次跟蹤數據包,得到結果為:
Tracing route to 192.168.0.2
Over a maximum over 5 of 30 hops:
0 10.0.0.2
1 10.0.0.1
2 192.168.0.1
3 192.168.0.2
Trace complete
數據包成功地經過兩個躍點,到達目的地,隨後兩機之間再用PathPing檢驗,結果如下:
Pathping 192.168.0.2 over a maximum over 5 of 30 hops:
0 10.0.0.2
1 10.0.0.1
2 192.168.0.1
3 192.168.0.2
computing statiatcs for 450 seconds:
Source to Here This Node/Link
Hop RTT Lost/Sent=Pct Lost/Sent=Pct Address
0 10.0.0.2 0/100=0%
1 101ms 0/100=0% 0/100% 10.0.0.1 0/100=0%
2 121ms 0/100=0% 0/100% 192.168.0.1 0/100=0%
3 130ms 0/100=0% 0/100% 192.168.0.2 0/100=0%
Trace complete
Pathping首先顯示出路由器正常工作的情況,均能收到回應。隨後給出數據包一路上經過節點的時間統計,沒有明顯的延遲或數據包的丟失,證明兩機之間已可互傳數據,網絡故障排除。
4、nbtstat
作用:顯示本地NetBIOS名稱表與NeIBIOS名稱緩存, 該命令隻有在安裝了TCP/IP協議後才可使用。
主要參數:nbtstat[一n][一c][一s][一a]
說明:一n 列出本地NetBIOS名稱, 給出信息中的“已注冊就是指該名稱已被廣播或已被WINS注冊。
一c 列出NetBIOS名稱緩存的內容並指出每個名稱的IP地址。NetBIOS名稱高速緩存用於存放與本計算機最近進行通信的其他計算機的NetBIOS名稱和IP地址。實際上,如果想通過nbtstat查看最近有誰通過“網絡鄰居”的方式訪問了萬機上的資源,這個參數就變得尤為有用。
s 顯示客戶端與服務端的對話並列出雙方NlP地址:
-s 通過IP顯示另一台計算機的物理地址和名字列表你所顯示納內容就像對方計算機自己運行nbtstat —n —樣。
nbtstat除了可以統計出計算機的NetBIOS名稱和計算機所屬的工作組之外,還可以顯示計算機網卡的MAC地址。如果我們的計算機IP地址是192.168.0.1,鍵入nbtstat —a192.168.0.1 可以看到結果如下:
NetBIOS Remote Machine Name Table
Name Type Status
HERO UNQUE Registered
WORKGROUP GROU Registered
HERO UNIQUP Registered
HERO UNQUE Registered
WORKGROUP GROUP Registered
WORKGROUP UNIQUE Registered
_MSBROWSE_ GROUP Registered
MAC Address=52-54-AB-10-CA-B3
可以看到,前兩行就是本地計算機的NetBIOS名稱以及所屆的工作組,最後一行就是計算機網卡納MAC地址。而MAC地址在某些網絡應用方麵,如使用交換機在同一IP網段內劃分VLAN、創建無盤網絡終端的遠程啟動數據庫等等,就顯得尤為重要。此時,獲取MAC地址就成為必不可少的步驟。
接下來,我們再通過一個網絡檢測實例看看nbtstat在其他方麵的應用。
網絡情況如圖2所示:

在一個局域網中,共有三台工作站與一台服務器,IP地址為10.0.0.1—10. 0.0.4,服務器可以提供局域網內的Web服務,通過鍵入服務器的IP地址10.0.0.1可以看到服務器所提供的局域網內部網站的網頁。同時,局域網采用一個全向QLl680(自帶路由功能)的ADSL Modem共享Internet出口帶寬。由這一個AOSL Modem負責Intsrnet與內網邊界的數據包轉發工作。
故障表現:現在局域網內所有計算機共享ADSL Modem出口帶寬,連接到Internet正常,而且局域網內各台計算機之間的連接也正常,可以互傳文件。但是從瀏覽器在地址欄中輸入httP://10.0.0.1企圖瀏覽局域網Web服務器網頁時,要求輸入用戶名和密碼,而我們設定的Web服務是允許匿名訪問的。鍵入Web服務器管理員的帳號與密碼, 係統提示無效,瀏覽不到服務器的Web頁麵。
解決方法:在確定了Web服務器權限設置無誤的情況下,查看服務器事件日誌,發現有一條警告信息:係統檢測到網絡中IP地址10.0.0.1與網絡硬件地址00:90:04.E2:28:78有衝突,本機接口已經禁用。然而鍵入Pingl0.0.0.1,卻能收到正常的返回數據包。很明顯,根據服務器的日誌判斷,說明網絡上某台設備的IP地址與服務器的IP地址有;中突,然而通過ping無法檢測到此台設備究竟在網絡中哪一個位置。使用我們剛剛介紹的nbtstat,鍵入nbtstat —a 10.0.0.1看看網絡上這一台IP地址;中突的設備究竟主機名是什麼,屬於哪一個工作組。然而得到的回答卻是host not found。
由以上結果,故障已經逐步縮小了範圍。對於衝突的網絡設備,由於檢測不到它的NetBIOS名與所屆的工作組,而網絡中各台計算機又確定連接無故障的情況下,問題就集中在了ADSL Modem上。查閱全向QL 1680的設置資料,發現這一款ADSL Modem提供了Web頁麵的管理方式, 我們可以通過瀏覽器來設置QLl680的參數,但是這個Web服務器卻不能匿名訪問,同時,這一台QL 1680內置的IP地址也是10.0.0.1,因此,當我們在瀏覽器的地址欄中輸入http://10.0.0.1時QLl680默認給出了它的管理界麵,導致我們局域網內部的Web服務器不能發揮作用,在把QL 1680的內置IP地址改為10.0.0.220之後,網絡故障排除。 nbtstat命令在Windows 9x,Windows 2000,Windows XP下均可使用。
5、netstat
作用:顯示當前TCP/IP網絡連接,並統計會話信息。該命令隻有在安裝了TCP/IP協議後才可使用。
主要參數:netstat[一s][一s][P協議名][一r]
說明:一s顯示所有連接與偵聽端口。
一s顯示每個協議的統計。默認情況下顯示TCP.UDP,ICMP,IP的統計。
一P協議名 顯示由“協議名“指定的協議的連接,可與—s配合使用。
一r顯示路由表的內容。
一n以數字格式顯示地址和端口號(而不是嚐試查找目標主機名稱)。
netstat可以用來查看目前主機與網絡的連接情況,防止不安全的外部網絡連接。我們可以鍵入netstat—an同時使用“a”和“n”兩個參數來查看端口的統計信息。
舉例來說,網絡中一台主機使用。etstst—an統計出的結果如下
Active Connections
Proto local Address Foreign Address State
TCP hero:nbsession HERO:0 LISTENING
TCP hero:1158 HERO:0 LISTENING
TCP hero:1071 msgr—cs158.msgr.hotmail.com.1863 ESTABLISHED
TCP hero:15951 HERO:0 LISTENING
TCP hero:1399 207.188.24.150.80 CLOSE_WAIT
TCP hero:138 HERO:0 LISTENING
TCP hero:nbsession HERO:0 LISTENING
TCP hero:10385 HERO:0 LISTENING
UDP hero:4000 *: *
UDP hero:nbdatagram *: *
UDP hero:1072 *: *
由這個統計列表,計算機與外部網絡連接的端口開放情況就可一目了然。其中Active Connections是指當前本機活動連接,Proto是指連接使用的協議名稱,Local Address是本地計算機的IP地址和連接正在使用的端口號,Foreign Address是連接該端口的遠程計算機的IP地址和端口號,State則是表明TCP連接的狀態UDP連接則沒有。ESTABLlSHED表示端口與網絡外部的連接已經建立,CLOSE_WAIT表示端口暫時關閉,而LISTENING則表示此端口已經準備就緒,正在監聽外部網絡發出的連接請求 等待與外部網絡連接。如果我們發現自己的計算機上打開了值得懷疑的端口,就要當心。就事我們看到的這台計算機端口統計來說它的138端口處在監聽狀態,很容易被不懷好意的人利用網絡共享的工具來入侵計算機的共享資源。
netstat命令在Windows 9x,Windows 2000,Windows XP下均可使用。
6、nslookup
作用:診斷域名服務器是否能正常工作。該命令隻有在安裝了TCP/IP協議後才可使用。
說明:nslookup後若鍵入IP地址,則向默認的域名服務器查找此主機的信息,若此主機記錄為A或PTR則返回主機名;若鍵入主機名(如hero)則在當前域中向域名服務器要求解析此主機的IP地址;若要解析不在當前域的計算機,則須鍵入域名(如hero.com.cn)。
具體如何應用nslookup呢?我們來看一個利用nslookup來檢測DNS服務器的實例。
網絡情況如圖3所示:

在此局域網中,已經架設好了一個DNS服務器,主要為網絡中各台主機提供公司內部網站域名www.company.com的解析。網站Web服務器的IP地址為192.168.0.1,這是我們平時用得比較多的正向解析功能。
檢測過程 :在命令提示符下鍵入nslookup www.company.com ,回車之後即可看到如下結果:
Server: linlin
Address: 192.168.0.5
Name: www.company.com
Address: 192.168.0.1
以上結果顯示,正在工作的DNS服務器的主機名為linlin它的IP地址是192.168.0.5,而域名www.company.com所對應的IP地址為192.168.0.1。那麼,在檢測到DNS服務器linlin已經能順利實現正向解析的情況下,我們往往還要進一步測試它的反向解析功能,反向解析就是把IP地址解析為域名的一種服務。在本例中,我們就是要檢測DNS服務器能否把IP地址192.168.0.1反向解析為域名www.company.com。在命令提示下鍵入,nslookup 192.168.0.1得到結果如下:
Server: linlin
Address: 192.168.0.5
Name: www.company.com
Address: 192.168.0.1
這說明,DNS服務器linlin的反向解析功能也正常。
然而,有的時候我們鍵入nslookup www.company.com卻出現如下結果:
Server: linlin
Address: 192.168.0.5
***linlin can’t find www.company.com; Non-existent domain
這種情況說明網絡中DNS服務器linlin在工作,卻不能實現域名www.company.com的正確解析。此時, 要分析DNS服務器的配置情況,看看是否www.company.com這一條域名對應的IP地址記錄已經添加到了DNS的數據庫中。
還有的時候,我們鍵入nslookup www.company.com,會出現如下結果:
***Can’t find server name for domain: No response from server
***Can’t find www.company.com; Non-existent domain
這時,說明測試主機在目前的網絡中,根本沒有找到可以使用的DNS服務器。此時,我們要對整個網絡的連通性作全麵的檢測,看看當前主機是否可以與DNS服務器正常連通。還要檢查DNS服務器是否處於正常工作狀態采用逐步排錯的方法,找出DNS服務不能啟動的根源。
nslookup命令隻能在Windows 2000/XP下使用。
7、ipconfig
作用:顯示本地主機的IP地址配置。該命令隻有在安裝了TCP/IP協議才可使用。
主要參數:ipconfig[/all][/ernew適配器名稱][/release網絡適配器名稱]
說明:/all 顯示IP配置的完整信息。
/renew網絡配器名稱,此命令隻在DHCP的客戶機上可用,作用是更新DHCP服務器分配給客戶機的配置參數。適配器名稱可由ipconfig/all獲得。
/release適配器名稱 此命令隻在DHCP的客戶機上可用,作用是禁用客戶機所得到的DHCP配置參數,這樣一來,客戶機就不受DHCP服務器所分配的網絡參數的約束了。
ipoconfig常用來檢測DHCP工作站的IP地址分配是否正確當服務器上的DHCP服務開始啟動,要看一下工作站是否接受到了DHCP地址池中分配過來的IP地址,隻需在命令行下鍵入ipoconfig/all就全清楚了。
poconfig命令在Windows 9x、Windows 2000、WindowXP下均可使用。
8、lpq
作用:獲得連接到網絡中的打印機的信息。
主要參數:[—s][—P][—]
說明:—s 連接打印機的主機名稱或者IP地址
—P 打印機名稱
—I 所指定的打印機的完整信息。
9、lpr
作用:把打印任務發送到網絡中的打印機。
主要參數:[—S][—P][—J]
說明:—S 連接打印機的主機名稱或者IP地址
P打印機名稱
J確定打印任務的名稱
顯而易見,lpq與lpr是關聯使用的兩個命令。可以用在需要使用網絡打印機的場合。下麵,我們來看一個運用這兩個命令來使用網絡打印機的實例。
網絡情況,如圖4所示:

在此局域網中,打印服務器的主機名為linlin,IP地址為10.0.0.5,客戶機需要將自己的兩個文本文件a.txt與b.txt提交到網絡打印機去打印。
鍵入以下命令:
Ipr-S IinIin -P Canon priner -J task a.txt b.txt 這個命令的含義是什麼呢?把打印任務命名為tesk 送到打印服務器linlin,與之相連的打印機名稱為Canon printer在這一個打印隊列中將要打印兩個文檔,分別是a.txt與b.txt。
由以上可見, 在把文件送到打印服務器打印之前,必須了解足夠的打印服務器相關信息。如果不清楚打印服務器的相關信息,甚至不知道打印機是否已經啟用。那麼,可以用lpq命令來查詢。命令實例如下:
Ipr -S 10.O.O.5 -P Canon printer
在使用lpq與lpr的時候要注意-s, -P均為大寫, 然而附帶的參數-1卻是小寫。
lpq與lpr命令隻能在Windows 2000/×P下使用。
10、route
作用:顯示或修改本地路由表。該命令隻有在安裝了TCP/IP協議後才可使用。
主要參數:route[一f][一p]操作符目的主機IP地址子網掩碼網關
說明: -f 將路由表清零。
P 此參數與add操作符一起使用,使路由在係統引導程序之間長久存在。而在默認情況下,係統重新啟動時不保留路由。
操作符:add 添加路由
delete 刪除路由
change 更改路由
print 打印路由
route在Windows中用得最多的場合就是用來管理靜態路由。出於Windows 2000 Server自帶了路由功能的服務,因此可以用route來設置路由表。我們用一個管理路由的實例來看看route的應用。
網絡情況如圖5所示:

有三個網段,IP地址分別是10.0.0.1—10.0. 0.5 192.168.0.1—192.168.0.10 172.16.0.1—172.16.0.5。網段之間采用Windows 2000 Server架設的軟件路由器互聯。我們知道 路由器可以實現網段之間的尋址功能,當下一個網段仍然沒有包含數據包的目的地址,路由器可以把數據包轉發到下一個網段的網關,由以後的路由器繼續尋址並轉發數據包。如圖中所示的那樣,如果我們要讓10.0.0.2的計算機向172.16.0.2的計算機取得聯係。就要告訴第一台路由器第三個網段的地址,也要告訴第二台路由器第—個網段的地址。這就是“靜態路由器”路徑由我們事先設計好路由表也由我們手動來更新。而route命令此時就派上了用場。
解決方案:在第一台路由器中可以找到第一個網段的網關IP地址是10. 0. 0.1我們要在路由表中加入第三個網段的網絡地址172.16.0.0(注意:這是網絡號,不是主機IP地址,因此最後一位是0)。按照前文所述的route命令規則。我們鍵入如下命令
route add l72.16.0.0mask255.255.10.0.0.1 metric 1
最後一位metric是躍點數, 我們在此選取躍點數1。
同理,在第二台路由器中也要找到第三個網段的網關172.168.0.1,添加第一個網段的網絡地址10.0.0.0鍵入命令:
route add l0.0.0.0 mask 255.0.0.0 172.16.0.1 metric 1
然後可以鍵入route print命令查看蹈由表的更新情況能夠發現路出表中已經添加了新的網絡路徑。加入要刪除這一條路徑的話,隻需鍵入
route delete 172.16.0.0
route delete 10.0.0.0
這樣一來,三個網段已經互相連通,兩台路由器已經被我們手動指定好網絡路徑。那就是10.0.0.0-192.168.0.0 172.16.0.0,而且這一條網絡路徑是雙向的無論數據包要到達三個網段中任何一個網段路由器都可以將它們轉發必要時,可以一個路由器接一個路由器地傳送數據包。
route命令隻能在Windows 2000/XP下使用。

摘自《網管員世界》2002年11月

最後更新:2017-01-04 22:34:54

  上一篇:go Linux操作係統下防範黑客的一些實用技巧
  下一篇:go 無法連接Windows遠程服務器的幾種解決辦法