通過traceroute
可以知道信息從計(jì)算機(jī)到互聯(lián)網(wǎng)另一端的主機(jī)數(shù)據(jù)經(jīng)過什么路徑。當(dāng)然每次數(shù)據(jù)包由某一同樣的出發(fā)點(diǎn)(source)到達(dá)某一同樣的目的地(destination)走的路徑可能會不一樣,但基本上來說大部分時(shí)候所走的路由是相同的。linux系統(tǒng)中,我們稱之為traceroute
,在MS Windows中為tracert
。 traceroute
通過發(fā)送小的數(shù)據(jù)包到目的設(shè)備直到其返回,來測量其需要多長時(shí)間。一條路徑上的每個(gè)設(shè)備traceroute
要測3
次。輸出結(jié)果中包括每次測試的時(shí)間(ms)和設(shè)備的名稱(如有的話)及其IP地址。
在大多數(shù)情況下,在linux主機(jī)系統(tǒng)可直接執(zhí)行命令行:
traceroute hostname
而在Windows系統(tǒng)下是執(zhí)行tracert
的命令:
tracert hostname
traceroute[參數(shù)][主機(jī)]
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í)秒數(shù)>][主機(jī)名稱或IP地址][數(shù)據(jù)包大小]
-d
使用Socket層級的排錯(cuò)功能。-f
設(shè)置第一個(gè)檢測數(shù)據(jù)包的存活數(shù)值TTL的大小。-F
設(shè)置勿離斷位。-g
設(shè)置來源路由網(wǎng)關(guān),最多可設(shè)置8個(gè)。-i
使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包。-I
使用ICMP回應(yīng)取代UDP資料信息。-m
設(shè)置檢測數(shù)據(jù)包的最大存活數(shù)值TTL的大小。-n
直接使用IP地址而非主機(jī)名稱。-p
設(shè)置UDP傳輸協(xié)議的通信端口。-r
忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上。-s
設(shè)置本地主機(jī)送出數(shù)據(jù)包的IP地址。-t
設(shè)置檢測數(shù)據(jù)包的TOS數(shù)值。-v
詳細(xì)顯示指令的執(zhí)行過程。-w
設(shè)置等待遠(yuǎn)端主機(jī)回報(bào)的時(shí)間。-x
開啟或關(guān)閉數(shù)據(jù)包的正確性檢驗(yàn)。注意:有的系統(tǒng)(如:Centos7)上默認(rèn)不安裝
traceroute
命令工具,那么就要使用 root 用戶先安裝好了再使用。使用yum install traceroute
命令來安裝即可。
traceroute
用法簡單、最常用的用法命令:
traceroute www.yiibai.com
輸出:
[yiibai@localhost ~]$ traceroute www.yiibai.com
traceroute to www.yiibai.com (112.124.103.85), 30 hops max, 60 byte packets
1 112.66.64.1 (112.66.64.1) 3.789 ms 5.548 ms 2.798 ms
2 218.77.139.177 (218.77.139.177) 6.378 ms 4.787 ms 4.786 ms
3 218.77.137.73 (218.77.137.73) 30.638 ms 29.539 ms 31.520 ms
4 202.97.85.94 (202.97.85.94) 46.474 ms * *
5 * * *
6 * 115.236.101.209 (115.236.101.209) 48.751 ms 115.236.101.217 (115.236.101.217) 47.206 ms
7 42.120.247.73 (42.120.247.73) 47.765 ms 42.120.247.109 (42.120.247.109) 47.337 ms 47.383 ms
8 106.11.144.18 (106.11.144.18) 46.717 ms 106.11.37.9 (106.11.37.9) 47.143 ms 106.11.144.30 (106.11.144.30) 54.233 ms
9 * * *
10 112.124.103.85 (112.124.103.85) 45.906 ms 45.463 ms 46.325 ms
[yiibai@localhost ~]$
說明:
記錄按序列號從1
開始,每個(gè)紀(jì)錄就是一跳 ,每跳表示一個(gè)網(wǎng)關(guān),看到每行有三個(gè)時(shí)間,單位是 ms,其實(shí)就是-q
的默認(rèn)參數(shù)。探測數(shù)據(jù)包向每個(gè)網(wǎng)關(guān)發(fā)送三個(gè)數(shù)據(jù)包后,網(wǎng)關(guān)響應(yīng)后返回的時(shí)間;如果使用 traceroute -q 4 www.yiibai.com
,表示向每個(gè)網(wǎng)關(guān)發(fā)送4個(gè)數(shù)據(jù)包。
有時(shí)我們traceroute
一臺主機(jī)時(shí),會看到有一些行是以星號表示的。出現(xiàn)這樣的情況,可能是防火墻封掉了ICMP的返回信息,所以我們得不到什么相關(guān)的數(shù)據(jù)包返回?cái)?shù)據(jù)。
有時(shí)在某一網(wǎng)關(guān)處延時(shí)比較長,有可能是某臺網(wǎng)關(guān)比較阻塞,也可能是物理設(shè)備本身的原因。當(dāng)然如果某臺DNS出現(xiàn)問題時(shí),不能解析主機(jī)名、域名時(shí),也會 有延時(shí)長的現(xiàn)象;您可以加-n
參數(shù)來避免DNS解析,以IP格式輸出數(shù)據(jù)。
如果在局域網(wǎng)中的不同網(wǎng)段之間,可以通過traceroute
來排查問題所在,是主機(jī)的問題還是網(wǎng)關(guān)的問題。如果通過遠(yuǎn)程來訪問某臺服務(wù)器遇到問題時(shí),我們用到 traceroute
追蹤數(shù)據(jù)包所經(jīng)過的網(wǎng)關(guān),提交IDC服務(wù)商,也有助于解決問題;但目前看來在國內(nèi)解決這樣的問題是比較困難的,就是發(fā)現(xiàn)問題所在,IDC服務(wù)商也不可能幫助我們解決。
命令:
traceroute -m 10 www.yiibai.com
輸出:
[yiibai@localhost ~]$ traceroute -m 10 www.baidu.com
traceroute to www.baidu.com (14.215.177.37), 10 hops max, 60 byte packets
1 112.66.64.1 (112.66.64.1) 24.111 ms 24.168 ms 23.892 ms
2 218.77.141.13 (218.77.141.13) 2.862 ms 2.613 ms 3.113 ms
3 218.77.150.13 (218.77.150.13) 13.543 ms 218.77.150.169 (218.77.150.169) 15.057 ms 218.77.139.37 (218.77.139.37) 11.389 ms
4 113.108.208.26 (113.108.208.26) 14.364 ms 14.109 ms 13.855 ms
5 * * *
6 14.29.121.194 (14.29.121.194) 13.087 ms 14.29.117.246 (14.29.117.246) 13.361 ms 13.780 ms
7 * * *
8 * * *
9 * * *
10 * * *
[yiibai@localhost ~]$
命令:
traceroute -n www.yiibai.com
輸出:
[yiibai@localhost ~]$ traceroute -n www.yiibai.com
traceroute to www.yiibai.com (112.124.103.85), 30 hops max, 60 byte packets
1 112.66.64.1 5.303 ms 5.710 ms 4.159 ms
2 218.77.139.177 12.319 ms 4.822 ms 4.063 ms
3 218.77.137.73 28.319 ms 31.587 ms 30.583 ms
4 202.97.85.94 46.240 ms * 46.832 ms
5 * 220.191.200.22 48.562 ms 220.191.200.14 47.844 ms
6 115.236.101.213 48.804 ms 115.236.101.217 47.830 ms 47.916 ms
7 42.120.247.105 49.330 ms 42.120.247.73 47.251 ms 42.120.247.57 49.740 ms
8 106.11.144.26 46.769 ms 106.11.37.9 47.537 ms 106.11.144.30 46.512 ms
9 * * *
10 112.124.103.85 46.267 ms 46.497 ms 45.589 ms
[yiibai@localhost ~]$
[yiibai@localhost ~]$ traceroute www.yiibai.com
traceroute to www.yiibai.com (112.124.103.85), 30 hops max, 60 byte packets
1 112.66.64.1 (112.66.64.1) 136.730 ms 137.479 ms 137.031 ms
2 218.77.139.177 (218.77.139.177) 5.759 ms 5.458 ms 5.009 ms
3 218.77.137.73 (218.77.137.73) 33.451 ms 33.259 ms 32.826 ms
4 202.97.85.94 (202.97.85.94) 46.738 ms 46.541 ms *
5 220.191.200.22 (220.191.200.22) 47.521 ms 49.346 ms 48.927 ms
6 115.236.101.217 (115.236.101.217) 48.678 ms 48.109 ms 115.236.101.213 (115.236.101.213) 50.423 ms
7 42.120.247.73 (42.120.247.73) 47.478 ms 42.120.247.89 (42.120.247.89) 51.216 ms 42.120.247.73 (42.120.247.73) 49.460 ms
8 106.11.37.9 (106.11.37.9) 48.543 ms 106.11.144.18 (106.11.144.18) 46.301 ms 106.11.37.9 (106.11.37.9) 47.242 ms
9 * * *
10 112.124.103.85 (112.124.103.85) 45.647 ms 46.231 ms 45.803 ms
[yiibai@localhost ~]$
命令:
traceroute -p 1688 www.baidu.com
輸出:
[yiibai@localhost ~]$ traceroute -p 1688 www.baidu.com
traceroute to www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets
1 112.66.64.1 (112.66.64.1) 5.181 ms 6.403 ms 6.980 ms
2 218.77.152.5 (218.77.152.5) 2.537 ms 4.478 ms 4.229 ms
3 218.77.150.13 (218.77.150.13) 14.014 ms 218.77.150.177 (218.77.150.177) 14.449 ms 218.77.139.37 (218.77.139.37) 12.531 ms
4 113.96.0.117 (113.96.0.117) 19.652 ms 19.407 ms 18.873 ms
5 * * *
6 14.29.121.194 (14.29.121.194) 13.897 ms 14.29.117.242 (14.29.117.242) 13.578 ms 14.29.121.198 (14.29.121.198) 12.940 ms
7 * * *
命令:
traceroute -q 5 www.yiibai.com
輸出:
[yiibai@localhost ~]$ traceroute -q 5 www.yiibai.com
traceroute to www.yiibai.com (112.124.103.85), 30 hops max, 60 byte packets
1 112.66.64.1 (112.66.64.1) 3.569 ms 3.822 ms 4.244 ms 3.931 ms 4.283 ms
2 218.77.139.177 (218.77.139.177) 4.032 ms 3.743 ms 3.255 ms 2.997 ms 3.193 ms
3 218.77.137.73 (218.77.137.73) 32.480 ms 31.949 ms 31.635 ms 30.837 ms 30.040 ms
4 202.97.85.94 (202.97.85.94) 47.288 ms * * 46.340 ms *
5 * * * * *
6 * 115.236.101.209 (115.236.101.209) 47.419 ms * * *
7 42.120.247.105 (42.120.247.105) 49.506 ms 42.120.247.73 (42.120.247.73) 46.319 ms 47.250 ms 42.120.247.105 (42.120.247.105) 47.711 ms 42.120.247.89 (42.120.247.89) 48.121 ms
8 106.11.144.22 (106.11.144.22) 45.250 ms 45.780 ms 106.11.144.30 (106.11.144.30) 46.084 ms 46.115 ms 140.205.19.61 (140.205.19.61) 47.716 ms
9 * * * * *
10 112.124.103.85 (112.124.103.85) 45.264 ms 45.793 ms 46.360 ms 45.483 ms 45.505 ms
[yiibai@localhost ~]$
命令:
traceroute -r www.baidu.com
輸出:
[yiibai@localhost ~]$ traceroute -r www.baidu.com
traceroute to www.baidu.com (14.215.177.37), 30 hops max, 60 byte packets
connect: Network is unreachable
[yiibai@localhost ~]$ ping www.baidu.com
PING www.baidu.com (14.215.177.37) 56(84) bytes of data.
64 bytes from 14.215.177.37 (14.215.177.37): icmp_seq=1 ttl=57 time=12.3 ms
64 bytes from 14.215.177.37 (14.215.177.37): icmp_seq=2 ttl=57 time=12.0 ms
^C
--- www.baidu.com ping statistics ---
2 packets transmitted, 2 received, 0% packet loss, time 1002ms
rtt min/avg/max/mdev = 12.071/12.206/12.342/0.174 ms
[yiibai@localhost ~]$ traceroute -r www.yiibai.com
traceroute to www.yiibai.com (112.124.103.85), 30 hops max, 60 byte packets
connect: Network is unreachable
[yiibai@localhost ~]$
命令:
traceroute -w 3 www.baidu.com
輸出:
[yiibai@localhost ~]$ traceroute -w 3 www.baidu.com
traceroute to www.baidu.com (14.215.177.38), 30 hops max, 60 byte packets
1 112.66.64.1 (112.66.64.1) 6.215 ms 5.765 ms 5.534 ms
2 218.77.152.5 (218.77.152.5) 2.448 ms 4.708 ms 4.322 ms
3 218.77.139.37 (218.77.139.37) 13.081 ms 218.77.150.177 (218.77.150.177) 12.037 ms 218.77.139.37 (218.77.139.37) 12.508 ms
4 113.96.0.117 (113.96.0.117) 22.515 ms 22.018 ms 21.789 ms
5 * * *
6 14.29.121.198 (14.29.121.198) 12.725 ms 14.29.117.242 (14.29.117.242) 15.920 ms 14.29.121.206 (14.29.121.206) 12.866 ms
7 * * *
Traceroute的工作原理:
Traceroute最簡單的基本用法是:traceroute hostname
Traceroute程序的設(shè)計(jì)是利用ICMP及IP header的TTL(Time To Live)欄位(field)。首先,traceroute送出一個(gè)TTL是1的IP datagram(其實(shí),每次送出的為3個(gè)40字節(jié)的包,包括源地址,目的地址和包發(fā)出的時(shí)間標(biāo)簽)到目的地,當(dāng)路徑上的第一個(gè)路由器(router)收到這個(gè)datagram時(shí),它將TTL減1。此時(shí),TTL變?yōu)?了,所以該路由器會將此datagram丟掉,并送回一個(gè)「ICMP time exceeded」消息(包括發(fā)IP包的源地址,IP包的所有內(nèi)容及路由器的IP地址),traceroute 收到這個(gè)消息后,便知道這個(gè)路由器存在于這個(gè)路徑上,接著traceroute 再送出另一個(gè)TTL是 2 的datagram,發(fā)現(xiàn)第 2 個(gè)路由器…… traceroute 每次將送出的datagram的TTL 加1來發(fā)現(xiàn)另一個(gè)路由器,這個(gè)重復(fù)的動(dòng)作一直持續(xù)到某個(gè)datagram 抵達(dá)目的地。當(dāng)datagram到達(dá)目的地后,該主機(jī)并不會送回ICMP time exceeded消息,因?yàn)樗咽悄康牡亓?,那么traceroute如何得知目的地到達(dá)了呢?
Traceroute在送出UDP datagrams到目的地時(shí),它所選擇送達(dá)的port number 是一個(gè)一般應(yīng)用程序都不會用的號碼(30000 以上),所以當(dāng)此UDP datagram 到達(dá)目的地后該主機(jī)會送回一個(gè)「ICMP port unreachable」的消息,而當(dāng)traceroute 收到這個(gè)消息時(shí),便知道目的地已經(jīng)到達(dá)了。所以traceroute 在Server端也是沒有所謂的Daemon 程式。
Traceroute提取發(fā) ICMP TTL到期消息設(shè)備的IP地址并作域名解析。每次 ,Traceroute都打印出一系列數(shù)據(jù),包括所經(jīng)過的路由設(shè)備的域名及 IP地址,三個(gè)包每次來回所花時(shí)間。
格式:
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
該診斷實(shí)用程序通過向目的地發(fā)送具有不同生存時(shí)間 (TL) 的 Internet 控制信息協(xié)議 (CMP) 回應(yīng)報(bào)文,以確定至目的地的路由。路徑上的每個(gè)路由器都要在轉(zhuǎn)發(fā)該 ICMP 回應(yīng)報(bào)文之前將其 TTL 值至少減 1,因此 TTL 是有效的跳轉(zhuǎn)計(jì)數(shù)。當(dāng)報(bào)文的 TTL 值減少到 0 時(shí),路由器向源系統(tǒng)發(fā)回 ICMP 超時(shí)信息。通過發(fā)送 TTL 為 1 的第一個(gè)回應(yīng)報(bào)文并且在隨后的發(fā)送中每次將 TTL 值加 1,直到目標(biāo)響應(yīng)或達(dá)到最大 TTL 值,Tracert 可以確定路由。通過檢查中間路由器發(fā)發(fā)回的 ICMP 超時(shí) (ime Exceeded) 信息,可以確定路由器。注意,有些路由器“安靜”地丟棄生存時(shí)間 (TLS) 過期的報(bào)文并且對 tracert 無效。
參數(shù):
-d
指定不對計(jì)算機(jī)名解析地址。-h maximum_hops
指定查找目標(biāo)的跳轉(zhuǎn)的最大數(shù)目。-jcomputer-list
指定在 computer-list 中松散源路由。-w timeout
等待由 timeout 對每個(gè)應(yīng)答指定的毫秒數(shù)。target_name
目標(biāo)計(jì)算機(jī)的名稱。Microsoft Windows [版本 10.0.10586]
(c) 2015 Microsoft Corporation。保留所有權(quán)利。
C:\Users\Administrator>tracert www.yiibai.com
通過最多 30 個(gè)躍點(diǎn)跟蹤
到 www.yiibai.com [112.124.103.85] 的路由:
1 2 ms 2 ms 3 ms 112.66.64.1
2 2 ms 3 ms 3 ms 218.77.139.177
3 27 ms 30 ms 27 ms 218.77.137.73
4 * * 45 ms 202.97.85.94
5 46 ms * 45 ms 220.191.200.14
6 46 ms 46 ms 46 ms 115.236.101.213
7 47 ms 46 ms 46 ms 42.120.247.73
8 46 ms 45 ms 46 ms 106.11.37.13
9 * * * 請求超時(shí)。
10 45 ms 45 ms 45 ms 112.124.103.85
跟蹤完成。
C:\Users\Administrator>