我正在创建一个内部协作工具,该工具将使用中央服务器(在内部网上)和一个或多个端口与客户端进行套接字通信。我知道许多端口是为特定目的保留的,而其他端口通常用于某些类型的流量。
我应该如何挑选默认哪个端口最不可能被其他人“占用”用于他们的工具?是否有一个数据库可以识别所有已知(甚至非常规)端口使用情况?
答案1
是的,IANA 维护官方服务和端口号注册。
获取分配给您的端口号的过程记录在RFC 6335任何端口分配都需要一个审查过程,但对于小于 1024 的端口,审查过程要严格得多;此类分配要求(除其他事项外)您的协议记录在 RFC 中。
(请注意,这个过程相对较新,并且有许多已分配的端口是祖父级的。)
对于 < 1024,端口 1021 和 1022 保留用于实验;在此之上,对于实验,您可以简单地使用动态端口 >= 49152。
答案2
在大多数情况下,最好只使用 HTTP,因为迟早会有防火墙需要您穿越。大多数操作系统允许在进程之间划分 HTTP 地址空间。