Networking 内部应用程序的最佳TCP端口号范围
我在一个地方工作,我们的每个内部应用程序都在一个单独的Tomcat实例上运行,并使用一个特定的TCP端口为了避免端口号与服务器上的任何其他进程发生冲突,这些应用程序使用的最佳IANA端口范围是什么? 基于,以下是我目前看到的选项:Networking 内部应用程序的最佳TCP端口号范围,networking,tomcat,Networking,Tomcat,我在一个地方工作,我们的每个内部应用程序都在一个单独的Tomcat实例上运行,并使用一个特定的TCP端口为了避免端口号与服务器上的任何其他进程发生冲突,这些应用程序使用的最佳IANA端口范围是什么? 基于,以下是我目前看到的选项: 系统端口(0-1023):我不想使用这些端口中的任何一个 因为服务器可能正在该服务器的标准端口上运行服务 射程 用户端口(1024-49151):鉴于应用程序是内部的,我不打算要求IANA为我们的任何应用程序保留一个号码。但是,我希望降低同一端口被另一进程使用的可能
B应用程序关闭几分钟或几个小时(取决于应用程序的性质),让端口闲置一段时间,
C例如,当另一个进程充当需要TCP连接到另一个服务器的客户端时,操作系统将端口号X分配给该进程。如果X处于动态范围内,并且就操作系统而言,X当前未使用,则此操作成功,并且
D应用程序无法启动,因为端口X已在使用中
我不明白你为什么会在乎。除了“请勿使用低于1024的端口”特权规则之外,您应该能够使用任何端口,因为您的客户端应该可以配置为与任何IP地址和端口通信 如果他们没有,那么他们做得不是很好。回去好好干吧:-) 换句话说,在IP地址
X
和端口Y
上运行服务器,然后使用该信息配置客户端。然后,如果您发现必须在X
上运行与Y
冲突的其他服务器,只需重新配置服务器和客户端以使用新端口即可。无论您的客户端是代码,还是用户在浏览器中键入URL,这都是正确的
一、 和您一样,您也不会尝试获取IANA分配的号码,因为这应该是针对非常常见的服务的,很多很多环境都会使用这些服务(比如SSH、FTP或TELNET)
您的网络就是您的网络,如果您希望您的服务器位于端口1234(甚至是TELNET或FTP端口),这就是您的业务。举个例子,在我们的大型机开发区,端口23用于3270终端服务器,它与telnet截然不同。如果要远程登录到大型机的UNIX端,请使用端口1023。如果您在使用telnet客户端时未指定端口1023,这有时会令人恼火,因为它会将您连接到一台对telnet协议一无所知的服务器上-我们必须打破telnet客户端并正确执行:
telnet big_honking_mainframe_box.com 1023
如果您真的无法配置客户端,请选择第二个范围中的一个,如48042,然后使用它,声明这些框中的任何其他软件(包括将来添加的任何软件)必须远离您。简短回答:使用未分配的用户端口 超越者的答案-选择并部署资源发现解决方案。让服务器动态选择专用端口。让客户端使用资源发现 由于服务器想要侦听的端口不可用而导致服务器失败的风险是真实存在的;至少它发生在我身上。另一个服务或客户端可能会先到达那里 通过避免动态分发给客户机的专用端口,您几乎可以完全降低客户机的风险 如果您使用用户端口,则从另一个服务获取数据的风险最小。未分配端口的风险只是另一个服务碰巧被配置(或动态地)使用该端口。但至少这可能在你的控制之下
包含所有端口分配(包括用户端口)的巨大文档在这里:查找未分配的令牌。我决定从IANA下载分配的端口号,过滤掉使用的端口,并按大多数可用端口的顺序对每个“未分配”范围进行排序,降序排列这不起作用,因为csv文件标记为“未分配”的范围与其他端口号保留重叠。我手动扩展了分配端口号的范围,留下了所有分配端口号的列表。然后,我对该列表进行排序,并生成我自己的未分配范围列表 由于这个stackoverflow.com页面在我的主题搜索中排名很高,我想我会在这里为其他感兴趣的人发布最大的范围。这些都适用于TCP和UDP,其中范围内的端口数至少为500
Total Start End
829 29170 29998
815 38866 39680
710 41798 42507
681 43442 44122
661 46337 46997
643 35358 36000
609 36866 37474
596 38204 38799
592 33657 34248
571 30261 30831
563 41231 41793
542 21011 21552
528 28590 29117
521 14415 14935
510 26490 26999
来源(通过CSV下载按钮):
谢谢。在阅读了你的答案并仔细考虑之后,我决定选择在第二个范围内使用端口。我们选择46xxx,因为IANA目前在此子范围内分配的端口很少。我们之所以没有选择第三个范围,是因为我所描述的理论上可能(尽管可能性很小)的情况。对于网络上永远不会使用的协议,使用分配的端口不是更好吗?一个未分配的端口可能会在任何时候被分配,并给您带来问题。如中所示,“它既是tcp又是udp”-我可以打开所有这些端口,比如说
44100-44199
看起来很容易记住,因为udp和tcp上的音频44100采样安全吗?udp 44100-44199和tcp 44100-44199都是免费的?不幸的是没有。自从我发布后,已经有额外的预订了。现在您的范围内有一个端口。“z-wave-tunnel 44123 tcp z-wave安全隧道”幸运的是,我不认为我会在开发服务器lol上安装z-wave智能家居安全系统