自写 tcp 服务器应该使用哪些端口

自写 tcp 服务器应该使用哪些端口

我即将为公司正在进行的项目编写 tcp-server。该服务器将使用多个端口执行不同的任务。在开发过程中,我们只使用我们喜欢的一些端口号:1400, 1500, 1600-1650

我们可以在生产服务器上使用这些端口吗?或者我们需要考虑一些安全性和/或兼容性问题?

答案1

正如 Paul 所说,端口 <1024 通常保留用于“核心”服务。(此外,许多操作系统要求绑定到端口 <1024 的服务以 root 身份运行)。

但是,还有其他常用的端口。IANA 端口号列表通常是一个不错的查看位置;您应该尽量避免使用其中已保留的任何端口。尽管实际上,这只有在您要使用在网络/服务器上具有保留端口的服务时才会产生影响,但每当您开发新的网络应用程序时,检查此列表都是一个好习惯。

答案2

不要设计您的软件默认使用 49152 以下的任何端口,因为这些端口由 IANA 保留(即使未分配)。用户可能能够在配置期间手动设置端口。如果您必须使用预配置的默认端口来发布软件,请使用 49152 到 65535 范围内的某个端口。

答案3

只要生产服务器上没有其他任何东西使用,超过 1024 就没问题。

但是,为什么不让它可配置呢?在配置文件/或目录或其他地方定义端口,这样如果确实有冲突,只需快速编辑即可将其更改为其他内容。

此外,此技术还允许您在同一台机器上运行多个实例(如果您在配置文件中定义了多个应用程序/进程所需的所有内容 - 这可能包括消息队列 ID、目录名称等)。我们当前的产品无法做到这一点,这确实很麻烦。

答案4

只需在 1025 和 65535 之间使用任意端口号即可。1024 以下的端口保留用于各种用途,基本上用于面向操作系统的任务。例如,25 用于 SMTP,23 用于 Telnet,80 用于 HTTP,443 用于 HTTPS。

您必须小心获取未被其他服务或程序使用的端口。

相关内容