日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 运维知识 > linux >内容正文

linux

traceroute命令---Linux学习笔记

發布時間:2023/12/20 linux 26 豆豆
生活随笔 收集整理的這篇文章主要介紹了 traceroute命令---Linux学习笔记 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

介紹:

通過traceroute我們可以知道信息從你的計算機到互聯網另一端的主機是走的什么路徑。當然每次數據包由某一同樣的出發點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。linux系統中,我們稱之為traceroute,在MS Windows中為tracert。 traceroute通過發送小的數據包到目的設備直到其返回,來測量其需要多長時間。一條路徑上的每個設備traceroute要測3次。輸出結果中包括每次測試的時間(ms)和設備的名稱(如有的話)及其IP地址。traceroute命令讓你追蹤網絡數據包的路由途經,預設數據包大小是40Bytes,用戶可另行設置。

在大多數情況下,我們會在linux主機系統下,直接執行命令行:

traceroute hostname

而在Windows系統下是執行tracert的命令:

tracert hostname

Traceroute的工作原理:

Traceroute最簡單的基本用法是:traceroute hostname

Traceroute程序的設計是利用ICMP及IP header的TTL(Time To Live)欄位(field)。首先,traceroute送出一個TTL是1的IP datagram(其實,每次送出的為3個40字節的包,包括源地址,目的地址和包發出的時間標簽)到目的地,當路徑上的第一個路由器(router)收到這個datagram時,它將TTL減1。此時,TTL變為0了,所以該路由器會將此datagram丟掉,并送回一個「ICMP time exceeded」消息(包括發IP包的源地址,IP包的所有內容及路由器的IP地址),traceroute 收到這個消息后,便知道這個路由器存在于這個路徑上,接著traceroute 再送出另一個TTL是2 的datagram,發現第2 個路由器…… traceroute 每次將送出的datagram的TTL 加1來發現另一個路由器,這個重復的動作一直持續到某個datagram 抵達目的地。當datagram到達目的地后,該主機并不會送回ICMP time exceeded消息,因為它已是目的地了,那么traceroute如何得知目的地到達了呢?

Traceroute在送出UDP datagrams到目的地時,它所選擇送達的port number 是一個一般應用程序都不會用的號碼(30000 以上),所以當此UDP datagram 到達目的地后該主機會送回一個「ICMP port unreachable」的消息,而當traceroute 收到這個消息時,便知道目的地已經到達了。所以traceroute 在Server端也是沒有所謂的Daemon 程式。

Traceroute提取發 ICMP TTL到期消息設備的IP地址并作域名解析。每次 ,Traceroute都打印出一系列數據,包括所經過的路由設備的域名及 IP地址,三個包每次來回所花時間。

命令格式:

traceroute[參數][主機]

命令功能:
traceroute指令讓你追蹤網絡數據包的路由途徑,預設數據包大小是40Bytes,用戶可另行設置。

具體參數格式:

traceroute [-dFlnrvx][-f<存活數值>][-g<網關>...][-i<網絡界面>][-m<存活數值>][-p<通信端口>][-s<來源地址>][-t<服務類型>][-w<超時秒數>][主機名稱或IP地址][數據包大小]

常用參數的說明:

-d 使用Socket層級的排錯功能。 -f 設置第一個檢測數據包的存活數值TTL的大小。 -F 設置勿離斷位。 -g 設置來源路由網關,最多可設置8個。 -i 使用指定的網絡界面送出數據包。 -I 使用ICMP回應取代UDP資料信息。(默認使用的是UDP回應) -m 設置檢測數據包的最大存活數值TTL的大小。 -n 直接使用IP地址而非主機名稱。 -p 設置UDP傳輸協議的通信端口。 -r 忽略普通的Routing Table,直接將數據包送到遠端主機上。 -s 設置本地主機送出數據包的IP地址。 -t 設置檢測數據包的TOS數值。 -T 使用TCP回應取代UDP資料信息。(默認使用的是UDP回應) -v 詳細顯示指令的執行過程。 -w 設置等待遠端主機回報的時間。 -x 開啟或關閉數據包的正確性檢驗。

使用實例:
1.基本用法:跟蹤我的本地主機連接到百度要經過的路由以及網關的IP
命令:

traceroute www.baidu.com

結果:

[root@localhost ~]# traceroute www.baidu.com traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets1 192.168.74.2 (192.168.74.2) 2.606 ms 2.771 ms 2.950 ms2 211.151.56.57 (211.151.56.57) 0.596 ms 0.598 ms 0.591 ms3 211.151.227.206 (211.151.227.206) 0.546 ms 0.544 ms 0.538 ms4 210.77.139.145 (210.77.139.145) 0.710 ms 0.748 ms 0.801 ms5 202.106.42.101 (202.106.42.101) 6.759 ms 6.945 ms 7.107 ms6 61.148.154.97 (61.148.154.97) 718.908 ms * bt-228-025.bta.net.cn (202.106.228.25) 5.177 ms7 124.65.58.213 (124.65.58.213) 4.343 ms 4.336 ms 4.367 ms8 202.106.35.190 (202.106.35.190) 1.795 ms 61.148.156.138 (61.148.156.138) 1.899 ms 1.951 ms9 * * * 30 * * * [root@localhost ~]#

說明:
記錄按序列號從1開始,每個紀錄就是一跳 ,每跳表示一個網關,我們看到每行有三個時間,單位是 ms,其實就是-q的默認參數。探測數據包向每個網關發送三個數據包后,網關響應后返回的時間;如果您用 traceroute -q 4 www.58.com ,表示向每個網關發送4個數據包。

有時我們traceroute 一臺主機時,會看到有一些行是以星號表示的。出現這樣的情況,可能是防火墻封掉了ICMP的返回信息,所以我們得不到什么相關的數據包返回數據。

有時我們在某一網關處延時比較長,有可能是某臺網關比較阻塞,也可能是物理設備本身的原因。當然如果某臺DNS出現問題時,不能解析主機名、域名時,也會 有延時長的現象;您可以加-n 參數來避免DNS解析,以IP格式輸出數據。

如果在局域網中的不同網段之間,我們可以通過traceroute 來排查問題所在,是主機的問題還是網關的問題。如果我們通過遠程來訪問某臺服務器遇到問題時,我們用到traceroute 追蹤數據包所經過的網關,提交IDC服務商,也有助于解決問題;但目前看來在國內解決這樣的問題是比較困難的,就是我們發現問題所在,IDC服務商也不可能幫助我們解決。

2.跳數設置(只追蹤本地到百度的前10跳的路由或網關IP)
命令:

traceroute -m 10 www.baidu.com

結果:

[root@localhost ~]# traceroute -m 10 www.baidu.com traceroute to www.baidu.com (61.135.169.105), 10 hops max, 40 byte packets1 192.168.74.2 (192.168.74.2) 1.534 ms 1.775 ms 1.961 ms2 211.151.56.1 (211.151.56.1) 0.508 ms 0.514 ms 0.507 ms3 211.151.227.206 (211.151.227.206) 0.571 ms 0.558 ms 0.550 ms4 210.77.139.145 (210.77.139.145) 0.708 ms 0.729 ms 0.785 ms5 202.106.42.101 (202.106.42.101) 7.978 ms 8.155 ms 8.311 ms6 bt-228-037.bta.net.cn (202.106.228.37) 772.460 ms bt-228-025.bta.net.cn (202.106.228.25) 2.152 ms 61.148.154.97 (61.148.154.97) 772.107 ms7 124.65.58.221 (124.65.58.221) 4.875 ms 61.148.146.29 (61.148.146.29) 2.124 ms 124.65.58.221 (124.65.58.221) 4.854 ms8 123.126.6.198 (123.126.6.198) 2.944 ms 61.148.156.6 (61.148.156.6) 3.505 ms 123.126.6.198 (123.126.6.198) 2.885 ms9 * * * 10 * * * [root@localhost ~]#

3.顯示IP地址,不查主機名(不適用DNS把IP地址解析成域名)
命令:

traceroute -n www.baidu.com

結果:

[root@localhost ~]# traceroute -n www.baidu.com traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets1 211.151.74.2 5.430 ms 5.636 ms 5.802 ms2 211.151.56.57 0.627 ms 0.625 ms 0.617 ms3 211.151.227.206 0.575 ms 0.584 ms 0.576 ms4 210.77.139.145 0.703 ms 0.754 ms 0.806 ms5 202.106.42.101 23.683 ms 23.869 ms 23.998 ms6 202.106.228.37 247.101 ms * *7 61.148.146.29 5.256 ms 124.65.58.213 4.386 ms 4.373 ms8 202.106.35.190 1.610 ms 61.148.156.138 1.786 ms 61.148.3.34 2.089 ms9 * * * 30 * * * [root@localhost ~]# traceroute www.baidu.com traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets1 211.151.74.2 (211.151.74.2) 4.671 ms 4.865 ms 5.055 ms2 211.151.56.57 (211.151.56.57) 0.619 ms 0.618 ms 0.612 ms3 211.151.227.206 (211.151.227.206) 0.620 ms 0.642 ms 0.636 ms4 210.77.139.145 (210.77.139.145) 0.720 ms 0.772 ms 0.816 ms5 202.106.42.101 (202.106.42.101) 7.667 ms 7.910 ms 8.012 ms6 bt-228-025.bta.net.cn (202.106.228.25) 2.965 ms 2.440 ms 61.148.154.97 (61.148.154.97) 431.337 ms7 124.65.58.213 (124.65.58.213) 5.134 ms 5.124 ms 5.044 ms8 202.106.35.190 (202.106.35.190) 1.917 ms 2.052 ms 2.059 ms9 * * * 30 * * * [root@localhost ~]#

4.探測包使用的基本UDP端口設置6888
命令:

traceroute -p 6888 www.baidu.com

結果:

[root@localhost ~]# traceroute -p 6888 www.baidu.com traceroute to www.baidu.com (220.181.111.147), 30 hops max, 40 byte packets1 211.151.74.2 (211.151.74.2) 4.927 ms 5.121 ms 5.298 ms2 211.151.56.1 (211.151.56.1) 0.500 ms 0.499 ms 0.509 ms3 211.151.224.90 (211.151.224.90) 0.637 ms 0.631 ms 0.641 ms4 * * *5 220.181.70.98 (220.181.70.98) 5.050 ms 5.313 ms 5.596 ms6 220.181.17.94 (220.181.17.94) 1.665 ms !X * * [root@localhost ~]#

5.把探測包的個數設置為值4(默認探測數據包向每個網關發送3個數據包后,網關響應后返回的時間。這里設置為發送4個探測包)
命令:

traceroute -q 4 www.baidu.com

結果:

[root@localhost ~]# traceroute -q 4 www.baidu.com traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets1 211.151.74.2 (211.151.74.2) 40.633 ms 40.819 ms 41.004 ms 41.188 ms2 211.151.56.57 (211.151.56.57) 0.637 ms 0.633 ms 0.627 ms 0.619 ms3 211.151.227.206 (211.151.227.206) 0.505 ms 0.580 ms 0.571 ms 0.569 ms4 210.77.139.145 (210.77.139.145) 0.753 ms 0.800 ms 0.853 ms 0.904 ms5 202.106.42.101 (202.106.42.101) 7.449 ms 7.543 ms 7.738 ms 7.893 ms6 61.148.154.97 (61.148.154.97) 316.817 ms bt-228-025.bta.net.cn (202.106.228.25) 3.695 ms 3.672 ms *7 124.65.58.213 (124.65.58.213) 3.056 ms 2.993 ms 2.960 ms 61.148.146.29 (61.148.146.29) 2.837 ms8 61.148.3.34 (61.148.3.34) 2.179 ms 2.295 ms 2.442 ms 202.106.35.190 (202.106.35.190) 7.136 ms9 * * * * 30 * * * * [root@localhost ~]#

6.繞過正常的路由表,直接發送到網絡相連的主機
命令:

traceroute -r www.baidu.com

結果:

[root@localhost ~]# traceroute -r www.baidu.com traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets connect: 網絡不可達 [root@localhost ~]#

7.把對外發探測包的等待響應時間設置為3秒

命令:

traceroute -w 3 www.baidu.com

結果:

[root@localhost ~]# traceroute -w 3 www.baidu.com traceroute to www.baidu.com (61.135.169.105), 30 hops max, 40 byte packets1 211.151.74.2 (211.151.74.2) 2.306 ms 2.469 ms 2.650 ms2 211.151.56.1 (211.151.56.1) 0.621 ms 0.613 ms 0.603 ms3 211.151.227.206 (211.151.227.206) 0.557 ms 0.560 ms 0.552 ms4 210.77.139.145 (210.77.139.145) 0.708 ms 0.761 ms 0.817 ms5 202.106.42.101 (202.106.42.101) 7.520 ms 7.774 ms 7.902 ms6 bt-228-025.bta.net.cn (202.106.228.25) 2.890 ms 2.369 ms 61.148.154.97 (61.148.154.97) 471.961 ms7 124.65.58.221 (124.65.58.221) 4.490 ms 4.483 ms 4.472 ms8 123.126.6.198 (123.126.6.198) 2.948 ms 61.148.156.6 (61.148.156.6) 7.688 ms 7.756 ms9 * * * 30 * * * [root@localhost ~]#

windows之tracert

命令格式:

tracert [-d] [-h maximum_hops] [-j host-list] [-w timeout] target_name

參數說明:
該診斷實用程序通過向目的地發送具有不同生存時間 (TL) 的 Internet 控制信息協議 (CMP) 回應報文,以確定至目的地的路由。路徑上的每個路由器都要在轉發該 ICMP 回應報文之前將其 TTL 值至少減 1,因此 TTL 是有效的跳轉計數。當報文的 TTL 值減少到 0 時,路由器向源系統發回 ICMP 超時信息。通過發送 TTL 為 1 的第一個回應報文并且在隨后的發送中每次將 TTL 值加 1,直到目標響應或達到最大 TTL 值,Tracert 可以確定路由。通過檢查中間路由器發發回的 ICMP 超時 (ime Exceeded) 信息,可以確定路由器。注意,有些路由器“安靜”地丟棄生存時間 (TLS) 過期的報文并且對 tracert 無效。

參數:

-d 指定不對計算機名解析地址。 -h maximum_hops 指定查找目標的跳轉的最大數目。 -jcomputer-list 指定在 computer-list 中松散源路由。 -w timeout 等待由 timeout 對每個應答指定的毫秒數。 target_name 目標計算機的名稱。

實例:

C:\Users\Administrator>tracert www.58.comTracing route to www.58.com [221.187.111.30] over a maximum of 30 hops:1 1 ms 1 ms 1 ms 10.58.156.12 1 ms <1 ms <1 ms 10.10.10.13 1 ms 1 ms 1 ms 211.103.193.1294 2 ms 2 ms 2 ms 10.255.109.1295 1 ms 1 ms 3 ms 124.205.98.2056 2 ms 2 ms 2 ms 124.205.98.2537 2 ms 6 ms 1 ms 202.99.1.1258 5 ms 6 ms 5 ms 118.186.0.1139 207 ms * * 118.186.0.10610 8 ms 6 ms 11 ms 124.238.226.20111 6 ms 7 ms 6 ms 219.148.19.17712 12 ms 12 ms 16 ms 219.148.18.11713 14 ms 17 ms 16 ms 219.148.19.12514 13 ms 13 ms 12 ms 202.97.80.11315 * * * Request timed out.16 12 ms 12 ms 17 ms bj141-147-82.bjtelecom.net [219.141.147.82]17 13 ms 13 ms 12 ms 202.97.48.218 * * * Request timed out.19 14 ms 14 ms 12 ms 221.187.224.8520 15 ms 13 ms 12 ms 221.187.104.221 * * * Request timed out.22 15 ms 17 ms 18 ms 221.187.111.30Trace complete.

總結

以上是生活随笔為你收集整理的traceroute命令---Linux学习笔记的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。