我有一些關於為什麼追蹤路由在某些情況下不起作用的問題。雖然我明白它是如何運作的,但我無法弄清楚一些問題。喜歡,
$traceroute www.google.com
1 * * *
2 * * *
......
有 '*'。當我使用 ICMP 代替 UDP 時,我得到以下結果:
$traceroute www.google.com -I
1 * * *
2 * * *
3 222.42.254.130 (222.42.254.130) 7.980 ms 10.785 ms 4.920 ms
4 222.42.254.129 (222.42.254.129) 4.363 ms 8.141 ms 5.849 ms
5 bogon (10.2.1.1) 7.957 ms 7.787 ms 8.321 ms
6 61.237.121.97 (61.237.121.97) 25.341 ms 24.895 ms 28.725 ms
7 61.237.123.66 (61.237.123.66) 23.738 ms 24.172 ms 23.916 ms
8 221.4.120.173 (221.4.120.173) 23.096 ms 24.539 ms 20.827 ms
9 221.4.6.61 (221.4.6.61) 58.516 ms 60.035 ms 63.200 ms
10 120.80.0.73 (120.80.0.73) 60.991 ms 59.520 ms 59.853 ms
11 219.158.19.69 (219.158.19.69) 59.771 ms 59.192 ms 59.072 ms
12 219.158.22.249 (219.158.22.249) 89.185 ms 87.928 ms 89.582 ms
13 219.158.22.158 (219.158.22.158) 102.195 ms 103.409 ms 106.153 ms
14 219.158.35.114 (219.158.35.114) 218.816 ms 224.845 ms 218.470 ms
15 203.208.62.15 (203.208.62.15) 212.560 ms 208.640 ms *
16 chrome.google.com (203.208.46.1) 210.655 ms * 216.369 ms
我想知道為什麼第一跳和第二跳仍然未知。我嘗試用 -z 500 設定 icmp 速率,但沒有用。所以我的問題如下:
- 為什麼我在使用 ICMP 時會出現一些躍點?
- 我怎樣才能獲得前兩跳?
我已經搜索過了,但沒有找到任何無用的東西。我透過沒有任何防火牆的路由連接到網際網路。感謝您的幫助。
答案1
由於 Traceroute 是基於 ICMP Echo 請求,因此您的前兩條路由(可能是您自己的本地防火牆)似乎被配置為丟棄/阻止 ICMP Echo 請求。這就是為什麼 Traceroute 無法看到前兩者的實際響應,但無法看到除此之外的正確響應。
答案2
第一跳是您通往網際網路的網關,您可以使用 來查看netstat -rn
。
第二個躍點是您提供者的網關,如果您碰巧有像 Fritzbox 這樣的東西,您可以在那裡看到 IP 位址。
答案3
為了完成下一跳發現,您可以使用另一個工具:hping。正如 Franck 先前的回應所解釋的那樣,可能有防火牆或路由器丟棄了此類 ICMP 訊息。
例如,您可以對第一個下一跳使用以下命令:
hping www.google.com -p 86 -S -t 1
還有這個,請參考第二個:
hping www.google.com -p 86 -S -t 2