Unix

TCP traceroute 工作正常,但不是 UDP

  • July 26, 2014

所以我遇到了這個問題

traceroute some-server.abc.com

返回***多行並最終達到最大跳數限制。

做一個traceroute -T some-server.abc.com作品非常好。我檢查了手冊頁,預設情況下traceroute使用 UDP 協議和 -T 強制它使用 TCP 探測數據包。

這種行為的可能原因是什麼。另請注意,ping此主機可以正常工作。

來自traceroute Wikipedia頁面的引用:

在類 Unix 作業系統上,traceroute 實用程序預設使用使用者數據報協議 (UDP) 數據報,目標埠號範圍從 33434 到 33534。traceroute 實用程序通常有一個選項來代替使用 ICMP Echo Request(類型 8)數據包,像 Windows tracert 實用程序一樣,或使用 TCP SYN 數據包。

$$ 1 $$$$ 2 $$如果網路有防火牆並同時執行 Windows 和類 Unix 系統,則必須啟用多個協議通過防火牆入站,以便 traceroute 工作並接收回复。

tracerouteUDP 數據包無法通過的最可能原因是防火牆。

引用自:https://serverfault.com/questions/615732