我在每个内部应用程序都在单个Tomcat实例上运行并使用特定TCP端口的地方工作。 为了避免端口号与服务器上任何其他进程发生冲突,最适合这些应用程序使用的IANA端口范围是什么?
基于http://www.iana.org/assignments/service-names-port-numbers/service-names- port-numbers.xml,这些是我目前看到的选项:
一个。我将我的一个应用程序配置为使用端口X b。该应用程序关闭了几分钟或几小时(取决于应用程序的性质),使端口闲置了一会儿, c。操作系统将端口号X分配给另一个进程,例如,当该进程充当需要与另一个服务器建立TCP连接的客户端时。如果它处于动态范围内,并且就操作系统而言,X当前未使用,则成功 。该应用程序无法启动,因为端口X已在使用中
一个。我将我的一个应用程序配置为使用端口X b。该应用程序关闭了几分钟或几小时(取决于应用程序的性质),使端口闲置了一会儿,
c。操作系统将端口号X分配给另一个进程,例如,当该进程充当需要与另一个服务器建立TCP连接的客户端时。如果它处于动态范围内,并且就操作系统而言,X当前未使用,则成功 。该应用程序无法启动,因为端口X已在使用中
我不明白你为什么会在乎。除了“请勿使用1024以下的端口”特权规则外,您应该可以使用任何端口,因为 您的客户端应该可以配置为与任何IP地址和端口通信!
如果不是,那么他们就不会做得很好。回去正确地做它们:-)
换句话说,在IP地址X和端口上运行服务器,Y然后使用该信息配置客户端。然后,如果发现您 必须 在X与发生冲突的服务器上运行其他服务器Y,只需重新配置服务器和客户端以使用新端口即可。无论您的客户端是代码还是在浏览器中键入URL的人,都是如此。
X
Y
我和您一样,不会尝试获取IANA分配的号码,因为这应该是针对如此普遍的服务,以至于 许多 环境会使用它们(例如SSH或FTP或TELNET)。
您的网络就是 您的 网络,如果您希望服务器位于端口1234(或者甚至是TELNET或FTP端口)上,那就是您的事。例如,在我们的大型机开发区域中,端口23用于3270终端服务器,这与telnet完全不同。如果要telnet到大型机的UNIX端,则使用端口1023。如果不指定端口1023使用telnet客户端,这有时会很烦人,因为它会将您连接到对telnet协议一无所知的服务器- 我们必须中断退出telnet客户端并正确执行以下操作:
telnet big_honking_mainframe_box.com 1023
如果您真的 _无法_使客户端可配置,请在第二个范围中选择一个,例如48042,然后使用它,声明这些包装盒上的任何其他软件(包括将来添加的任何软件)都必须避免使用。