如何为新服务选择默认的TCP / IP端口?

时间:2020-03-06 14:43:32  来源:igfitidea点击:

在开发将侦听TCP / IP端口的应用程序时,应该如何选择默认端口?假定此应用程序将安装在许多计算机上,并且希望避免端口冲突。

解决方案

转到此处并选择描述为"未指定"的端口

第一步:查看IANA列表:

在那里,我们会在列表的尾部看到

"动态和/或者专用端口是从49152到65535的那些端口"

因此,最好的选择是这些,但是一旦我们选择了一个,就可以一直在Google上搜索,看看是否有足够流行的应用程序已经"声明"了它

好了,我们可以在此处引用一些常用的端口号,并尽量不要使用任何其他端口号。

如果"向公众开放"是指我们要在自己的系统上开放端口,那么我将与系统管理员进行交谈,以讨论他们愿意使用哪些端口。

我们可能要避免使用此列表中的任何端口(维基百科)。

我只选择一个,一旦大众使用了该应用程序,该端口号就会被识别并包含在此类列表中。

选择一个不太常见的数字

我知道的最全面的IANA官方端口号和非官方端口号列表是nmap-services。

如果被广泛使用,是指我们希望将来防止其他人使用它,则可以在此处申请将其标记为IANA保留给应用

通常,从IANA列表中选择一个未分配的产品就足够了,但是,如果我们要谈论的是商业发布的产品,那么我们确实应该向IANA申请以分配一个产品。注意,这样做的过程很简单但是很慢。我上一次申请时,花了一年时间。

如果这是我们希望广泛使用的应用程序,请注册一个号码
在这里,所以没有人使用它。

否则,请随机选择一个未使用的。

在动态范围内使用一个的问题是,它可能不可用,因为它可能被用于动态端口号。

选择一个不会干扰最常见的守护程序和服务器的默认端口。另外,请确保未将端口号列为某些病毒的攻击媒介-一些公司制定严格的政策,无论如何都禁止此类端口。最后但并非最不重要的一点是,确保端口号是可配置的。

就像其他人提到的那样,请检查IANA。

然后检查本地系统/ etc / services以查看是否已经使用了一些自定义端口。

而且,请不要对其进行硬编码。确保它以某种方式是可配置的-如果出于其他原因,我们不希望让多个开发人员同时使用他们自己的本地化版本,请确保该配置是可配置的。