TCP 跟踪路由工作正常,但 UDP 不行

TCP 跟踪路由工作正常,但 UDP 不行

所以我遇到了这个问题

traceroute some-server.abc.com

返回***多条线路并最终达到最大跳数限制。

这样做traceroute -T some-server.abc.com效果很好。我检查了手册页,默认情况下traceroute使用 UDP 协议,而 -T 强制它使用 TCP 探测数据包。

造成这种现象的可能原因是什么?另请注意,ping此主机运行良好。

答案1

引自路由追踪维基百科页面:

在类 Unix 操作系统上,traceroute 实用程序默认使用用户数据报协议 (UDP) 数据报,目标端口号范围为 33434 至 33534。traceroute 实用程序通常有一个选项,可以改用 ICMP 回显请求(类型 8)数据包(如 Windows tracert 实用程序一样),或者使用 TCP SYN 数据包。[1][2] 如果网络有防火墙并且同时运行 Windows 和类 Unix 系统,则必须通过防火墙启用多种入站协议,以使 traceroute 正常工作并接收回复。

tracerouteUDP 数据包无法通过的最可能原因是防火墙。

相关内容