traceroute 不起作用,输出为 * * * 但网络正常

traceroute 不起作用,输出为 * * * 但网络正常

在我的 Linux 机器上,traceroute不起作用。输出如下:

$ traceroute google.com

traceroute to google.com (209.85.231.104), 30 hops max, 52 byte packets
1  * * *
2  * * *
3  * * *
4  * * *

有人能告诉我为什么它不起作用吗?这背后可能存在什么原因吗?

答案1

默认情况下,traceroute使用高 UDP 端口来跟踪主机。但是,有时防火墙会阻止这些 UDP 端口。

尝试将-I(大写 i)参数添加到命令行,例如:

traceroute -I www.google.it

这将使用 ICMP 而不是 UDP 来跟踪主机。

答案2

尝试使用 -T (tcp) 或 -U (udp) 绕过防火墙。
有些路由器/防火墙不允许 icmp echo 通过,这就是为什么您要使用这两个来绕过它们。
无论如何,与维基百科所述相反,在我的 debian 机器上,traceroute 仍然使用 icmp 数据包而不是 udp。

编辑

我错了...它使用 udp...返回的 icmp 是针对无法访问的端口...抱歉

答案3

可能是你上游的防火墙阻止了 UDP 数据包 跟踪路由

在现代类 Unix 操作系统上,traceroute 实用程序默认使用目标端口号从 33434 到 33534 的 UDP 数据报。

答案4

这可能是因为 icmp TIME_EXCEEDED 答案被你用作默认网关的路由器/防火墙或你的 Linux 系统本身过滤了

相关内容