TheHippo Asked: 2009-05-25 09:31:30 +0800 CST2009-05-25 09:31:30 +0800 CST 2009-05-25 09:31:30 +0800 CST 在自写的 tcp 服务器上使用哪些端口 772 我即将为我公司正在进行的一个项目编写 tcp-server。服务器将使用多个端口来执行不同的任务。在开发过程中,我们只使用一些我们喜欢的端口号:1400, 1500, 1600-1650. 我们可以在生产服务器上使用这个端口吗?还是我们必须考虑一些安全和/或兼容性问题? linux port tcp 5 个回答 Voted Best Answer Murali Suriar 2009-05-25T09:48:55+08:002009-05-25T09:48:55+08:00 正如 Paul 所提到的,端口 <1024 通常保留用于“核心”服务。(此外,许多操作系统要求绑定到 <1024 端口的服务以 root 身份运行)。 但是,还有其他常用的端口。IANA 端口号列表通常是查看的好地方;你应该尽量避免使用任何已经保留的端口。尽管实际上,这仅在您要使用在您的网络/服务器上具有保留端口的服务时才会有所不同,但在您开发新的网络应用程序时检查此列表是一个好习惯. Juliano 2009-05-25T10:45:24+08:002009-05-25T10:45:24+08:00 不要将您的软件设计为默认使用低于 49152 的任何端口,因为这些端口是 IANA 保留的(即使是那些未分配的端口)。用户可以在配置期间手动设置端口。如果您必须使用预配置的默认端口来交付软件,请使用 49152 到 65535 范围内的某个端口。 The Archetypal Paul 2009-05-25T09:39:33+08:002009-05-25T09:39:33+08:00 任何超过 1024 的都应该没问题,如果你的生产服务器上没有其他任何东西使用的话。 但是,为什么不让它可配置呢?将端口定义在配置文件/或目录或其他内容中,然后如果确实发生冲突,只需快速编辑即可将其更改为其他内容。 此外,此技术允许您在同一台机器上运行多个实例(如果您在配置文件中定义了多个应用程序/进程所需的所有内容 - 这可能包括消息队列 ID、目录名称等)。我们目前的产品不这样做,这是众所周知的痛苦。 Robert Deml 2009-06-02T06:18:10+08:002009-06-02T06:18:10+08:00 我在某些事情上使用端口 2000 时遇到了麻烦。问题是很久以前使用该端口的病毒,并且某些路由器/防火墙/等对该端口上的数据持怀疑态度。我开始将端口号默认设置为 30,000 以上。 Chathuranga Chandrasekara 2009-05-25T10:10:18+08:002009-05-25T10:10:18+08:00 只是 1025 和 65535 之间的任何端口号。1024 以下的端口保留用于各种事物,基本上用于面向操作系统的任务。Ex 25 代表 SMTP,23 代表 Telnet,80 代表 HTTP,443 代表 HTTPS。 您必须小心获取未被其他服务、程序使用的端口。
正如 Paul 所提到的,端口 <1024 通常保留用于“核心”服务。(此外,许多操作系统要求绑定到 <1024 端口的服务以 root 身份运行)。
但是,还有其他常用的端口。IANA 端口号列表通常是查看的好地方;你应该尽量避免使用任何已经保留的端口。尽管实际上,这仅在您要使用在您的网络/服务器上具有保留端口的服务时才会有所不同,但在您开发新的网络应用程序时检查此列表是一个好习惯.
不要将您的软件设计为默认使用低于 49152 的任何端口,因为这些端口是 IANA 保留的(即使是那些未分配的端口)。用户可以在配置期间手动设置端口。如果您必须使用预配置的默认端口来交付软件,请使用 49152 到 65535 范围内的某个端口。
任何超过 1024 的都应该没问题,如果你的生产服务器上没有其他任何东西使用的话。
但是,为什么不让它可配置呢?将端口定义在配置文件/或目录或其他内容中,然后如果确实发生冲突,只需快速编辑即可将其更改为其他内容。
此外,此技术允许您在同一台机器上运行多个实例(如果您在配置文件中定义了多个应用程序/进程所需的所有内容 - 这可能包括消息队列 ID、目录名称等)。我们目前的产品不这样做,这是众所周知的痛苦。
我在某些事情上使用端口 2000 时遇到了麻烦。问题是很久以前使用该端口的病毒,并且某些路由器/防火墙/等对该端口上的数据持怀疑态度。我开始将端口号默认设置为 30,000 以上。
只是 1025 和 65535 之间的任何端口号。1024 以下的端口保留用于各种事物,基本上用于面向操作系统的任务。Ex 25 代表 SMTP,23 代表 Telnet,80 代表 HTTP,443 代表 HTTPS。
您必须小心获取未被其他服务、程序使用的端口。