traceroute命令的用法例項分享

2022-09-21 05:09:10 字數 3313 閱讀 3401

traceroute 是linux下跟蹤資料報到達網路主機所經過的路由工具;

基礎的可以檢視這篇文章:

traceroute 是用來發出資料報的主機到目標主機之間所經過的閘道器的工具。traceroute 的原理是試圖以最小的ttl發出探測包來跟蹤資料報到達目標主機所經過的閘道器,然後監聽乙個來自閘道器icmp的應答。傳送資料報的大小預設為 38個位元組。

traceroute [引數選項] hostname,網域名稱或 ip位址

引數選項:

-i 指定網路介面,對於多個網路介面有用比如 -i eth1 或-i ppp1等;

-m 把在外發探測試包中所用的最大生存期設定為max-ttl次**,預設值為30次;

-n 顯示ip位址,不查主機名。當dns不起作用時常用到這個引數;

-p port 探測包使用的基本udp埠設定為port ,預設值是33434

-q n 在每次設定生存期時,把探測包的個數設定為值n,預設時為3;

-r 繞過正常的路由表,直接傳送到網路相連的主機;

-w n 把對外發探測包的等待響應時間設定為n秒,預設值為3秒;

例項一: traceroute 用法簡單、最常用的用法

就是後面直接接ip或hostname或網域名稱;比如下面的示例;

[root@localhost ~]# traceroute jb51.net

traceroute to jb51.net (211.93.98.20), 30 hops max, 40 byte packets

1 sir01.localdomain (192.168.1.1) 0.151 ms 0.094 ms 0.146 ms

2 221.201.88.1 (221.201.88.1) 5.867 ms 7.588 ms 5.178 ms

3 218.25.158.149 (218.25.158.149) 6.546 ms 6.230 ms 8.297 ms

4 218.25.138.133 (218.25.138.133) 7.129 ms 7.644 ms 8.311 ms

......

注: 此例中,記錄按序列號從1開始,每個紀錄就是一跳 ,每跳表示乙個閘道器,我們看到每行有三個時間,單位是 ms,其實就是-q的預設引數。探測資料報向每個閘道器傳送三個資料報後,閘道器響應後返回的時間;如果您用 traceroute -q 4 jb51.net ,表示向每個閘道器傳送4個資料報;

有時我們traceroute 一台主機時,會看到有一些行是以星號表示的。出現這樣的情況,可能是防火牆封掉了icmp的返回資訊,所以我們得不到什麼相關的資料報返回資料。

有時我們在某一閘道器處延時比較長,有可能是某台閘道器比較阻塞,也可能是物理裝置本身的原因。當然如果某台dns出現問題時,不能解析主機名、網域名稱時,也會有延時長的現象;您可以加-n 引數來避免dns解析,以ip格式輸出資料;

如果在區域網中的不同網段之間,我們可以通過traceroute 來排查問題所在, 是主機的問題還是閘道器的問題。如果我們通過遠端來訪問某台伺服器遇到問題時,我們用到traceroute 追蹤資料報所經過的閘道器,提交idc服務商,也有助於解決問題;但目前看來在國內解決這樣的問題是比較困難的,就是我們發現問題所在,idc服務商也不可能幫助我們解決。為什麼呢?因為北方網通和南方電信各自為政。以前無論怎麼說都是一張網,現在就是兩張網,是通而不暢。咱們只能望網興嘆了;

例項二:一些引數的用法示例;

[root@localhost ~]# traceroute -m 10 jb51.net 把跳數設定為10次;

[root@localhost ~]# traceroute -n jb51.net 注:顯示ip位址,不查主機名。

[root@localhost ~]# traceroute -p 6888 jb51.net 注:探測包使用的基本udp埠設定6888

[root@localhost ~]# traceroute -q 4 jb51.net 注:把探測包的個數設定為值4;

[root@localhost ~]# traceroute -r jb51.net 注:繞過正常的路由表,直接傳送到網路相連的主機;

[root@localhost ~]# traceroute -w 3 jb51.net 注:把對外發探測包的等待響應時間設定為5秒;

在windows系統中,用tracert來跟蹤路由

tracert是路由跟蹤程式,用於確定 ip 資料報訪問目標所經過的路徑。tracert 命令用 ip 生存時間 (ttl) 欄位和 icmp 錯誤訊息來確定從乙個主機到網路上其他主機的路由。 在工作環境中有多條鏈路出口時,可以通過該命令查詢資料是經過的哪一條鏈路出口。

tracert一般用來檢測故障的位置,我們可以使用用tracert ip命令確定資料報在網路上的停止位置,來判斷在哪個環ekpvvculpl節上出了問題,雖然還是沒有確定是什麼問題,但它已經告訴了我們問題所在的地方,方便檢測網路中存在的問題。

不帶引數的tracert 或 tracert /? 命令顯示幫助資訊。

通過向目標傳送不同 ip 生存時間 (ttl) 值的「internet 控制訊息協議 (icmp)」回應資料報,tracert 診斷程式確定到目標所採取的路由。要求路徑上的每個路由器在**資料報之前至少將資料報上的 ttl 遞減 1。資料報上的 ttl 減為 0 時,路由器應該將「icmp 已超時」的訊息發回源系統。

tracert 先傳送 ttl 為 1 的回應資料報,並在隨後的每次傳送過程將 ttl 遞增 1,直到目標響應或 ttl 達到最大值,從而確定路由。通過檢查中間路由器發回的「icmp 已超時」的訊息確定路由。某些路由器不經詢問直接丟棄 ttl 過期的資料報,這在 tracert 實用程式中看不到。

&n程式設計客棧bsp;   tracert 命令按順序列印出返回「icmp 已超時」訊息的路徑中的近端路由器介面列表。如果使用 -d 選項,則 tracert 實用程式不在每個 ip 位址上查詢 dns。

不帶選項的tracert命令將顯示到達目標ip位址所經過的路徑,並將ip位址解析為主機名一同顯示。如下圖所示,第一跳是閘道器位址,可以根據看到的主機名,判斷我使用的是極路由。

不將位址解析成主機名,能夠更快地顯示路由器路徑。與上圖對比,路徑是一樣的,只是不將ip位址解析成主機名,速度更快。下圖中紅色框所示的主機名已消失。

指定跟蹤的躍點數。以下的命令只顯示5跳,可以看到命令只跟蹤到5跳就結束了。一般來說,5跳之內可能還是本地省內鏈路。

指定等待每個應答的時間(以毫秒為單位)。預設值為 3000 毫秒(3 秒)。

另外,tracert命令還有如「-j」、「-r」、「-s」、「-4」、「-6」等引數,用得較少,其用法都可以在命令列中輸入命令「tracert」直接查到,這裡就不再贅述了。

本文標題: traceroute命令的用法例項分享

本文位址: /zhishi/wangluoqita/28906.html

traceroute的一些用法

traceroute 跟蹤資料報到達網路主機所經過的路由工具 traceroute 是用來發出資料報的主機到目標主機之間所經過的閘道器的工具。traceroute 的原理是試圖以最小的ttl發出探測包來跟蹤資料報到達目標主機所經過的閘道器,然後監聽乙個來自閘道器icmp的應答。傳送資料報的大小預設為...

traceroute的一些用法

traceroute 跟蹤資料報到達網路主機所經過的路由工具 traceroute 是用來發出資料報的主機到目標主機之間所經過的閘道器的工具。traceroute 的原理是試圖以最小的ttl發出探測包來跟蹤資料報到達目標主機所經過的閘道器,然後監聽乙個來自閘道器icmp的應答。傳送資料報的大小預設為...

Ping 和 traceroute的原理

ping 程式是用來探測主機到主機之間是否可通訊,如果不能ping到某台主機,表明不能和這台主機建立連線。ping 使用的是icmp協議,它傳送icmp回送請求訊息給目的主機。icmp協議規定 目的主機必須返回icmp回送應答訊息給源主機。如果源主機在一定時間內收到應答,則認為主機可達。假定主機a的...