Traceroute 在 Linux 上不起作用,但在 Windows 上可以

Traceroute 在 Linux 上不起作用,但在 Windows 上可以

我是 Linux Mint 用户。我在Linux 上运行traceroute,在Windows 上运行tracert。在 Linux 上,我只得到星号。在 Windows 上一切似乎都工作正常。这是输出

视窗:

视窗

Linux 薄荷:

Linux薄荷

为什么会发生这种情况?我可以做些什么来解决这个问题吗?

答案1

造成这种差异的一个可能原因是 Windows 默认tracert使用 ICMP,而 Linuxtraceroute默认使用 UDP。使用-I跟踪路由选项应该产生与以下相同的结果tracert

traceroute -w 10 -I google.it

traceroute文档中:

在现代网络环境中,由于防火墙的广泛使用,传统的traceroute方法并不总是适用。此类防火墙会过滤“不太可能”的 UDP 端口,甚至 ICMP 回显。为了解决这个问题,实现了一些额外的跟踪路由方法(包括 tcp),请参阅下面的可用方法列表。此类方法尝试使用特定的协议和源/目标端口,以绕过防火墙(防火墙将其视为允许的网络会话类型的开始)。

可用方法列表

一般来说,特定的跟踪路由方法可能必须通过 -M 名称来选择,但大多数方法都有其简单的命令行开关(您可以在方法名称后面看到它们,如果存在)。

默认

传统的、古老的跟踪路由方法。默认使用。

探测数据包是带有所谓“不可能”目标端口的 udp 数据报。第一个探测器的“不太可能”端口是 33434,然后对于每个下一个探测器,它都会增加 1。由于预计这些端口不会被使用,因此目标主机通常会返回“icmp unreach port”作为最终响应。 (但是,没有人知道当某些应用程序侦听此类端口时会发生什么)。

答案2

尝试这个:

traceroute -M icmp google.it

相关内容