溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務(wù)條款》

Linux基礎(chǔ)命令traceroute的用法

發(fā)布時間:2021-08-31 23:00:44 來源:億速云 閱讀:182 作者:chen 欄目:建站服務(wù)器

這篇文章主要介紹“Linux基礎(chǔ)命令traceroute的用法”,在日常操作中,相信很多人在Linux基礎(chǔ)命令traceroute的用法問題上存在疑惑,小編查閱了各式資料,整理出簡單好用的操作方法,希望對大家解答”Linux基礎(chǔ)命令traceroute的用法”的疑惑有所幫助!接下來,請跟著小編一起來學(xué)習(xí)吧!

traceroute

traceroute指令輸出到目標(biāo)主機(jī)的路由包。Traceroute跟蹤從IP網(wǎng)絡(luò)到給定主機(jī)的路由數(shù)據(jù)包。它利用IP協(xié)議的生存時間(TTL)字段,并試圖在通往主機(jī)的路徑上從每個網(wǎng)關(guān)激發(fā)ICMP TIME_SUBERS響應(yīng)。

traceroute6等價于“traceroute -6

唯一需要的參數(shù)是目標(biāo)主機(jī)的名稱或IP地址。探測數(shù)據(jù)包的總大小(IPv 4默認(rèn)為60字節(jié),IPv 6為80字節(jié))是一個可選參數(shù)。在某些情況下,可以忽略指定的大小或?qū)⑵湓黾拥阶钚≈怠?/p>

該程序試圖跟蹤IP數(shù)據(jù)包將遵循的路由到某些Internet主機(jī),方法是使用一個小的ttl(生命時間)啟動探測包,然后從網(wǎng)關(guān)偵聽ICMP“時間超過”的答復(fù)。我們以1開頭,然后增加1,直到我們得到一個ICMP“端口不可達(dá)”(或TCP重置),這意味著我們到達(dá)了“主機(jī)”,或者達(dá)到了最大值(默認(rèn)為30跳)。在每個ttl設(shè)置處發(fā)送三個探針(默認(rèn)情況下),并打印一行,顯示每個探針的ttl、網(wǎng)關(guān)地址和往返時間。在請求時,可以在地址之后添加其他信息。如果探測答案來自不同的網(wǎng)關(guān),則將打印每個響應(yīng)系統(tǒng)的地址。如果在5.0秒(默認(rèn))內(nèi)沒有響應(yīng),則會為該探針打印一個“*”(星號)。

追蹤結(jié)束后,可以打印一些附加注釋:!h、!n或!P(主機(jī)、網(wǎng)絡(luò)或協(xié)議不可達(dá))、!s(源路由失敗)、!F(所需碎片化)、!X(管理上禁止通信)、!v(主機(jī)優(yōu)先級沖突)、!C(有效的優(yōu)先截止),或!<num>(ICMP不可達(dá)代碼<num>)。如果幾乎所有的探測器都導(dǎo)致某種無法到達(dá)的情況,Traceroute就會放棄并退出。

我們不希望目標(biāo)主機(jī)處理UDP探測包,因此目標(biāo)端口被設(shè)置為一個不太可能的值(您可以使用-p標(biāo)志更改它)。ICMP或TCP跟蹤不存在這樣的問題(對于TCP,我們使用半開放技術(shù),這樣可以防止目標(biāo)主機(jī)上的應(yīng)用程序看到我們的探測)。

在現(xiàn)代網(wǎng)絡(luò)環(huán)境下,由于防火墻的廣泛應(yīng)用,傳統(tǒng)的traceroute方法并不總是適用的。這樣的防火墻過濾“不太可能”的UDP端口,甚至ICMP回音。為了解決這個問題,還實現(xiàn)了一些額外的跟蹤方法

此命令的適用范圍:RedHat、RHEL、Ubuntu、CentOS、SUSE、openSUSE、Fedora。

 

2、        語法

traceroute [-46dFITUnreAV]  [-f first_ttl]  [-g gate,…]  [-i device]  [-m max_ttl]  [-p port]  [-s src_addr]

[-q nqueries]  [-N squeries]  [-t tos]  [-l flow_label]  [-w waittime]  [-z sendwait]

[-UL] [-P proto]  [--sport=port] [-M method]  [-O mod_options]  [--mtu]  [--back] host  [packet_len]

 

2、選項列表

選項

說明

--help

顯示幫助信息

-V | --version

顯示版本信息

-4 | -6

顯式強(qiáng)制IPv4或IPv6跟蹤。默認(rèn)情況下,程序?qū)L試解析給定的名稱,并自動選擇適當(dāng)?shù)膮f(xié)議。如果解析主機(jī)名同時返回ipv4和ipv6地址,traceroute將使用ipv4。

-I

使用ICMP進(jìn)行路由探測

-T

使用TCP協(xié)議的SYN進(jìn)行路由探測

-d

是能socket調(diào)試功能

-f first_ttl

指定第一個數(shù)據(jù)包的TTL,默認(rèn)是1

-F

不使用碎片

-g gateway

告訴Traceroute將IP源路由選項添加到傳出數(shù)據(jù)包,該數(shù)據(jù)包通知網(wǎng)絡(luò)通過指定網(wǎng)關(guān)路由數(shù)據(jù)包(大多數(shù)路由器出于安全原因禁用了源路由)。通常,允許多個網(wǎng)關(guān)(逗號分隔)。對于IPv 6,num,addr,addr.允許使用,其中num是路由標(biāo)頭類型(默認(rèn)為類型2)。注意,0類型的路由頭現(xiàn)在已不再推薦使用(Rfc 5095) 

-i interface

指定網(wǎng)絡(luò)接口

-m max_ttl

指定最大ttl,默認(rèn)30

-N squeries

指定同時發(fā)送的探測數(shù)據(jù)包的數(shù)量。同時發(fā)送幾個探針可以大大加快示蹤速度。默認(rèn)值為16。

-n

使用ip地址,不使用hostname

-p port

指定UDP端口

-t tos

對于IPv 4,設(shè)置服務(wù)類型(TOS)和優(yōu)先級值。有用的值是16(低延遲)和8(高吞吐量)。注意,為了使用一些TOS優(yōu)先級值,您必須是超級用戶。對于IPv 6,設(shè)置流量控制值。

-w waittime

指定等待應(yīng)答的時間,默認(rèn)5s

-q nqueries

設(shè)置每個跳的探測數(shù)據(jù)包數(shù)。默認(rèn)為3

-r

忽略正常的路由表

-s

指定發(fā)送數(shù)據(jù)包的ip地址

-z

探測之間的最小時間間隔(默認(rèn)為0)。如果值大于10,則它指定一個以毫秒為單位的數(shù)字,否則為秒數(shù)(浮點值也允許)。當(dāng)某些路由器對icmp消息使用速率限制時非常有用。

-e

顯示ICMP擴(kuò)展(Rfc 4884)。一般形式是類/類型:后面是十六進(jìn)制轉(zhuǎn)儲。MPLS(Rfc 4950)以一種形式顯示出來“MPLS:L=label,E=exp_use,S=stack_bottom,T=TTL

-A

在路由注冊表中執(zhí)行路徑查找,并在相應(yīng)地址之后直接打印結(jié)果。

高級選項


--sport=port

選擇要使用的源端口

-M method

對traceroute操作使用指定的方法。默認(rèn)的傳統(tǒng)UDP方法有名稱Default,ICMP(-I)和TCP(-T)分別有ICMP和TCP。特定于方法的選項可以通過-O傳遞。

-O option

指定一些特定于方法的選項。幾個選項用逗號分隔(或在cmdline上使用多個-O)。每種方法都可能有自己的特定選項,或者許多方法根本沒有它們

-U

使用UDP對特定的目標(biāo)端口進(jìn)行跟蹤(而不是增加每個探針的端口)。默認(rèn)端口為53(DNS)

-UL

使用UDPLITE追蹤

-P protocol

使用指定協(xié)議的原始數(shù)據(jù)包進(jìn)行跟蹤。默認(rèn)協(xié)議為253(Rfc 3692)。

--mtu

沿著被追蹤的路徑發(fā)現(xiàn)MTU

--back

打印后跳數(shù)時,它似乎與前進(jìn)方向不同。在假定遠(yuǎn)程跳發(fā)送初始ttl設(shè)置為64、128或255(這似乎是一種常見的做法)的情況下,猜測了這個數(shù)字。它以“-NUM”的形式打印為否定值。

 

3、可用的方法method

通常,特定的traceroute方法可能必須由-M名稱來選擇,但是大多數(shù)方法都有它們簡單的命令行開關(guān)(如果存在,您可以在方法名稱之后看到它們)。

method

說明

default

傳統(tǒng)的、古老的追蹤方法。默認(rèn)使用。

探測包是具有所謂“不可能”目標(biāo)端口的UDP數(shù)據(jù)報。第一個探針的“不可能”端口是33434,然后每個下一個探針的端口增加一個。由于預(yù)期端口未使用,目標(biāo)主機(jī)通常返回“ICMP不可訪問端口”作為最終響應(yīng)。(但是,沒有人知道當(dāng)某些應(yīng)用程序偵聽這樣的端口時會發(fā)生什么)。

這個方法普通用戶就可以使用。

icmp       -I

目前最常用的方法是使用ICMP回波數(shù)據(jù)包作為探針。如果您可以ping(8)目標(biāo)主機(jī),則icmp跟蹤也適用。

tcp        -T

眾所周知的現(xiàn)代方法,旨在繞過防火墻。使用常量目標(biāo)端口(默認(rèn)為80,http)。

如果網(wǎng)絡(luò)路徑中存在一些過濾器,那么很可能任何“不太可能”的UDP端口(對于默認(rèn)方法而言)或甚至ICMP回波(對于ICMP)都會被過濾,并且整個跟蹤只會在這樣的防火墻上停止。要繞過網(wǎng)絡(luò)過濾器,我們必須只使用允許的協(xié)議/端口組合。如果我們追蹤一些,比如說,郵件服務(wù)器,那么更有可能“-T –p 25”可以到達(dá)它,即使-我不能。

這種方法使用了眾所周知的“半開放技術(shù)”,它可以防止目標(biāo)主機(jī)上的應(yīng)用程序看到我們的探測。通常,發(fā)送TCP syn。對于未被監(jiān)聽的端口,我們接收TCP重置,一切都完成了。對于活動偵聽端口,我們接收TCP syn ack,但通過TCP重置(而不是預(yù)期的TCP ack)應(yīng)答,這樣即使應(yīng)用程序從未注意到,遠(yuǎn)程TCP會話也會被刪除。

這個方法有以下的一些選項,默認(rèn)的是syn、sysctl

syn,ack,fin,rst,psh,urg,ece,cwr,在任意組合中為探測包設(shè)置指定的tcp標(biāo)志。

flags=num,將TCP標(biāo)頭中的標(biāo)志字段設(shè)置為num。

ecn,發(fā)送帶有TCP標(biāo)志ECA和CWR的syn數(shù)據(jù)包(用于顯式擁塞通知,rfc 3168)

sack,timestamps,window_scaling,在傳出探測包中使用相應(yīng)的tcp標(biāo)頭選項。

sysctl,對上面的TCP頭選項和ecn使用當(dāng)前sysctl(“/proc/sys/net/*”)設(shè)置。默認(rèn)情況下始終設(shè)置,如果沒有其他指定的話

mss=num,對maxseg tcp報頭選項使用num值(當(dāng)syn)

tcpconn

TCP方法的初始實現(xiàn),簡單使用CONNECT(2)調(diào)用,完成TCP會話的完全打開

udp       -U

使用帶有常量目標(biāo)端口的UDP數(shù)據(jù)報(默認(rèn)為53,DNS)。也打算繞過防火墻。

注意,與TCP方法不同的是,目標(biāo)主機(jī)上的相應(yīng)應(yīng)用程序總是接收我們的探測(帶有隨機(jī)數(shù)據(jù)),而且大多數(shù)都很容易被它們混淆。但是,大多數(shù)情況下,它不會響應(yīng)我們的數(shù)據(jù)包,因此我們永遠(yuǎn)不會看到跟蹤中的最后一跳。(幸運(yùn)的是,似乎至少DNS服務(wù)器會以憤怒的方式回復(fù))。

此方法不需要特權(quán)。

udplite   -UL

對探針使用udplite數(shù)據(jù)報(具有固定的目標(biāo)端口,默認(rèn)為53),此方法不需要特權(quán)。選項:

coverage=num,設(shè)置udplite范圍num。

raw       -P proto

發(fā)送協(xié)議原始數(shù)據(jù)包。選項:

protocol=proto,使用IP協(xié)議Proto(默認(rèn)253)

 

4、說明

為了加速工作,通常同時發(fā)送幾個探測器。另一方面,它制造了一個“包裹風(fēng)暴”,特別是在回復(fù)方向。路由器可以節(jié)流ICMP響應(yīng)的速率,有些應(yīng)答可能會丟失。為了避免這種情況,減少同步探測的數(shù)量,甚至將其設(shè)置為1(類似于最初的traceroute實現(xiàn)),即-N1。

最終(目標(biāo))主機(jī)可以丟棄一些同時進(jìn)行的探測,甚至可能只回答最新的探測。它可以導(dǎo)致額外的“看上去像過期”啤酒花接近最后一跳。我們使用智能算法來自動檢測這種情況,但如果在您的情況下它無法幫助,只需使用-N1。

為了獲得更好的穩(wěn)定性,您可以通過-z選項來減緩程序的工作速度,例如,在探測之間使用“-z 0.5”進(jìn)行半秒暫停。

如果有些跳對每種方法都沒有任何報告,那么獲得某些信息的最后機(jī)會是使用“ping -R”命令(ipv4,并且僅對最近的8跳)。

5、實例

追蹤到baidu的路由信息

[root@localhost ~]# ping www.baidu.com -c 1                         //ping目標(biāo),得到ip地址

PING www.a.shifen.com (111.13.100.91) 56(84) bytes of data.

 

[root@localhost ~]# traceroute -n www.baidu.com                   //追蹤路由

traceroute to www.baidu.com (111.13.100.92), 30 hops max, 60 byte packets

 1  192.168.1.1  4.124 ms  3.936 ms  3.882 ms

 2  10.46.80.1  8.917 ms  9.238 ms  9.233 ms

 3  183.203.226.201  12.855 ms  12.788 ms  12.802 ms

 4  221.180.30.197  12.792 ms 221.180.30.45  12.776 ms  12.762 ms

 5  221.183.47.225  13.526 ms  13.363 ms  13.259 ms

 6  221.183.37.249  26.798 ms  23.556 ms  26.832 ms

 7  * * *

 8  111.13.98.101  20.569 ms  20.460 ms 111.13.98.93  24.463 ms

 9  111.13.98.93  27.215 ms 111.13.98.101  20.895 ms 111.13.112.53  26.946 ms

10  111.13.108.5  24.136 ms 111.13.112.57  23.754 ms 111.13.112.61  23.712 ms 

到此,關(guān)于“Linux基礎(chǔ)命令traceroute的用法”的學(xué)習(xí)就結(jié)束了,希望能夠解決大家的疑惑。理論與實踐的搭配能更好的幫助大家學(xué)習(xí),快去試試吧!若想繼續(xù)學(xué)習(xí)更多相關(guān)知識,請繼續(xù)關(guān)注億速云網(wǎng)站,小編會繼續(xù)努力為大家?guī)砀鄬嵱玫奈恼拢?/p>

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點不代表本網(wǎng)站立場,如果涉及侵權(quán)請聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報,并提供相關(guān)證據(jù),一經(jīng)查實,將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI