計算機網絡診斷工具

網絡中的硬件瑕疵、系統Bug、錯誤操作都可能導致網絡服務中斷,也就是我們通常所說的網絡故障。那麼,藉助於一些系統診斷、偵錯和分析工具,我們就可以在故障發生之前敏銳地捕捉到蛛絲馬跡,在故障發生之後迅速判斷故障的位置,搞清導致故障的原因。下面,小編將介紹幾種簡單、有效的網絡鏈路診斷工具。

計算機網絡診斷工具

  1、arp – 管理地址解析表項

arp命令用於查看和修改本地計算機上的ARP(地址解析協議)表項。該表項用於緩存最近將IP地址轉換成MAC(媒體訪問控制)地址的IP地址/MAC地址對。ARP緩存包含兩種類型的表項,一種是動態ARP緩存表項,是在與遠程計算機的TCP/IP會話過程中自動添加和刪除的,如果在2分鐘內不再使用,動態表項將老化並在緩存中過期;另一種是靜態ARP緩存表項,是使用arp -s命令手動添加的,一直保留在ARP緩存中,直到計算機重新啓動爲止。下面介紹arp的常見用法。

(1)查看網絡接口的當前ARP表項

語法格式爲:arp -a [inte_addr] [-N if_addr]

其中inte_addr表示ARP項的IP地址,if_addr指定網絡接口的IP地址,[]中參數爲可忽略項。

例如,要顯示當前所有接口的ARP緩存表,可以使用命令:arp –a;對於指派的IP地址爲的接口,要顯示其ARP緩存表,可以使用命令:arp -a -N ;對於指派的IP地址爲的接口,要顯示IP地址爲的緩存項,可以使用命令:arp -a -N 。

(2)刪除由inte_addr指定的IP地址對應的ARP緩存項

語法格式爲:arp -d inte_addr [if_addr]

其中inte_addr表示ARP項的IP地址,if_addr指定網絡接口的IP地址,[]中參數爲可忽略項。

例如,要刪除指派的IP地址爲的緩存項,可以使用命令:arp -d ;對於指派的IP地址爲的接口,要刪除指派的IP地址爲的緩存項,可以使用命令:arp -d 。

(3)添加由inte_addr(IP地址)和eth_addr(MAC地址)指定的靜態ARP緩存項

語法格式爲:arp -s inte_addr eth_addr [if_addr]

其中inte_addr表示ARP項的IP地址,eth_addr表示ARP項的MAC地址,if_addr指定現有網絡接口的IP地址,[]中參數爲可忽略項。

例如,要添加將IP地址解析成物理地址00-AA-00-4F-2A-9C的靜態ARP緩存項,可以使用命令:arp -s 00-AA-00-4F-2A-9C。

  2、winipcfg/ipconfig – 管理TCP/IP配置信息

ipconfig命令主要用來顯示當前的TCP/IP配置,也用於手動釋放和更新DHCP服務器指派的TCP/IP配置,這一功能對於運行DHCP服務的網絡特別有用。winipcfg與ipconfig一樣,也用來顯示當前TCP/IP協議的配置信息,只是winipcfg適用於Windows 95/98,而ipconfig適用於Windows NT/2000/XP以及後續產品。下面介紹ipconfig的常見用法。

(1)ipconfig和ipconfig /all

使用不帶參數的ipconfig命令可以得到以下信息:IP地址、子網掩碼、默認網關。而使用ipconfig /all,則可以得到更多的信息:主機名、DNS服務器、節點類型、網絡適配器的物理地址、主機的IP地址(IP Address)、子網掩碼(Subnet Mask)以及默認網關(Default Gateway)等。

例如,本機運行不帶參數的ipconfig,得到:

-------------------------------------------------------------------------

Windows IP 配置

以太網適配器 本地連接:

連接特定的 DNS 後綴 . . . . . . . IPv6 地址 . . . . . . . . . . . . : 2001:250:1006:5098:64c8:a7ea:5b0:1535

IPv6 地址 . . . . . . . . . . . . : 2002:dbf5:62a5:d:64c8:a7ea:5b0:1535

本地站點的 IPv6 地址. . . . . . . : fec0::d:64c8:a7ea:5b0:1535%1

臨時 IPv6 地址. . . . . . . . . . : 2001:250:1006:5098:3c2f:954d:6ac5:c7e2

臨時 IPv6 地址. . . . . . . . . . : 2002:dbf5:62a5:d:3c2f:954d:6ac5:c7e2

本地鏈接 IPv6 地址. . . . . . . . : fe80::64c8:a7ea:5b0:1535

IPv4 地址 . . . . . . . . . . . . :

子網掩碼 . . . . . . . . . . . . :

默認網關. . . . . . . . . . . . . : fe80::c6ca:d9ff:fe2e:6ead

無線局域網適配器 無線網絡連接:

媒體狀態 . . . . . . . . . . . . : 媒體已斷開

連接特定的 DNS 後綴 . . . . . . . :

-------------------------------------------------------------------------

運行ipconfig /all,得到:

-------------------------------------------------------------------------

Windows IP 配置

主機名 . . . . . . . . . . . . . : N3Z61MILVH28TWZ

主 DNS 後綴 . . . . . . . . . . . :

節點類型 . . . . . . . . . . . . : 混合

IP 路由已啓用 . . . . . . . . . . : 否

WINS 代理已啓用 . . . . . . . . . : 否

以太網適配器本地連接:

連接特定的 DNS 後綴 . . . . . . . :

描述. . . . . . . . . . . . . . . : Atheros AR8162/8166/8168 PCI-E Fast Ethernet Controller (NDIS 6.20)

物理地址. . . . . . . . . . . . . : 3C-97-0E-F9-43-60

DHCP 已啓用 . . . . . . . . . . . : 是

自動配置已啓用. . . . . . . . . . : 是

IPv6 地址 . . . . . . . . . . . . : 2001:250:1006:5098:64c8:a7ea:5b0:1535(首選)

IPv6 地址 . . . . . . . . . . . . : 2002:dbf5:62a5:d:64c8:a7ea:5b0:1535(首選)

本地站點的 IPv6 地址. . . . . . . : fec0::d:64c8:a7ea:5b0:1535%1(首選)

臨時 IPv6 地址. . . . . . . . . . : 2001:250:1006:5098:3c2f:954d:6ac5:c7e2(首選)

臨時 IPv6 地址. . . . . . . . . . : 2002:dbf5:62a5:d:3c2f:954d:6ac5:c7e2(首選)

本地鏈接 IPv6 地址. . . . . . . . : fe80::64c8:a7ea:5b0:1535(首選)

IPv4 地址 . . . . . . . . . . . . : (首選)

子網掩碼 . . . . . . . . . . . . :

獲得租約的時間 . . . . . . . . . : 2013年11月21日 17:31:14

租約過期的時間 . . . . . . . . . : 2013年11月28日 17:31:14

默認網關. . . . . . . . . . . . . : fe80::c6ca:d9ff:fe2e:6ead

DHCP 服務器 . . . . . . . . . . . :

DNS 服務器 . . . . . . . . . . . :

TCPIP 上的 NetBIOS . . . . . . . : 已啓用

無線局域網適配器無線網絡連接:

媒體狀態 . . . . . . . . . . . . : 媒體已斷開

連接特定的 DNS 後綴 . . . . . . . :

描述. . . . . . . . . . . . . . . : Broadcom 802.11n 網絡適配器

物理地址. . . . . . . . . . . . . : F4-B7-E2-CB-00-B2

DHCP 已啓用 . . . . . . . . . . . : 是

自動配置已啓用. . . . . . . . . . : 是

-------------------------------------------------------------------------

注:在命令提示符中,“-”與“/”均可用來補充參數,效果相同。

(2)刷新DHCP配置參數

語法格式爲:ipconfig /renew [adapter]

該選項只能用於DHCP客戶端。如果要更新特定適配器的DHCP配置,請鍵入使用不帶參數的ipconfig命令顯示的適配器名稱。如果不指定適配器,則DHCP客戶機上除靜態配置外的所有適配器都將盡量連接到DHCP服務器更新租約。

例如,命令ipconfig /renew 本地連接 表示更新指定適配器“本地連接”的DHCP配置。

(3)釋放當前的DHCP配置

語法格式爲:ipconfig /release [adapter]

該選項將禁用本地系統上的TCP/IP,並只能用於DHCP客戶端。如果要釋放特定適配器的DHCP配置,請鍵入使用不帶參數的ipconfig命令顯示的適配器名稱。

要發現和解決TCP/IP網絡問題時,通常首先檢查出現問題的計算機上的TCP/IP配置。使用ipconfig /all可獲得全面的主機配置信息。

  3、ping – 測試網絡連接性

ping命令是TCP/IP協議內置的一個測試工具,主要通過發送Internet控制消息協議(ICMP)迴響請求消息,來驗證與另一臺TCP/IP計算機的IP連接。對應的迴響應答消息的接受情況將和往返過程的時間一起顯示出來。ping是用於檢測網絡連接性、可達性和域名解析的主要TCP/IP命令,只有在安裝了TCP/IP協議後纔可以使用。其語法格式爲:

ping [-t] [-a] [-n count] [-l size] [-f] [-i ttl] [-v tos] [-r count] [-s count] [[-j computer-list] | [-k computer-list]] [-w timeout] destination-list

各選項、參數含義說明如下:

*. -t :一直Ping指定的計算機,直到從鍵盤按下+強制中斷。也可以使用+鍵暫停,查看信息,再按任意鍵繼續。

*. -a :將IP地址解析爲計算機NetBios名。

*. -n count :指定要發送的ECHO數據包數,用count表示,默認值爲4。

*. -l size :發送ECHO數據包的大小,由size指定,默認爲32字節,最大值是65527Byte。

*. -f :在數據包中設置不分段標誌,這樣數據包就不會被路由上的網關分段。

*. -i ttl :設置生存時間,由ttl指定。

*. -v tos :設置服務類型,有tos指定。

*. -r count :設置要記錄的路由器的數目,由count指定,可以指定最少1臺,最多9臺計算機。

*. -s count :設置時間戳的路由器數目,由count指定,與參數-r差不多,但此參數不記錄數據包返回所經過的路由,最多隻記錄4個。

*. -j computer-list :由computer-list指定的計算機列表(不嚴格按照列表數量)作爲ping數據包的路由路徑。

*. -k computer-list :由computer-list指定的計算機列表(嚴格按照列表數量)作爲ping數據包的路由路徑。允許的最大數量爲9。

*. –w timeout :指定超時間隔,單位爲毫秒。默認爲1000毫秒,即1秒。

*. destination-list :指定要測試的目的計算機的域名或IP地址。

常見用法:使用ping測試網絡連接性

一般使用ping來測試連接,向目的計算機的主機名(或IP地址)發送ICMP迴應請求包。

例如,網絡運行正常情況下,在命令提示符窗口中輸入如下命令:

ping

回車執行,所有發送的包均被成功接收,丟包率爲0,生成如下。

-------------------------------------------------------------------------

正在 Ping [] 具有 32 字節的數據:

來自 的回覆: 字節=32 時間=1ms TTL=250

來自 的回覆: 字節=32 時間<1ms TTL=250

來自 的回覆: 字節=32 時間<1ms TTL=250

來自 的'回覆: 字節=32 時間=1ms TTL=250

的 Ping 統計信息:

數據包: 已發送 = 4,已接收 = 4,丟失 = 0 (0% 丟失),

往返行程的估計時間(以毫秒爲單位):

最短 = 0ms,最長 = 1ms,平均 = 0ms

-------------------------------------------------------------------------

正常測試結果中會連續出現類似“來自 的回覆: 字節=32 時間<1ms TTL=250”的語句。其中 時間<1ms 表示從發送數據到收到迴應經歷的時間,如果超出限定時間後仍未收到迴應,則視爲連接超時,自動繼續發送下一個測試數據包,系統默認的超時時間爲4000ms(4s);TTL=250表示對方主機的TTL值爲250,根據TTL值一般可以確定該計算機使用哪種操作系統,例如Windows NT/2000系統的主機通常爲128,Linux系統的主機通常爲64,Windows 9X系統的主機通常爲32,而Unix及類Unix系統的主機一般爲255。

另外,我們還可以通過測試數據包的數目和數據包的大小來確定網絡的丟包率,如果丟包率非常高,雖然網絡是連通的,但是其穩定性會非常差。指定數據包的大小,則是爲了測試網絡是否能夠提供一定的帶寬。例如,在命令提示符窗口中輸入如下命令:

ping -n 5 -l 720

回車執行,其中發送數據包的數量爲5,數據包大小爲720字節,生成如下。

-------------------------------------------------------------------------

正在 Ping 具有 720 字節的數據:

來自 的回覆: 字節=720 時間=1ms TTL=250

來自 的回覆: 字節=720 時間=1ms TTL=250

來自 的回覆: 字節=720 時間=1ms TTL=250

來自 的回覆: 字節=720 時間=1ms TTL=250

來自 的回覆: 字節=720 時間=1ms TTL=250

的 Ping 統計信息:

數據包: 已發送 = 5,已接收 = 5,丟失 = 0 (0% 丟失),

往返行程的估計時間(以毫秒爲單位):

最短 = 1ms,最長 = 1ms,平均 = 1ms

-------------------------------------------------------------------------

從測試結果不難發現,丟包率爲0%。通常情況下,丟包率低於20%時不會影響到正常網頁瀏覽等應用。

實際測試中,一般按以下步驟逐步測試。

a. ping環回地址,驗證是否在本地計算機上安裝TCP/IP協議以及配置是否正確。執行命令ping 。如果不能成功,應安裝和配置TCP/IP之後重新啓動計算機。

b. ping本地計算機,驗證是否將當前計算機正確地添加到網絡。

c. ping默認網關,驗證默認網關是否運行以及能否與同一網段上的主機通信。

d. ping遠程主機,驗證能否通過路由器進行通信。如果有問題,可檢查路由器配置,確認啓用IP路由和路由器之間的連接正常。

注:ping命令用WinSock的名稱解析將計算機名稱解析成IP地址,所以如果ping地址成功,而ping名稱失敗,那麼問題就出在地址或名稱解析上,而不是網絡連通性的問題。