traceroute 中的“***”是什么意思

traceroute 中的“***”是什么意思

这是我的跟踪路由的结果

跟踪路由 211.140.5.120

 1  141.1.31.2 (111.1.31.2)  0.397 ms  0.380 ms  0.366 ms
 2  141.1.28.38 (111.1.28.38)  3.999 ms  3.971 ms  3.982 ms
 3  142.11.124.193 (112.11.124.133)  1.315 ms  1.533 ms  1.455 ms
 4   (201.141.0.261)  2.615 ms  2.749 ms  2.572 ms
 5   (201.141.0.82)  2.705 ms  2.564 ms  2.680 ms
 6   (201.118.231.14)  5.375 ms  5.126 ms  5.252 ms
 7  * * *
 8  * * *
 9  * * *
10  * * *
11  * * *
12  * * *
13  * * *
14  * * *
15  * * *
16  * * *
17  * * *
18  * * *
19  * * *
20  * * *
21  * * *
22  * * *
23  * * *
24  * * *
25  * * *
26  * * *
27  * * *
28  * * *
29  * * *
30  * * *

我想知道 *** 是什么意思,结果是否意味着我的主机和目标服务器之间确实有超过 30 跳?

答案1

所有 traceroute 的实现都依赖于发送给发起者的 ICMP(类型 11)数据包。

此程序尝试通过启动具有较小 ttl(生存时间)的 UDP 探测数据包,然后监听来自网关的 ICMP“超时”回复来跟踪路由。它以 1 的 ttl 开始探测,然后逐个增加,直到我们收到 ICMP“端口不可达”(这意味着我们到达了“主机”)或达到最大值(默认为 30 跳,可以使用 -m 标志进行更改)。在每个 ttl 设置下发送三个探测(使用 -q 标志进行更改),并打印一行,显示 ttl、网关地址和每个探测的往返时间(因此是三个 *)。如果在 5 秒超时间隔内没有响应(使用 -w 标志进行更改),则将为该探测打印“*”。

因此,就您的情况而言,我们可以得出结论,我们只在 201.118.231.14 之前收到响应。此后,节点未响应 ICMP 数据包(类型 11)直至跳数 30,这是最大生存时间(最大跳数)。您可以使用 -m 标志增加最大生存时间。

答案2

Traceoute 需要目标服务器和每个中间跳转的响应才能创建其输出。如果路由器未生成响应Time-to-live exceeded,则 traceroute 将对该跳转一无所知。输出的跳转* * *意味着该跳转处的路由器不响应您用于 traceroute 的数据包类型(默认情况下,在类 Unix 上为 UDP,在 Windows 上为 ICMP)。

如果你使用与我相同的 traceroute 版本,你可以尝试使用-e尝试逃避防火墙的选项以及-P使用 ICMP、TCP 或研究生入学考试 (GRE)数据包而不是 UDP。您还可以尝试使用该选项指定不太可能被过滤的特定端口(例如 80 或 25)-p

可能还有其他选项可以帮助您获得回复。检查traceroute 的手册页

回答你问题的第二部分,不,这个 traceroute 并不意味着你和目标服务器之间正好有 30 个跳数。Traceroute 在经过一定数量的跳数后“放弃”。这是通过限制数据包中的最大 TTL 来实现的,在 Linux 上,默认情况下是 30。你可以使用选项更改它-m。可能有更多或更少的跳数,但由于第 6 个之后的跳数都没有响应,所以我们不知道。

相关内容