如何在linux上使用traceroute命令

您可以使用Linux traceroute命令來發現網路資料包傳輸過程中的慢段,並對緩慢的網路連線進行故障排除。我們會教你怎麼做!...

您可以使用Linux traceroute命令來發現網路資料包傳輸過程中的慢段,並對緩慢的網路連線進行故障排除。我們會教你怎麼做!

traceroute的工作原理

當您瞭解traceroute的工作原理時,就更容易理解結果。網路資料包到達目的地的路徑越複雜,就越難確定可能發生減速的位置。

小型組織的區域網(LAN)可能相對簡單。它可能至少有一個伺服器和一兩個路由器。在不同地點之間或透過因特網進行通訊的廣域網(WAN)上,複雜性增加。然後,您的網路資料包會遇到(並被轉發和路由)許多硬體,如路由器和閘道器。

資料包上元資料的頭描述了它的長度、它來自哪裡、它要去哪裡、使用的協議等等。協議的規範定義了頭。如果您可以識別協議,可以確定頭中每個欄位的開始和結束,並讀取元資料。

traceroute使用TCP/IP協議套件,傳送使用者資料報協議包。標頭包含生存時間(TTL)欄位,該欄位包含一個8位整數值。不管名字怎麼說,它代表的是計數,而不是持續時間。

一個包透過路由器從它的起點到它的目的地。每次資料包到達路由器時,它都會減少TTL計數器。如果TTL值曾經達到1,那麼接收資料包的路由器將遞減該值並注意到它現在為零。資料包隨後被丟棄,並且不會轉發到其旅程的下一個躍點,因為它已經“超時”

路由器傳送一個Internet訊息控制協議(ICMP)超時訊息回資料包的來源,讓它知道資料包超時。超時訊息包含原始報頭和原始資料包資料的前64位。這在徵求意見792第6頁中有定義。

因此,如果traceroute傳送一個數據包,然後將TTL值設定為1,那麼該資料包在被丟棄之前只能到達第一個路由器。它將從路由器接收ICMP超時訊息,並記錄往返所用的時間。

然後,它將重複練習,TTL設定為2,兩次跳後將失敗。traceroute將TTL增加到3,然後重試。此過程重複,直到達到目標或測試最大跳數(預設情況下為30)。

有些路由器玩得不好

有些路由器有漏洞。它們嘗試轉發TTL為零的資料包,而不是丟棄它們並引發ICMP超時訊息。

據思科稱,一些網際網路服務提供商(ISP)限制路由器中繼的ICMP訊息數量。

某些裝置被配置為從不傳送ICMP資料包。這通常是為了確保裝置不會在無意中被強迫參與分散式拒絕服務,比如**urf攻擊。

traceroute的預設答覆超時時間為5秒。如果在這五秒鐘內沒有收到響應,則放棄嘗試。這意味著來自非常慢的路由器的響應被忽略。

安裝traceroute

traceroute已經安裝在fedora31上,但必須安裝在manjaro18.1和ubuntu18.04上。要在Manjaro上安裝traceroute,請使用以下命令:

sudo pacman -Sy traceroute

如何在linux上使用traceroute命令

要在Ubuntu上安裝traceroute,請使用以下命令:

sudo apt-get install traceroute

如何在linux上使用traceroute命令

使用traceroute

如上所述,traceroute的目的是在從您的計算機到目的地的每一跳中從路由器獲取響應。有些人可能守口如瓶,什麼也不給,而另一些人可能會毫無顧忌地洩露祕密。

例如,我們將執行一個traceroute到愛爾蘭布拉尼城堡網站,這裡是著名的布拉尼石之家。傳說如果你親吻布拉尼石,你會得到“口碑的禮物”的祝福。讓我們希望我們在路上遇到的路由器是適當的嘮叨。

我們鍵入以下命令:

traceroute www.blarneycastle.ie

如何在linux上使用traceroute命令

第一行提供了以下資訊:

  • 目標及其IP地址。
  • traceroute在放棄之前將嘗試的躍點數。
  • 我們傳送的UDP資料包的大小。

所有其他行都包含其中一個躍點的資訊。不過,在深入瞭解細節之前,我們可以看到,我們的電腦和布拉尼城堡網站之間有11個跳躍。跳11也告訴我們我們到達了目的地。

每個躍點行的格式如下:

  • 裝置的名稱,如果裝置沒有標識自身,則為IP地址。
  • IP地址。
  • 三次測試的往返時間。如果這裡有一個星號,就意味著測試沒有反應。如果裝置根本沒有響應,您將看到三個星號,沒有裝置名稱或IP地址。

讓我們回顧一下下面的內容:

  • 躍點1:第一個呼叫埠(沒有雙關語)是本地網路上的DrayTek Vigor路由器。這就是我們的UDP資料包如何離開本地網路並進入網際網路的方式。
  • 躍點2:此裝置沒有響應。也許它被配置為從不傳送ICMP資料包。或者,也許它確實響應了,但是太慢了,所以traceroute超時了。
  • hop3:一個裝置響應了,但是我們沒有得到它的名字,只有IP地址。請注意,這一行中有一個星號,這意味著我們沒有得到對所有三個請求的響應。這可能表示資料包丟失。
  • 跳躍4和5:更多匿名跳躍。
  • hop6:這裡有很多文字,因為不同的遠端裝置處理了我們三個UDP請求中的每一個。列印了每個裝置的(相當長的)名稱和IP地址。當你遇到一個“人滿為患”的網路,上面有很多硬體來處理大量的流量時,就會發生這種情況。這一跳位於英國最大的ISP中,如果同一個遠端硬體處理了我們的三個連線請求,這將是一個小小的奇蹟。
  • 跳7:這是我們的UDP資料包離開ISPs網路時所做的跳。
  • hop8:同樣,我們得到的是一個IP地址,而不是裝置名。所有三個測試都成功返回。
  • 第9跳和第10跳:還有兩個匿名跳。
  • 我們已經到了布拉尼城堡的網站。城堡位於愛爾蘭科克,但根據IP地址地理位置,網站位於倫敦。

所以,這是一個混合袋。一些裝置玩球,一些迴應,但沒有告訴我們他們的名字,還有一些保持完全匿名。

然而,我們確實到達了目的地,我們知道它離我們有11跳的路程,往返時間是13.773和14.715毫秒。

隱藏裝置名稱

如我們所見,有時包含裝置名稱會導致顯示混亂。為了更容易檢視資料,可以使用-n(無對映)選項。

要使用我們的示例執行此操作,請鍵入以下內容:

traceroute -n blarneycastle.ie

如何在linux上使用traceroute命令

這樣就可以更容易地為可能表示瓶頸的往返計時選擇大量的數字。

第三跳看起來有點可疑。上一次,它只回應了兩次,而這次,它只回應了一次。在這種情況下,我們當然無法控制。

然而,如果你正在調查你的公司網路,那麼對這個節點進行更深入的研究是值得的。

設定traceroute超時值

也許如果我們延長預設的超時時間(5秒),我們會得到更多的響應。為此,我們將使用-w(等待時間)選項將其更改為7秒。(請注意,這是一個浮點數。)

我們鍵入以下命令:

traceroute -w 7.0 blarneycastle.ie

如何在linux上使用traceroute命令

這並沒有造成太大的影響,所以迴應可能已經過時了。很可能匿名的啤酒花是故意保密的。

設定測試數

預設情況下,traceroute向每個躍點發送三個UDP資料包。我們可以使用-q(查詢數)選項來向上或向下調整。

為了加快traceroute測試的速度,我們鍵入以下命令以減少傳送到其中一個的UDP探測資料包的數量:

traceroute -q 1 blarneycastle.ie

如何在linux上使用traceroute命令

這會向每個躍點發送一個探測。

設定初始ttl值

我們可以將TTL的初始值設定為1以外的值,並跳過一些跳躍。通常,TTL值在第一組測試中設定為1,在下一組測試中設定為2,依此類推。如果我們把它設為5,第一個測試將嘗試跳到5,跳過1到4。

因為我們知道Blarney Castle網站離這臺計算機有11個躍點,所以我們鍵入以下內容直接轉到躍點11:

traceroute -f 11 blarneycastle.ie

如何在linux上使用traceroute命令

這給了我們一個很好的,關於目標連線狀態的簡明報告。

體貼

traceroute是研究網路路由、檢查連線速度或識別瓶頸的一個很好的工具。Windows還有一個tracert命令,其功能類似。

但是,您不希望用大量的UDP資料包轟炸未知裝置,並且要小心在指令碼或無人参與的作業中包含traceroute。

負載跟蹤路由可能會對網路效能產生不利影響。除非您處於“現在就修復”的情況,否則您可能希望在正常工作時間之外使用它。

  • 發表於 2021-04-02 14:17
  • 閱讀 ( 51 )
  • 分類:網際網路

你可能感興趣的文章

如何在linux上安裝和使用powershell

... 在本文中,我將向您展示如何在Linux上安裝、執行和使用PowerShell! ...

  • 發佈於 2021-03-16 02:34
  • 閲讀 ( 59 )

如何在android和termux上使用linux命令列

...許您在Android裝置上安裝誠實善良的Linux應用程式。下面是如何使用Termux應用程式。 ...

  • 發佈於 2021-03-18 07:26
  • 閲讀 ( 69 )

如何在windows10上獲得linux bash shell

... 如何在windows10上安裝linux bash shell ...

  • 發佈於 2021-03-21 11:48
  • 閲讀 ( 70 )

linux下如何重新命名檔案

要在Linux中重新命名檔案嗎?如果您知道如何在Windows、macOS或Chrome作業系統中完成這項工作,那麼您就知道如何在這裡完成這項工作。在大多數版本的Linux上,您只需右鍵單擊一個檔案並選擇Rename選項。 ...

  • 發佈於 2021-03-22 02:48
  • 閲讀 ( 77 )

6款出色的android網路應用程式,用於監控、ping等

...描、連線檢查器和網路裝置清單工具,還可以處理ping和traceroute等基本命令。 ...

  • 發佈於 2021-03-22 17:15
  • 閲讀 ( 66 )

linux正在吃掉你的公羊嗎?如何管理你的記憶

...記憶體。為了理解到底發生了什麼,我們必須看看Linux是如何管理記憶體的。 ...

  • 發佈於 2021-03-23 08:31
  • 閲讀 ( 67 )

如何在linux上使用groupadd管理使用者組

... 相關:如何在Linux中更改密碼 ...

  • 發佈於 2021-03-26 17:15
  • 閲讀 ( 50 )

如何在linux中新增使用者

想在Linux系統上新增使用者但不知道如何新增?在Linux上使用命令列介面管理使用者無疑是一項複雜的工作。而對於初學者來說,即使新增新使用者也是一場噩夢。 ...

  • 發佈於 2021-03-26 23:29
  • 閲讀 ( 79 )

初學者的nmap:獲得埠掃描的實踐經驗

... 您還可以使用-A選項在traceroute旁邊啟用版本和作業系統檢測。 ...

  • 發佈於 2021-03-28 11:48
  • 閲讀 ( 55 )

如何檢查linux核心和作業系統版本

...版本可以讓您對安全更新做出重要決定。我們將向您展示如何找到這些,無論您使用哪個發行版。 滾動和點釋放 你知道你在執行哪個版本的Linux嗎?你能找到核心版本嗎?Linux的滾動發行版,如Arch、Manjaro和openSUSE,經常使用自...

  • 發佈於 2021-04-01 13:11
  • 閲讀 ( 61 )
gxk3810
gxk3810

0 篇文章

作家榜

  1. admin 0 文章
  2. 孫小欽 0 文章
  3. JVhby0 0 文章
  4. fvpvzrr 0 文章
  5. 0sus8kksc 0 文章
  6. zsfn1903 0 文章
  7. w91395898 0 文章
  8. SuperQueen123 0 文章

相關推薦