在自写的 tcp 服务器上使用哪些端口

The*_*ppo 4 linux port tcp

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

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

Mur*_*iar 8

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

但是,还有其他常用的端口。在IANA端口号列表,通常是一个很好的地方去寻找; 您应该尽量避免使用那里已经保留的任何端口。尽管实际上,这仅在您打算使用在您的网络/服务器上具有保留端口的服务时才会有所不同,但在您开发新的网络应用程序时检查此列表是一个好习惯.


Jul*_*ano 6

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


The*_*aul 5

如果生产服务器上的其他任何东西都没有使用,任何超过 1024 的值都应该没问题。

但是,为什么不使其可配置呢?在配置文件/或目录或其他内容中定义端口,那么如果确实发生冲突,只需快速编辑即可将其更改为其他内容。

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