traceroute时“***”是什么意思

lar*_*rry 66 networking linux

这是我的跟踪路由的结果

跟踪路由 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  * * *
Run Code Online (Sandbox Code Playgroud)

我想知道 *** 是什么意思,结果是否意味着我的主机和目标服务器之间真的有 30 多个跃点?

Sac*_*kar 55

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

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

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


Lad*_*ada 41

Traceoute 需要来自目标服务器和每个中间跃点的响应以创建其输出。如果路由器不生成Time-to-live exceeded响应,traceroute 将不知道有关该跃点的任何信息。输出的跃点* * *意味着该跃点处的路由器不会响应您用于跟踪路由的数据包类型(默认情况下,类 Unix 上为 UDP,Windows 上为 ICMP)。

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

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

要回答问题的第二部分,不,此 traceroute 并不意味着您和目标服务器之间正好有 30 跳。Traceroute 在一定数量的跃点后“放弃”。这是通过限制数据包中的最大 TTL 来完成的,在 Linux 上默认为 30。您可以使用该-m选项更改此设置。可能会有更多或更少的跳数,但由于第 6 次后没有人响应,我们只是不知道。

  • 补充一点:基本上,如果由于某种原因跳 30 返回响应;那么我们就会知道我们至少有 30 跳。(无视任何诡计) (2认同)