答案1
我能想到两件事。
1如您所知,路径是动态的,因此每个发出的跟踪路由可能涉及不同的跃点,这意味着每个节点上应用了不同的配置。有些人可能会拒绝 Linux 跟踪路由消息,因为 Linux 跟踪路由使用UDP协议端口号高于的数据包33434默认情况下,如果不允许这种类型的数据包,则会失败。除此之外,ICMP也可以像 DOS 一样出于安全原因拒绝数据包。
2因此,您应该使用以下参数运行traceroute以“强制”它仅使用ICMP消息:
traceroute 8.8.8.8 -I
手册页在选项部分引用了这一点:
-I, --icmp Use ICMP ECHO for probes
对我来说,在“-I”选项traceroute的帮助下显示了一个额外的节点。
要回答有关traceroute消息的其他问题,它们被困在网关上:
它也可能是由于安全原因(例如双向速率限制)而产生的,因为traceroute可能会因发送和接收过多的探测和回复而导致风暴。速率限制可能会导致数据包受到限制,甚至丢弃高于可接受速率的数据包。
因此考虑使用另一个参数将同时发送的消息数降低到仅 1:
traceroute 8.8.8.8 -I -N 1
供参考UDP协议和ICMP不是面向连接的协议,因此不传送其中一些数据包是可以接受的。