網路中的硬體瑕疵、系統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名稱失敗,那麼問題就出在地址或名稱解析上,而不是網路連通性的問題。