【Linux】一步一步学Linux——traceroute命令(167)
00. 目錄
文章目錄
- 00. 目錄
- 01. 命令概述
- 02. 命令格式
- 03. 常用選項(xiàng)
- 04. 參考示例
- 05. 附錄
01. 命令概述
traceroute命令用于追蹤數(shù)據(jù)包在網(wǎng)絡(luò)上的傳輸時(shí)的全部路徑,它默認(rèn)發(fā)送的數(shù)據(jù)包大小是40字節(jié)。通過(guò)traceroute我們可以知道信息從你的計(jì)算機(jī)到互聯(lián)網(wǎng)另一端的主機(jī)是走的什么路徑。當(dāng)然每次數(shù)據(jù)包由某一同樣的出發(fā)點(diǎn)(source)到達(dá)某一同樣的目的地(destination)走的路徑可能會(huì)不一樣,但基本上來(lái)說(shuō)大部分時(shí)候所走的路由是相同的。
traceroute通過(guò)發(fā)送小的數(shù)據(jù)包到目的設(shè)備直到其返回,來(lái)測(cè)量其需要多長(zhǎng)時(shí)間。一條路徑上的每個(gè)設(shè)備traceroute要測(cè)3次。輸出結(jié)果中包括每次測(cè)試的時(shí)間(ms)和設(shè)備的名稱(如有的話)及其ip地址。
02. 命令格式
格式:traceroute [選項(xiàng)] [參數(shù)]03. 常用選項(xiàng)
-d 使用Socket層級(jí)的排錯(cuò)功能 -f<存活數(shù)值> 設(shè)置第一個(gè)檢測(cè)數(shù)據(jù)包的存活數(shù)值TTL的大小 -F 設(shè)置勿離斷位 -g<網(wǎng)關(guān)> 設(shè)置來(lái)源路由網(wǎng)關(guān),最多可設(shè)置8個(gè) -i<網(wǎng)絡(luò)界面> 使用指定的網(wǎng)絡(luò)界面送出數(shù)據(jù)包 -I 使用ICMP回應(yīng)取代UDP資料信息 -m<存活數(shù)值> 設(shè)置檢測(cè)數(shù)據(jù)包的最大存活數(shù)值TTL的大小 -n 直接使用IP地址而非主機(jī)名稱 -p<通信端口> 設(shè)置UDP傳輸協(xié)議的通信端口 -r 忽略普通的Routing Table,直接將數(shù)據(jù)包送到遠(yuǎn)端主機(jī)上 -s<來(lái)源地址> 設(shè)置本地主機(jī)送出數(shù)據(jù)包的IP地址 -t<服務(wù)類型> 設(shè)置檢測(cè)數(shù)據(jù)包的TOS數(shù)值 -v 詳細(xì)顯示指令的執(zhí)行過(guò)程 -w 設(shè)置等待遠(yuǎn)端主機(jī)回報(bào)的時(shí)間 -x 開(kāi)啟或關(guān)閉數(shù)據(jù)包的正確性檢驗(yàn)04. 參考示例
4.1 追蹤本地?cái)?shù)據(jù)包到百度的傳輸路徑
[root@localhost ~]# traceroute www.baidu.com traceroute to www.baidu.com (183.232.231.172), 30 hops max4.2 設(shè)置跳數(shù)
[root@localhost ~]# traceroute -m 7 www.baidu.com traceroute to www.baidu.com (183.232.231.174), 7 hops max, 60 byte packets1 gateway (172.16.0.1) 0.907 ms 2.072 ms 3.795 ms2 * * *4.3 顯示IP地址,不查主機(jī)名
[root@localhost ~]# traceroute -n www.baidu.com traceroute to www.baidu.com (183.232.231.174), 30 hops max, 60 byte packets1 172.16.0.1 1.103 ms 2.567 ms 3.163 ms2 * * *4.4 設(shè)置探測(cè)包的個(gè)數(shù)
[root@localhost ~]# traceroute -q 4 www.baidu.com traceroute to www.baidu.com (183.232.231.172), 30 hops max, 60 byte packets1 gateway (172.16.0.1) 0.927 ms 2.614 ms 3.645 ms 4.239 ms2 * * * *4.5 設(shè)置等待響應(yīng)時(shí)間
[root@localhost ~]# traceroute -w 3 www.baidu.com traceroute to www.baidu.com (183.232.231.172), 30 hops max, 60 byte packets1 gateway (172.16.0.1) 2.017 ms 3.584 ms 4.136 ms2 * * *4.6 繞過(guò)正常的路由表,直接發(fā)送到網(wǎng)絡(luò)相連的主機(jī)
[root@localhost ~]# traceroute -r www.baidu.com traceroute to www.baidu.com (183.232.231.174), 30 hops max, 60 byte packets connect: 網(wǎng)絡(luò)不可達(dá) [root@localhost ~]#4.7 探測(cè)包使用的基本UDP端口設(shè)置10086
[root@localhost ~]# traceroute -p 10086 www.baidu.com traceroute to www.baidu.com (183.232.231.172), 30 hops max, 60 byte packets1 gateway (172.16.0.1) 1.055 ms 2.671 ms 3.537 ms2 * * *4.8 Traceroute工作原理
Traceroute最簡(jiǎn)單的基本用法是: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)?了,所以該路由器會(huì)將此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來(lái)發(fā)現(xiàn)另一個(gè)路由器,這個(gè)重復(fù)的動(dòng)作一直持續(xù)到某個(gè)datagram 抵達(dá)目的地。當(dāng)datagram到達(dá)目的地后,該主機(jī)并不會(huì)送回ICMP time exceeded消息,因?yàn)樗咽悄康牡亓?#xff0c;那么traceroute如何得知目的地到達(dá)了呢?
Traceroute在送出UDP datagrams到目的地時(shí),它所選擇送達(dá)的port number 是一個(gè)一般應(yīng)用程序都不會(huì)用的號(hào)碼(30000 以上),所以當(dāng)此UDP datagram 到達(dá)目的地后該主機(jī)會(huì)送回一個(gè)「ICMP port unreachable」的消息,而當(dāng)traceroute 收到這個(gè)消息時(shí),便知道目的地已經(jīng)到達(dá)了。所以traceroute 在Server端也是沒(méi)有所謂的Daemon 程式。
Traceroute提取發(fā) ICMP TTL到期消息設(shè)備的IP地址并作域名解析。每次 ,Traceroute都打印出一系列數(shù)據(jù),包括所經(jīng)過(guò)的路由設(shè)備的域名及 IP地址,三個(gè)包每次來(lái)回所花時(shí)間。
05. 附錄
參考:【Linux】一步一步學(xué)Linux系列教程匯總
總結(jié)
以上是生活随笔為你收集整理的【Linux】一步一步学Linux——traceroute命令(167)的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問(wèn)題。
- 上一篇: 【Linux】一步一步学Linux——n
- 下一篇: 【Linux】一步一步学Linux——t