【发布时间】:2010-09-13 03:06:31
【问题描述】:
在开发将侦听 TCP/IP 端口的应用程序时,应该如何选择默认端口?假设此应用程序将安装在多台计算机上,并且希望避免端口冲突。
【问题讨论】:
标签: networking tcp
在开发将侦听 TCP/IP 端口的应用程序时,应该如何选择默认端口?假设此应用程序将安装在多台计算机上,并且希望避免端口冲突。
【问题讨论】:
标签: networking tcp
转到here 并选择一个描述为Unassigned 的端口
【讨论】:
第一步:看IANA listing:
你会在列表的尾部看到
“动态和/或专用端口是从 49152 到 65535 的端口”
所以这些将是您更好的选择,但是一旦您选择了一个,您就可以随时在其上进行谷歌搜索,看看是否有足够受欢迎的应用已经“认领”了它
【讨论】:
如果通过广泛使用,您的意思是您希望防止其他人在未来使用它,您可以申请将其标记为由 IANA here 为您的应用保留
【讨论】:
我知道的最全面的官方 IANA 端口号和非官方端口号列表是nmap-services。
【讨论】:
从 IANA 列表中选择一个未分配的产品通常就足够了,但如果您谈论的是商业发布的产品,您确实应该向 IANA 申请为您分配一个。请注意,执行此操作的过程简单但缓慢;上次申请,花了一年时间。
【讨论】:
您可能希望避免使用来自this list(维基百科)的任何端口。
我只会选择一个,一旦该应用程序被大众使用,端口号就会被识别并包含在此类列表中。
【讨论】:
正如其他人提到的,检查 IANA。
然后检查您的本地系统 /etc/services 以查看是否有一些自定义端口已在使用中。
请不要对其进行硬编码。以某种方式确保它是可配置的——如果没有其他原因,您希望能够让多个开发人员同时使用他们自己的本地化构建。
【讨论】:
【讨论】:
嗯,你可以参考一些常用的端口号here,尽量不要用别人的。
如果“向广大公众开放”是指您在自己的系统上打开端口,我会与您的系统管理员讨论他们觉得使用哪些端口感到舒服。
【讨论】:
选择一个不会干扰最常见的守护进程和服务器的默认端口。还要确保端口号没有被列为某些病毒的攻击媒介——一些公司有严格的政策,无论如何他们都会阻止这些端口。最后但同样重要的是,确保端口号是可配置的。
【讨论】:
使用 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。
【讨论】: