曾经有一段时间IANA只分配最多1023个端口。请参阅RFC1700。曾经这是一个标准。在大多数情况下,我都不会发现RFC流中何时发生变化的麻烦,但是对于将端口从1024更改为49152的问题,从注册更改为分配的问题,我的想法很短。
就Linux历史而言,有人在2007年提出了一个关于默认ip_local_port_range的问题。当时,由于担心端口数量过多可能会导致问题,并且决定将范围设置为49152,所以您决定使用您提到的Linux范围池中的端口号。看到这个和它的线程。当时表达的想法是,从32768开始即使不完全符合IANA程序的精神。在阅读此内容时,我推断出开发人员认为大多数分配将发生在范围的底部并向上移动。在撰写本文时,我计算了32768和49152之间分配的100个以上的端口号(不将不同的协议视为单独的),因此在过去五年中一直保持良好的势头。
我不知道为什么范围被认为太小,但是我可以想象两个原因:
- 端口号是随机分配的,可以阻止某些攻击。池中的地址越多,这种防御就越有效。
- 高活动性服务器可能会遇到端口号耗尽的问题。尽管端口可能是短暂的,但它们的使用不是瞬时的。特别是套接字可能在TCP关闭后持续几分钟。
这篇博客文章涉及数字2,并提出了一个答案,如果您希望Linux系统使用其他范围的本地端口。(使用/etc/sysctl.d定义您喜欢的范围。如果遇到特定的冲突,还有一个ip_local_reserved_ports条目可能会有用。这些与您引用的/ proc / sys条目匹配。)
综上所述。Linux的默认设置与当前的IANA规范不匹配,但如果所有者希望,则任何特定的Linux系统都可以。
ip_local_port_range
无论如何都不应使用的值。