最高可以使用的端口号是多少?
端口号是一个无符号的16位整数,最大值为65535。
最大的端口号是一个无符号短整型 2^16-1: 65535
已注册的端口是由互联网名称分配机构(ICANN)分配给某个用途的端口。每个注册端口在1024-49151范围内。
自2001年3月21日以来,注册机构为ICANN; 在此之前,它是IANA。
端口号小于已注册端口的被称为公认端口; 端口号大于已注册端口的被称为动态和/或私有端口。
据我的理解,你应该只使用49151及以下的端口号。因为从49152到65535的端口号是短暂端口所保留。
$ cat /proc/sys/net/ipv4/ip_local_port_range
后输出结果为 32768 61000
。至于是否应该使用系统的临时端口范围中的端口,我怀疑现代大多数网络操作系统都会跳过已经在使用中的端口。 - Keith Reynolds关于smashery的回答,这里是跟进。短暂端口范围(至少在Linux上是这样,我认为其他Unix系统也是)并不是一个固定值。这可以通过写入/proc/sys/net/ipv4/ip_local_port_range
进行控制。
根据IANA的规定,唯一的限制是低于1024的端口被指定为公共端口,高于此范围的端口是自由使用的。通常,你会发现低于1024的端口受到超级用户访问权限的限制,我认为这正是出于这个原因。
端口号的有效数字范围为: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
这取决于您所讨论的范围,但动态范围最高可达65535或2^16-1(即16位)。
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers