提問:本人經常用ping命令和tracert命令了解網絡中主機的狀態,看其是否運行正常。但是最近公司網管在路由器和服務器上設置了策略,將icmp協議徹底禁止使用了。眾所周知由于ping和tracert命令用到是icmp協議。所以在這種情況下我就沒法使用上述兩個命令檢測網絡中主機狀態了。請問有沒有其他工具可以幫我解決此問題,或者將ping和tracert命令使用的協議從icmp更改到tcp或udp協議。急切等待it168高手的回答。
解答:從傳統上講ping命令和tracert命令都是使用ICMP協議來檢測網絡中的存活主機以及路由命令。所以說當服務器安裝了防火墻或者在路由器上禁止了ICMP協議,那么我們在計算機上使用ping和tracert命令就無法收到滿足的回復信息。這也是上面那位網友所碰到的棘手問題。在這種情況下我們如何檢測服務器是否在線或者網絡中某臺主機是否運轉正常呢?
實際上我們有很多種方法來解決上面網友所碰到的問題,最簡單的就是在交換機上而不是計算機上來通過tracert檢測。因為交換機上,非凡是CISCO設備中traceroute命令是使用UDP協議的,所以即使ICMP協議被禁止使用依然可以通過UPD協議探詢路由信息,反饋回主機狀態。
另外我們在unix或linux系統中也是可以使用tracert命令來檢測網絡中主機狀態的,和cisco中使用的協議一樣,在linux和UNIX中tracert是通過udp協議運轉的。
當然對于我們大多數用戶來說,一沒有路由器交換機的治理權限,二沒有安裝linux或unix操作系統。那么如何解決ICMP協議被禁止使用,并通過tracert探詢主機路由和當前狀態呢?在這里給大家推薦一個小工具,名字叫tracetcp。實際上他是一個tracert工具,但是使用的不是ICMP協議而是TCP協議。所以即使ICMP協議被禁止使用,我們也可以通過tracetcp這個小工具完成tracert命令。
一,預備工作:
雖然tracetcp是一個綠色工具,我們不用安裝。而且總共只有幾百KB的容量。但是由于該工具需要用到類似于sniffer的功能,所以需要winpcap的支持。假如沒有安裝winpcap的話,在運行tracetcp時會提示丟失packet.dll和wincap.dll文件。
WinPcap小檔案:
軟件版本: V3.1
軟件語言:英文
軟件類型:免費軟件
軟件大小:456 KB
適用平臺:win2000/XP/2003
下載地址:http://count.skycn.com/softdownload.php?id=11534&url=http://jsyz.driversky.com/down/WinPcap_3_1.exe
第一步:下載winpcap程序并雙擊進行安裝。
第二步:同意winpcap的安裝許可協議。
第三步:復制必須文件到本地硬盤。
第四步:完成所有安裝工作,winpcap已經進駐我們的操作系統點finish按鈕結束安裝工作。
二,使用tracetcp探測網絡主機:
我們需要在命令行模式下執行tracetcp來探測網絡主機。可以把下載來的tracetcp壓縮包解壓到一個目錄中。然后通過任務欄的“開始”->“運行”,輸入CMD后回車進入命令行模式,然后進入剛才解壓的目錄中。執行tracetcp ip即可開始探測。例如筆者嘗試tracert 10.82.0.30這臺主機。那么應該執行tracetcp 10.82.0.30,這樣我們就會得到該主機的反饋信息了,即使該主機上安裝了防火墻禁止ICMP協議傳輸或者路由交換設備上設置了訪問控制列表過濾了ICMP協議我們都可以探測到該主機的真實狀態。而不使用tracetcp小工具,直接通過ping或者tracert命令訪問10.82.0.30則會收到request timed out或者destination net unreachable的信息,表面上看是該主機不可達,實際是ICMP探測數據包被過濾造成的。我們使用tracetcp和直接用系統自帶的ping,tracert對同一個IP地址進行追蹤得出了不同的結果,事實證實即使ICMP協議被禁止使用也可以通過tracetcp工具使用TCP協議完成探測目的。
上面提到的IP地址是與筆者所用計算機在同一個網段中的一臺服務器,只不過在其上安裝了防火墻過濾了ICMP數據包,同樣我們對另一個IP地址——10.82.114.1進行探測,該計算機處于路由器之后,路由器上設置了ACL禁止ICMP協議數據包的通過。那么我們使用tracetcp命令會得到什么效果呢?在命令行模式中輸入tracetcp 10.82.114.1后可以得出該IP的計算機名——win2000s,以及到達該地址所需要走的路徑(路由),需要兩跳達到該主機。同樣情況下使用系統自帶的ping命令將永遠得到request timed out的提示,而使用tracert 10.82.114.1雖然可以通過兩跳,但是兩跳后就再也探測不到了,依然會收到request timed out的反饋信息。
小提示:
經過筆者測試發現假如本地計算機安裝了一些軟件防火墻,那么tracetcp將無法很好的工作,例如Zone Alarm,,Kerio,SyGate等。所以出現問題時我們需要將這些防火墻或代理工具關閉。不過慶幸的是tracetcp與XP系統自帶的防火墻沒有沖突,我們可以正常使用。
三,更多附加功能:
實際上tracetcp小工具有很多參數,我們可以通過不同參數以及參數的不同組合實現更多的功能。在命令行模式下輸入tracetcp -?后回車就可以查看其幫助信息,所有參數都會羅列出來。
小提示:
實際上tracetcp是一個小型掃描器,我們可以通過他對某臺計算機的相應端口進行掃描。直接使用tracetcp ip:port命令即可。
四,總結:
不管是采取哪種方法只要我們將tracert和ping命令所使用的默認協議進行更改即可,這樣就不會因為ICMP協議被過濾而無法探測遠程主機了。該工具適合在設置了禁止ICMP數據包傳輸的網絡或者服務器安裝了防火墻等情況下對主機運行狀態進行探測。所以總體上講tracetcp小工具是網絡治理員檢測網絡的好幫手。
新聞熱點
疑難解答