所以我遇到了这个问题
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 正常工作并接收回复。
traceroute
UDP 数据包无法通过的最可能原因是防火墙。