一个人可以使用的最高端口号是什么?
最大端口号为无符号短2^16- 1,65535
注册端口是由互联网公司指定的端口 指定名称与数字地址分配机构(ICANN)。每一个注册 端口范围为1024-49151。 自2001年3月21日起,注册机构为ICANN;在那之前 IANA。 小于已注册端口号的端口号被调用 知名港口;端口的值大于 注册端口称为动态和/或私有端口。 维基百科:注册端口
这取决于你所谈论的范围,但动态范围会上升到65535或2^16-1(16位)。
http://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers
只是smashery的回答的后续。短暂的端口范围(至少在Linux上,我怀疑其他unix上也是如此)并不是固定的。这可以通过写入来控制 /proc/sys/net/ipv4/ip_local_port_range
唯一的限制(就IANA而言)是小于1024的端口被指定为已知端口。以上端口是免费使用的。 通常情况下,您会发现1024以下的端口限制超级用户访问,我相信正是出于这个原因。
根据RFC 793,端口是一个16位无符号整型。
这意味着范围是0 - 65535。
但是,在该范围内,端口0 - 1023通常为特定目的保留。我说一般是因为,除了端口0之外,通常没有强制执行0-1023保留。TCP/UDP实现通常不强制0以外的保留。如果您愿意,可以在80、25或65535端口上运行web服务器的TLS端口,而不是标准的443端口。同样地,即使SMTP服务器在端口25上监听是标准的,您也可以在80、443或其他端口上运行它。
大多数实现为特定目的保留0——随机端口分配。所以在大多数实现中,说“监听端口0”实际上意味着“我不关心我使用什么端口,只要给我一些随机的未分配的端口来监听”。
因此,对使用0-65535范围内端口的任何限制,包括0,临时保留范围等,都是具体实现(即OS/驱动程序)特定的,然而,包括0在内的所有端口在RFC 793中都是有效的端口。
端口的有效数字为:0 ~ 2^16-1 = 0 ~ 65535 这是因为端口号是16位长度。
However ports are divided into: Well-known ports: 0 to 1023 (used for system services e.g. HTTP, FTP, SSH, DHCP ...) Registered/user ports: 1024 to 49151 (you can use it for your server, but be careful some famous applications: like Microsoft SQL Server database management system (MSSQL) server or Apache Derby Network Server are already taking from this range i.e. it is not recommended to assign the port of MSSQL to your server otherwise if MSSQL is running then your server most probably will not run because of port conflict ) Dynamic/private ports: 49152 to 65535. (not used for the servers rather the clients e.g. in NATing service)
在编程中,你可以使用0到65535的任意数字作为你的服务器,但是你应该坚持上面提到的范围,否则一些系统服务或一些应用程序将因为端口冲突而无法运行。 查看大多数端口的列表:https://en.wikipedia.org/wiki/List_of_TCP_and_UDP_port_numbers