IPv4允许的最大TCP / IP网络端口号是多少?

时间:2008-09-22 04:50:39

标签: tcp network-protocols

可以使用的最高端口号是什么?

8 个答案:

答案 0 :(得分:515)

端口号是无符号的16位整数,因此为65535。

答案 1 :(得分:134)

最大端口号是无符号短路2 ^ 16-1:65535

注册端口是由互联网名称与数字地址分配机构(ICANN)指定用于特定用途的端口。每个注册的端口都在1024-49151范围内。

自2001年3月21日起,注册机构是ICANN;在此之前是IANA。

数字低于注册端口的端口称为众所周知的端口;数字大于已注册端口的端口称为动态和/或私有端口。

Wikipedia : Registered Ports

答案 2 :(得分:64)

根据我的理解,你最多只能使用49151,因为49152到65535只保留给Ephemeral ports

答案 3 :(得分:36)

只是对smashery答案的跟进。短暂的端口范围(至少在Linux上,我怀疑其他Unices)也不是固定的。这可以通过写入来控制 /proc/sys/net/ipv4/ip_local_port_range

唯一的限制(就IANA而言)是指1024以下的端口被指定为众所周知的端口。上面的端口是免费使用的。 通常你会发现1024以下的端口仅限于超级用户访问,我相信这是因为这个原因。

答案 4 :(得分:12)

根据RFC 793,端口是16位无符号整数。

这意味着范围是0 - 65535。

但是,在该范围内,端口0-1023通常被保留用于特定目的。我一般说,因为除了0号港口,通常没有强制执行0-1023预订。 TCP / UDP 实现通常不会强制执行除0之外的预留。如果您愿意,可以在端口80或25或65535而不是标准443上运行Web服务器的TLS端口同样,即使它是SMTP服务器在端口25上侦听的标准,您也可以在80,443或其他服务器上运行它。

大多数实现为特定目的保留0 - 随机端口分配。所以在大多数实现中,说“侦听端口0”实际上意味着“我不关心我使用什么端口,只需给我一些随机未分配的端口来监听”。

因此,使用0-65535范围内的端口(包括0,短暂预留范围等)的任何限制都是实现(即OS /驱动程序)特定的,但是所有(包括0)都是有效的RFC 793中的端口。

答案 5 :(得分:11)

这取决于您所讨论的范围,但动态范围最高可达65535或2 ^ 16-1(16位)。

http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers

答案 6 :(得分:7)

应该是65535。

答案 7 :(得分:5)

端口的有效数字为:0到2 ^ 16-1 = 0到65535
那是因为端口号是16位长。

但是端口分为:
知名端口:0到1023(用于系统服务,例如HTTP,FTP,SSH,DHCP等)
注册/用户端口:1024至49151(您可以在服务器上使用它,但是请小心一些著名的应用程序:例如Microsoft SQL Server数据库管理系统(MSSQL)服务器或Apache Derby Network Server等此范围之内,即不建议将MSSQL的端口分配给您的服务器,否则,如果MSSQL正在运行,则您的服务器很可能由于端口冲突而无法运行)
动态/专用端口:49152至65535。(不用于服务器,例如,用于NATing服务的客户端)

在编程中,您可以为服务器使用0到65535之间的任何数字,但是您应遵循上述范围,否则某些系统服务或某些应用程序将由于端口冲突而无法运行。
在此处检查大多数端口的列表:https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers