我在一个地方工作,我们的每个内部应用程序都在一个单独的 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,并且
d。应用程序无法启动,因为端口 X 已在使用中