我在每个内部应用程序都在一个单独的Tomcat实例上运行并使用特定的TCP端口的地方工作。为了避免端口号与服务器上任何其他进程发生冲突,最适合这些应用程序使用的IANA端口范围是什么?
基于http://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.xml,这些是我目前看到的选项:
- 系统端口(0-1023):我不想使用任何这些端口,因为服务器可能正在此范围内的标准端口上运行服务
- 用户端口(1024-49151):鉴于这些应用程序是内部的,因此我无意要求IANA为我们的任何应用程序保留一个号码。但是,我想减少另一个进程使用同一端口的可能性,例如1521年的Oracle Net Listener。
- 动态和/或专用端口(49152-65535):此范围是自定义端口号的理想选择。我唯一关心的是这是否会发生:
一个。我将我的一个应用程序配置为使用端口X
b。该应用程序关闭了几分钟或几小时(取决于应用程序的性质),使端口闲置了一会儿,
c。操作系统将端口号X分配给另一个进程,例如,当该进程充当需要与另一个服务器建立TCP连接的客户端时。假设它在动态范围内,并且就操作系统而言,X当前未使用,则成功
。该应用无法启动,因为端口X已被使用