我想知道在 traceroute 命令中是否有一个通常用于目标端口的范围。例如,目标端口的起始地址是 33434。但是 traceroute 是否有一些首选的标准范围?
答案1
一些不好的做法认为使用 UDP 进行路由跟踪是错误的,因为 UDP 被认为是一种数据承载应用协议。ECHO_REQUEST
不过,ICMP 是首选方法没有标准。使用 ICMP 的主要原因是 UDP 可以携带有效载荷,因此允许它通过防火墙具有更大的安全隐患;对于最终用户来说,它更有可能被阻止。应用程序也有可能使用 UDP 端口,从而导致潜在的不良副作用。尽管人们更喜欢 ICMP,但经典的traceroute(1)
及其后代都使用 UDP,包括 Mac OS X、大多数 Linux 发行版、BSD 和 Cisco IOS 附带的实现。
对于这些 UDP 实现,端口号在每次探测时都会增加 1,因此任何给定运行的最高端口号等于33434 +(最大 TTL * 每跳探测数 - 1). 默认设置为最大生存时间通常是 32 或 64,具体取决于实现。默认每跳探测数通常是 1 或 3。使用更自由的默认值 64 和 3,范围将是33434-33625。实际上,max-ttl 为 32 通常就足够了,在这种情况下,范围将是33434-33529。
另请注意,IANA 已分配仅有的端口 33434 进行跟踪路由,但 33435-33655 尚未分配。
有关 ICMP 与 UDP 的信息,请参阅:为什么一些常见的 traceroute 实现默认使用 UDP 探测?
答案2
经过谷歌搜索,我发现 33434 是用作基本端口的端口traceroute
。
范围是33434 + (max-ttl * numberofprobes - 1)
,这通常意味着
max-ttl = 30
numberofprobes = 3