我应该如何选择新工具的端口号?


13

我正在创建一个内部协作工具,它将使用一台中央服务器(在Intranet上)和一个或多个端口与客户端进行套接字通信。我知道许多端口是为特定目的保留的,而其他则通常用于某些类型的流量。

我应该如何选择一个默认端口,该默认端口最不可能被其他人“滥用”其工具?是否有一个数据库可以识别所有已知(甚至是非常规)端口使用情况?


3
通常,只有某些东西已经在使用服务器上的端口时,这才是一个问题。但是,端口应该是可配置的。我已经看到很多软件具有硬编码端口,这不是您想要的。
devicenull 2014年

@devicenull我绝对可以选择覆盖默认值。
杰斯·布朗宁2014年

3
如果胡须足够灰,则可以使用RPC并注册自己的端点。 msdn.microsoft.com/zh-CN/library/windows/desktop/…–
Ryan Ries

2
除非您有充分的理由不这样做,否则最好使用现有协议。a)对于大多数人来说,自然会认为您可以做得更好,这是不对的。但是,即使有可能,抵制它是否更好呢?b)网络工具/设备已经设置为可以使用现有标准。添加新的代码有很多障碍,需要执行的工作量很大。
JamesRyan 2014年

2
对于内部协作而言,任何大于1024且小于32768(应防止临时端口绑定)且未在IANA端口注册表中列出的内容都可以,这可以为您有效地与已使用该端口的内部部门进行通信。
马修·伊夫

Answers:


16

是的,IANA维护官方服务和端口号注册中心

RFC 6335中记录了获取分配给您的端口号的过程。任何端口分配都需要检查过程,但对于端口<1024则要严格得多。此类分配要求(除其他事项外)您的协议记录在RFC中。

(请注意,此过程相对较新,并且有许多已分配的端口已加入。)

对于<1024,端口1021和1022保留用于实验;除此之外,为了进行实验,您可以简单地使用> = 49152的动态端口。



3

在大多数情况下,最好只使用HTTP,因为迟早会有您需要穿越的防火墙。大多数操作系统允许在进程之间划分HTTP地址空间。


2
我很困惑,我不能在任何端口上使用HTTP吗?我不想默认为,:80或者:8080因为很可能已经使用了它们。我的问题仍然有效吗?
杰斯·布朗宁2014年

@JaceBrowning,是的,您可以,但是使用任何其他端口只是历史的奇数:-)。任何体面的操作系统都可以让您在应用程序之间划分HTTP名称空间。
伊恩·林格罗斯
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.