![Tracert 行为解释](https://linux22.com/image/1396276/Tracert%20%E8%A1%8C%E4%B8%BA%E8%A7%A3%E9%87%8A.png)
抱歉,我的问题很简单,我尝试 tracert 到一个 IP 地址,在前 12 个跳数之后,我的请求超时了,直到达到最大 30 个跳数。
我假设机器已启动并正在运行,因为列表已刷新(在列表中,即使 ping 给出请求超时)。我知道防火墙和网关的基本知识,以及如何关闭 ping 回复等。
问题:如果主机无法访问,以下行为是什么?为什么 TTL 会增加?这是由于某种原因导致的数据包循环吗?服务器的实际位置是否可能在其他地方,并且正在通过无数代理,因此需要 30 多个跳数?
答案1
Tracert 会一直进行,直到达到 30 跳数。您的屏幕截图显示它进入了被忽略 ICMP 请求数据包的阻塞区域。
您可能会看到另一种情况,即中间的一些数据包超时,之后它会回复。这取决于从您的客户端接收 ICMP 请求数据包的设备。Tracert 命令将 TTL 增加一个单位以到达路径上的其他设备,如果该设备阻止或不回答您的 ICMP 请求,您将收到超时消息。下一步,您的 tracert 命令将尝试前一个路由器后面的另一个路由器。在每个步骤中,它完全取决于目标路由器。
答案2
TTL 正在增加,因为 traceroute 工具正在尝试访问更远的机器。可能有三台机器连续不允许 traceroute 回复,然后有一台允许。除非进行检查,否则 traceroute 不会知道。