Linux常用網絡工具:路由掃描之traceroute


之前兩篇《Linux常用網絡工具:fping主機掃描》和《Linux常用網絡工具:hping高級主機掃描》都是關於主機掃描的,本篇介紹Linux下常用的路由掃描工具traceroute和mtr。

路由掃描主要是查詢本機到另一個主機經過的路由跳數及數據延遲情況。

traceroute基本使用


路由掃描工具的原理都是存活時間(TTL)來實現的。每當數據包經過一個路由器,其存活時間就會減1。當其存活時間是0時,主機便取消數據包,並傳送一個ICMP TTL數據包給原數據包的發出者,路由掃描工具就通過這個回送的ICMP來獲得經過的每一跳路由的信息。

Linux下的traceroute和Windows的tracert功能相似,所不同的是Windows的tracert發送的是ICMP報文,Linux的traceroute發送的是UDP數據包。

由於traceroute使用UDP協議,所以其目標端口號默認為33433,一般應用程序都不會用到這個端口,所以目標主機會回送ICMP。

traceroute也支持發送TCP和ICMP:

 -I  --icmp                  Use ICMP ECHO for tracerouting
 -T  --tcp                   Use TCP SYN for tracerouting
 -p port  --port=port 

一般的Linux都會默認帶有traceroute工具,如果沒有可以yum安裝一下。

traceroute最簡單的基本用法是:traceroute hostname,示例:

# traceroute  192.168.0.99
traceroute to 192.168.0.99 (192.168.0.99), 30 hops max, 60 byte packets
 1  192.168.2.1 (192.168.2.1)  5.642 ms  5.901 ms  12.287 ms
 2  192.168.0.99 (192.168.0.99)  0.416 ms  1.193 ms  1.045 ms

traceroute會對每個節點測試三次,因此每一行會有三個時間,通過這個時間可以分析出哪一個路由節點延時最大。

traceroute使用技巧


用traceroute一些網站時,可能無法到達最終節點,如:

這主要是因為有些服務器把UDP數據包屏蔽了,所以沒有返回ICMP。

對於有HTTP服務的主機,可以用參數設置traceroute使用TCP協議進行探測,就可以獲得最終節點:


記錄,為更好的自己!


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM