如何使用 Traceroute 診斷 Linux 上的網路問題

如何使用 Traceroute 診斷 Linux 上的網路問題
Traceroute Linux 精選

Traceroute 是一個簡單的網路實用程序,可以追蹤網際網路封包從來源到目標主機的路由。本文將向您展示如何使用 Traceroute 來檢查 Linux 的網路運作狀況並診斷新出現的問題。

追蹤路由如何運作?

Traceroute 的工作原理是向遠端主機路徑上的每個網際網路閘道傳送具有短 TTL 長度的 UDP 封包。這些短 TTL 長度會強制這些網關會報告 ICMP「TIME_EXCEEDED」回應及其介面的 IP 位址。

這兩個因素相結合,使 Traceroute 能夠建立資料包在連接到外部伺服器時將經過的電腦的詳細清單。例如,在我的網路中運行到「google.com」的追蹤路由將在到達 Google 伺服器之前列出 9 到 10 個網關。

顯示 google.com 基本追蹤路由的終端。

Traceroute 可以修復哪些網路問題?

Traceroute 只是一個網路偵測工具,它既不會優化也不會修復網路中的任何突出問題。 Traceroute 只能描述網路以及在網路上傳輸的資料包的行為。

儘管如此,它仍然是診斷潛在網路問題的重要工具。一個很好的例子是本地網關無法將資料包轉送到其下一跳。 Traceroute 可以透過突出顯示核心網路內任何不發送「TIME_EXCEEDED」回應的路由器來解決此問題。

顯示基本追蹤路由的終端,其中網關始終無法回應程式。

除此之外,您也可以使用traceroute來檢查主機之間的延遲問題。如果您想了解本地網路是否需要 VPN 來確保連接到遠端電腦時始終保持低延遲,這會很有幫助。

在 Linux 中使用 Traceroute

開啟新終端機並鍵入 traceroute,後面接著您希望電腦連接的電腦位址。這可以是網域名稱或 IP 位址。例如:

Enter開始將路徑對應到遠端主機。

顯示小型 VPS 的基本追蹤路由的終端。

在 Traceroute 中傳送具有自訂 TTL 的資料包

雖然單獨使用 Traceroute 足以滿足基本用途,但您也可以使用標誌來調整程式的工作方式。這會很有幫助,尤其是當您對網路進行分類時。

traceroute 中最常見的調整之一是更改發送到網關的資料包數量。為此,請使用 -q 標誌,後面跟著您希望每個請求發送的資料包數量:

您也可以使用 -N 標誌後面接著「1」來明確停用同時資料包請求。如果您的網關對短 TTL 的 UDP 封包進行速率限制,這會很有幫助。

顯示禁用同時資料包的追蹤路由的終端。

最後,您也可以修改traceroute 的預設TTL 值。為此,請新增 -f 標誌,後面跟著您想要的第一個探測資料包的 TTL。

顯示追蹤路由的終端,其中程式跳過前兩個網關。

更改 Linux 中的 Traceroute 協議

預設情況下,Linux 中的 Traceroute 使用 UDP 向網路閘道傳送偵測封包。如果您正在探測主動阻止追蹤路由資料包的網關,這可能會成為一個問題。

要解決此問題,您可以使用 -T 標誌來使用簡單的 TCP SYN 封包運行追蹤路由。

顯示追蹤路由的終端,其中程式使用 TCP SYN 封包而不是 UDP。

另一方面,如果目標閘道僅限制 UDP,您也可以強制 Traceroute 使用 ICMP ECHO 封包:

Traceroute 也支援自訂網路介面。在這裡,traceroute 將使用電腦中的不同網路卡來探測封包的路徑。

為此,請使用 -i 標誌運行程序,後跟接口的設備名稱。

除此之外,您也可以使用 -p 標誌來指定 Traceroute 將用於 UDP 偵測的起始連接埠號碼:

最後,-p 標誌也會根據您使用的協定更改其行為。將其與 -I 配對會將 -p 值設為初始 ICMP 序號,而不是目標連接埠。

顯示使用 ICMP ECHO 和自訂 ICMP 序號的追蹤路由的終端。

學習如何使用 Traceroute 只是了解電腦如何透過網路相互溝通的第一步。透過使用 tcpdump 分析 TCP 封包的內容了解有關電腦網路的詳細資訊

同時,您也可以透過使用Linux 中的dig 工具了解更多有關更高OSI 層(例如DNS)的資訊。 一個>

所有修改和螢幕截圖均由 Ramces Red 進行。

發佈留言

發佈留言必須填寫的電子郵件地址不會公開。 必填欄位標示為 *