linux命令总结之traceroute命令
通過traceroute我們可以知道信息從你的計算機到互聯(lián)網(wǎng)另一端的主機是走的什么路徑。當然每次數(shù)據(jù)包由某一同樣的出發(fā)點(source)到達某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時候所走的路由是相同的。linux系統(tǒng)中,我們稱之為traceroute,在MS?Windows中為tracert。?traceroute通過發(fā)送小的數(shù)據(jù)包到目的設(shè)備直到其返回,來測量其需要多長時間。一條路徑上的每個設(shè)備traceroute要測3次。輸出結(jié)果中包括每次測試的時間(ms)和設(shè)備的名稱(如有的話)及其IP地址。
在大多數(shù)情況下,我們會在linux主機系統(tǒng)下,直接執(zhí)行命令行:traceroute?hostname
而在Windows系統(tǒng)下是執(zhí)行tracert的命令:tracert?hostname
1.命令格式:
traceroute[參數(shù)][主機]
2.命令功能:
traceroute指令讓你追蹤網(wǎng)絡(luò)數(shù)據(jù)包的路由途徑,預(yù)設(shè)數(shù)據(jù)包大小是40Bytes,用戶可另行設(shè)置。
具體參數(shù)格式:traceroute?[-dFlnrvx][-f<存活數(shù)值>][-g<網(wǎng)關(guān)>...][-i<網(wǎng)絡(luò)界面>][-m<存活數(shù)值>][-p<通信端口>][-s<來源地址>][-t<服務(wù)類型>][-w<超時秒數(shù)>][主機名稱或IP地址][數(shù)據(jù)包大小]
3.命令參數(shù):
-d?使用Socket層級的排錯功能。
-f?設(shè)置第一個檢測數(shù)據(jù)包的存活數(shù)值TTL的大小。
-F?設(shè)置勿離斷位。
-g?設(shè)置來源路由網(wǎng)關(guān),最多可設(shè)置8個。
-i?使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包。
-I?使用ICMP回應(yīng)取代UDP資料信息。
-m?設(shè)置檢測數(shù)據(jù)包的最大存活數(shù)值TTL的大小。
-n?直接使用IP地址而非主機名稱。
-p?設(shè)置UDP傳輸協(xié)議的通信端口。
-r?忽略普通的Routing?Table,直接將數(shù)據(jù)包送到遠端主機上。
-s?設(shè)置本地主機送出數(shù)據(jù)包的IP地址。
-t?設(shè)置檢測數(shù)據(jù)包的TOS數(shù)值。
-v?詳細顯示指令的執(zhí)行過程。
-w?設(shè)置等待遠端主機回報的時間。
-x?開啟或關(guān)閉數(shù)據(jù)包的正確性檢驗。
4.使用實例:
實例1:traceroute?用法簡單、最常用的用法
命令: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 * * *說明:
記錄按序列號從1開始,每個紀錄就是一跳?,每跳表示一個網(wǎng)關(guān),我們看到每行有三個時間,單位是?ms,其實就是-q的默認參數(shù)。探測數(shù)據(jù)包向每個網(wǎng)關(guān)發(fā)送三個數(shù)據(jù)包后,網(wǎng)關(guān)響應(yīng)后返回的時間;如果您用?traceroute?-q?4?www.58.com?,表示向每個網(wǎng)關(guān)發(fā)送4個數(shù)據(jù)包。
有時我們traceroute?一臺主機時,會看到有一些行是以星號表示的。出現(xiàn)這樣的情況,可能是防火墻封掉了ICMP的返回信息,所以我們得不到什么相關(guān)的數(shù)據(jù)包返回數(shù)據(jù)。
有時我們在某一網(wǎng)關(guān)處延時比較長,有可能是某臺網(wǎng)關(guān)比較阻塞,也可能是物理設(shè)備本身的原因。當然如果某臺DNS出現(xiàn)問題時,不能解析主機名、域名時,也會?有延時長的現(xiàn)象;您可以加-n?參數(shù)來避免DNS解析,以IP格式輸出數(shù)據(jù)。
如果在局域網(wǎng)中的不同網(wǎng)段之間,我們可以通過traceroute?來排查問題所在,是主機的問題還是網(wǎng)關(guān)的問題。如果我們通過遠程來訪問某臺服務(wù)器遇到問題時,我們用到traceroute?追蹤數(shù)據(jù)包所經(jīng)過的網(wǎng)關(guān),提交IDC服務(wù)商,也有助于解決問題;但目前看來在國內(nèi)解決這樣的問題是比較困難的,就是我們發(fā)現(xiàn)問題所在,IDC服務(wù)商也不可能幫助我們解決。
實例2:跳數(shù)設(shè)置
命令: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 * * *實例3:顯示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 packets211.151.74.2 5.430 ms 5.636 ms 5.802 ms211.151.56.57 0.627 ms 0.625 ms 0.617 ms211.151.227.206 0.575 ms 0.584 ms 0.576 ms210.77.139.145 0.703 ms 0.754 ms 0.806 ms202.106.42.101 23.683 ms 23.869 ms 23.998 ms202.106.228.37 247.101 ms * *61.148.146.29 5.256 ms 124.65.58.213 4.386 ms 4.373 ms202.106.35.190 1.610 ms 61.148.156.138 1.786 ms 61.148.3.34 2.089 ms* * ** * * [root@localhost ~]# traceroute www.baidu.com traceroute to www.baidu.com (61.135.169.125), 30 hops max, 40 byte packets211.151.74.2 (211.151.74.2) 4.671 ms 4.865 ms 5.055 ms211.151.56.57 (211.151.56.57) 0.619 ms 0.618 ms 0.612 ms211.151.227.206 (211.151.227.206) 0.620 ms 0.642 ms 0.636 ms210.77.139.145 (210.77.139.145) 0.720 ms 0.772 ms 0.816 ms202.106.42.101 (202.106.42.101) 7.667 ms 7.910 ms 8.012 msbt-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 ms124.65.58.213 (124.65.58.213) 5.134 ms 5.124 ms 5.044 ms202.106.35.190 (202.106.35.190) 1.917 ms 2.052 ms 2.059 ms* * ** * * [root@localhost ~]#實例4:探測包使用的基本UDP端口設(shè)置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 * *實例5:把探測包的個數(shù)設(shè)置為值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 * * * *實例6:繞過正常的路由表,直接發(fā)送到網(wǎng)絡(luò)相連的主機
命令:?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: 網(wǎng)絡(luò)不可達實例7:把對外發(fā)探測包的等待響應(yīng)時間設(shè)置為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 * * *Traceroute的工作原理:
Traceroute最簡單的基本用法是:traceroute?hostname
Traceroute程序的設(shè)計是利用ICMP及IP?header的TTL(Time?To?Live)欄位(field)。首先,traceroute送出一個TTL是1的IP?datagram(其實,每次送出的為3個40字節(jié)的包,包括源地址,目的地址和包發(fā)出的時間標簽)到目的地,當路徑上的第一個路由器(router)收到這個datagram時,它將TTL減1。此時,TTL變?yōu)?了,所以該路由器會將此datagram丟掉,并送回一個「ICMP?time?exceeded」消息(包括發(fā)IP包的源地址,IP包的所有內(nèi)容及路由器的IP地址),traceroute?收到這個消息后,便知道這個路由器存在于這個路徑上,接著traceroute?再送出另一個TTL是2?的datagram,發(fā)現(xiàn)第2?個路由器......?traceroute?每次將送出的datagram的TTL?加1來發(fā)現(xiàn)另一個路由器,這個重復(fù)的動作一直持續(xù)到某個datagram?抵達目的地。當datagram到達目的地后,該主機并不會送回ICMP?time?exceeded消息,因為它已是目的地了,那么traceroute如何得知目的地到達了呢?
Traceroute在送出UDP?datagrams到目的地時,它所選擇送達的port?number?是一個一般應(yīng)用程序都不會用的號碼(30000?以上),所以當此UDP?datagram?到達目的地后該主機會送回一個「ICMP?port?unreachable」的消息,而當traceroute?收到這個消息時,便知道目的地已經(jīng)到達了。所以traceroute?在Server端也是沒有所謂的Daemon?程式。
Traceroute提取發(fā)?ICMP?TTL到期消息設(shè)備的IP地址并作域名解析。每次?,Traceroute都打印出一系列數(shù)據(jù),包括所經(jīng)過的路由設(shè)備的域名及?IP地址,三個包每次來回所花時間。
windows之tracert:
格式:
tracert?[-d]?[-h?maximum_hops]?[-j?host-list]?[-w?timeout]?target_name
參數(shù)說明:
tracert?[-d]?[-h?maximum_hops]?[-j?computer-list]?[-w?timeout]?target_name
該診斷實用程序通過向目的地發(fā)送具有不同生存時間?(TL)?的?Internet?控制信息協(xié)議?(CMP)?回應(yīng)報文,以確定至目的地的路由。路徑上的每個路由器都要在轉(zhuǎn)發(fā)該?ICMP?回應(yīng)報文之前將其?TTL?值至少減?1,因此?TTL?是有效的跳轉(zhuǎn)計數(shù)。當報文的?TTL?值減少到?0?時,路由器向源系統(tǒng)發(fā)回?ICMP?超時信息。通過發(fā)送?TTL?為?1?的第一個回應(yīng)報文并且在隨后的發(fā)送中每次將?TTL?值加?1,直到目標響應(yīng)或達到最大?TTL?值,Tracert?可以確定路由。通過檢查中間路由器發(fā)發(fā)回的?ICMP?超時?(ime?Exceeded)?信息,可以確定路由器。注意,有些路由器“安靜”地丟棄生存時間?(TLS)?過期的報文并且對?tracert?無效。
參數(shù):
-d?指定不對計算機名解析地址。
-h?maximum_hops?指定查找目標的跳轉(zhuǎn)的最大數(shù)目。
-jcomputer-list?指定在?computer-list?中松散源路由。
-w?timeout?等待由?timeout?對每個應(yīng)答指定的毫秒數(shù)。
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.?
轉(zhuǎn)載于:https://www.cnblogs.com/ginvip/p/6368460.html
總結(jié)
以上是生活随笔為你收集整理的linux命令总结之traceroute命令的全部內(nèi)容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: DFS——记忆化搜索——动态规划
- 下一篇: 阿里云服务器1M带宽是多少