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


15

在我的Linux机器上,traceroute不起作用。输出是这样的:

$ traceroute google.com

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

谁能告诉我为什么它不起作用?它背后的任何可能原因?

Answers:


10

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

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

traceroute -I www.google.it

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


2

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

编辑

我错了...它使用udp ...返回的icmp是用于无法访问的端口...对不起


1
对于macOS,它将是-P TCP或-P UDP,而-P ICMP与shodanshok的答案中的-I相同。
MrG

1

可能是您上游的防火墙阻止了UDP数据包 Traceroute

在类似Unix的现代操作系统上,默认情况下,traceroute实用程序使用UDP数据报,目的端口号为33434至33534。


$更有可能是unix提示符而不是Windows一,而Windows traceroute命令是tracert。问题是关于Linux的……
半径

我意识到了这一点,所以我编辑了答案。
lalalalalalala

我以为跟踪路由使用了ICMP数据包。我不知道基于unix的系统使用UDP。每天学些新东西。
dbasnett 2010年

1

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

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.