122

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

4

12 回答 12

54

这里选择一个带有描述的端口Unassigned

于 2008-09-25T15:10:16.817 回答
35

第一步:查看IANA 列表

你会在列表的尾部看到

“动态和/或专用端口是从 49152 到 65535 的端口”

因此,这些将是您更好的选择,但是一旦您选择了一个,您就可以随时在其上进行谷歌搜索,以查看是否有足够受欢迎的应用程序已经“认领”了它

于 2008-09-25T15:11:22.553 回答
7

如果通过广泛使用,您的意思是您希望防止其他人在未来使用它,您可以在此处申请将其标记为由 IANA 为您的应用程序保留

于 2008-09-25T15:20:14.357 回答
5

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

于 2008-09-25T15:13:46.683 回答
2

您可能希望避免使用此列表(维基百科)中的任何端口。

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

于 2008-09-25T15:12:34.687 回答
2

从 IANA 列表中选择一个未分配的产品通常就足够了,但如果您谈论的是商业发布的产品,您确实应该向 IANA 申请分配给您的产品。请注意,执行此操作的过程简单但缓慢;上次申请,用了一年。

于 2008-09-25T15:25:24.253 回答
2

正如其他人提到的,请检查 IANA。

然后检查您的本地系统 /etc/services 以查看是否有一些自定义端口已在使用中。

请不要对其进行硬编码。以某种方式确保它是可配置的——如果没有其他原因,您希望能够让多个开发人员同时使用他们自己的本地化构建。

于 2008-09-25T16:10:19.200 回答
1

如果这是针对您希望广泛使用的应用程序,请 在此处注册一个号码,以免其他人使用它。

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

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

于 2008-09-25T15:35:23.353 回答
0

好吧,你可以在这里参考一些常用的端口号,尽量不要使用别人的。

如果“向广大公众开放”是指您在自己的系统上打开端口,我会与您的系统管理员讨论他们觉得可以使用哪些端口。

于 2008-09-25T15:11:27.657 回答
0

选择一个不太 常见的数字

于 2008-09-25T15:13:36.153 回答
0

选择一个不会干扰最常见的守护进程和服务器的默认端口。还要确保端口号没有被列为某些病毒的攻击媒介——一些公司有严格的政策,无论如何他们都会阻止这些端口。最后但同样重要的是,确保端口号是可配置的。

于 2008-09-25T16:03:56.327 回答
0

使用 iana 列表。从以下位置下载 csv 文件:

https://www.iana.org/assignments/service-names-port-numbers/service-names-port-numbers.csv

并使用此 shell 脚本搜索未注册的端口:

for port in {N..M}; do if ! grep -q $port service-names-port-numbers.csv; then echo $port;fi; done;

并输入 2 个数字而不是 N 和 M。

于 2017-04-15T15:08:26.140 回答