这是我的traceroute的结果


 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 楼

跟踪路由的所有实现都依赖于发送给始发者的ICMP(类型11)数据包。

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

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

#2 楼

Traceoute需要目标服务器和每个中间跃点的响应才能创建其输出。如果路由器未生成Time-to-live exceeded响应,则traceroute将不了解有关该跃点的任何信息。输出* * *的跃点意味着该跃点的路由器不会响应您用于traceroute的数据包类型(默认情况下,它是Unix上的UDP,而Windows上是ICMP)。如果您使用的是相同版本的traceroute,则可以尝试使用-e选项来逃避防火墙,并使用-P选项来使用ICMP,TCP或GRE数据包而不是UDP。您还可以尝试使用-p选项指定一个不太可能被过滤的特定端口(例如80或25)。

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

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

评论


要添加的内容:基本上,如果出于任何原因,第30跳返回响应;那么我们就会知道至少有30个跃点。 (忽略任何诡计)

–user606723
2011-11-23 17:47