一个人可以使用的最高端口号是什么?
当前回答
应该是65535。
其他回答
只是smashery的回答的后续。短暂的端口范围(至少在Linux上,我怀疑其他unix上也是如此)并不是固定的。这可以通过写入来控制 /proc/sys/net/ipv4/ip_local_port_range
唯一的限制(就IANA而言)是小于1024的端口被指定为已知端口。以上端口是免费使用的。 通常情况下,您会发现1024以下的端口限制超级用户访问,我相信正是出于这个原因。
端口的有效数字为: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
端口号是一个无符号16位整数,即65535。
根据我的理解,你应该只使用49151,因为49152到65535是为临时端口保留的
根据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中都是有效的端口。