這是我的追蹤路由的結果
追蹤路由 211.140.5.120
1 141.1.31.2 (111.1.31.2) 0.397 ms 0.380 ms 0.366 ms
2 141.1.28.38 (111.1.28.38) 3.999 ms 3.971 ms 3.982 ms
3 142.11.124.193 (112.11.124.133) 1.315 ms 1.533 ms 1.455 ms
4 (201.141.0.261) 2.615 ms 2.749 ms 2.572 ms
5 (201.141.0.82) 2.705 ms 2.564 ms 2.680 ms
6 (201.118.231.14) 5.375 ms 5.126 ms 5.252 ms
7 * * *
8 * * *
9 * * *
10 * * *
11 * * *
12 * * *
13 * * *
14 * * *
15 * * *
16 * * *
17 * * *
18 * * *
19 * * *
20 * * *
21 * * *
22 * * *
23 * * *
24 * * *
25 * * *
26 * * *
27 * * *
28 * * *
29 * * *
30 * * *
我想知道 *** 是什麼意思,結果是否意味著我的主機和目標伺服器之間確實有超過 30 跳?
答案1
Traceroute 的所有實作都依賴傳送給發起者的 ICMP(類型 11)封包。
該程式嘗試透過啟動具有較小 ttl(生存時間)的 UDP 探測資料包來追蹤路由,然後偵聽來自網關的 ICMP「逾時」回應。它以 1 的 ttl 開始探測,並增加 1,直到我們得到 ICMP“端口無法訪問”(這意味著我們必須到達“主機”)或達到最大值(預設為 30 跳,可以使用 -m 標誌進行更改) )。每個 ttl 設定發送三個探測(使用 -q 標誌進行更改),並列印一行,顯示 ttl、網關位址和每個探測的往返時間(因此三個 * )。如果5秒內沒有反應。逾時間隔(以 -w 標誌變更),會為該偵測器列印一個「*」。
因此,就您的情況而言,我們可以得出結論,我們僅在 201.118.231.14 之前收到回應。此後,節點不會回應 ICMP 封包(類型 11),直到跳數 30,即最大生存時間(最大跳數)。您可以使用 -m 標誌增加最大生存時間。
答案2
Traceoute 需要來自目標伺服器和每個中間躍點的回應來建立其輸出。如果路由器不產生Time-to-live exceeded
回應,traceroute 將不知道有關該躍點的任何資訊。輸出的躍點* * *
表示該躍點的路由器不會回應您用於追蹤路由的封包類型(預設情況下,在類別 Unix 上為 UDP,在 Windows 上為 ICMP)。
如果您使用的是與我相同版本的traceroute,您可以嘗試使用-e
嘗試逃避防火牆的選項以及-P
使用ICMP、TCP或GRE資料包而不是 UDP。您也可以嘗試使用該選項指定不太可能被過濾的特定連接埠(例如 80 或 25)-p
。
可能還有其他選項可以幫助您獲得回應。檢查Traceroute 的手冊頁。
要回答問題的第二部分,不,此追蹤路由並不意味著您和目標伺服器之間正好有 30 個躍點。 Traceroute 在經過一定數量的躍點後「放棄」。這是透過限制封包中的最大 TTL 來完成的,在 Linux 上預設為 30 -m
。可能有更多或更少的躍點,但由於第六跳之後沒有一個響應,我們只是不知道。