歡迎來到Linux教程網
Linux教程網
Linux教程網
Linux教程網
您现在的位置: Linux教程網 >> UnixLinux >  >> Linux基礎 >> Linux技術

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協議進行探測,就可以獲得最終節點:

Copyright © Linux教程網 All Rights Reserved