当前位置:  开发笔记 > 数据库 > 正文

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

如何解决《IPv4允许的最大TCP/IP网络端口号是多少?》经验,为你挑选了8个好方法。

可以使用的最高端口号是多少?



1> Greg Hewgill..:

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


"嘿,吉姆,我们应该支持多少个港口?" "只需将其设为16位就可以了.没有人能够同时打开几百个顶部."
@JessieArr - 这会教你尝试开个玩笑,这是一项严肃的事,你知道,这里没有时间围绕这样的事情:/
@JessieArr在这两种情况下都不是真正的65536问题,这是A)程序没有释放连接的问题,使它们处于netstat显示与B结合的"WAIT"状态.一些早期的Windows版本仅从1024-5000开始动态端口.即便如此,谁知道是否曾经发生过,因为没有任何程序曾经费心向任何人报告它无法获得动态端口,也没有窗口.所以这是一个理论上的问题,甚至不是真的由于65536号.Web浏览器可能是最大的连接用户.我的netstat输出中有297行.远离65K
@barlop我建议他们最初创建端口时,一台具有数百个连接的计算机可能被认为是最坏的情况。但是如今,Web服务器,网络设备等绝对可以克服端口数限制。微软撰写了一篇有趣的Technet文章,内容涉及如何在Windows环境中进行诊断和避免:https://blogs.technet.microsoft.com/askds/2008/10/29/port-exhaustion-and-you-or-why-the -netstat工具是您的朋友/
@JessieArr大多数IP堆栈使用源IP地址元组,源端口,目标IP地址和目标端口作为连接的唯一标识符.这意味着服务器可以拥有比可用开放端口多的_many_活动连接,并且端口数量仅对单个源和单个目标之间的开放连接数量施加限制(尽管非常大).我认为任何人都不会在任何时候运行超过65536个端口的服务器(或监听连接).

2> Brian R. Bon..:

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

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

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

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

维基百科:注册港口



3> Smashery..:

据我了解,你应该只使用49151,因为从49152到65535预留给临时端口


短暂的港口范围因系统而异.我用3.19.0-43-generic内核运行ubuntu linux.`$ cat/proc/sys/net/ipv4/ip_local_port_range`导致输出`32768 61000`.至于是否应该在一个系统的短暂端口范围内使用端口,我怀疑大多数(如果不是所有的)现代网络操作系统都会跳过已经在使用的端口.

4> Andrew Edgec..:

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

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



5> 小智..:

根据RFC 793,端口是16位无符号int.

这意味着范围是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中的有效端口.



6> Jim Burger..:

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

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


65535 = 2 ^ 16 - 1

7> Mosab Shahee..:

端口的有效数字为: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



8> Chris..:

它应该是65535.

推荐阅读
喜生-Da
这个屌丝很懒,什么也没留下!
DevBox开发工具箱 | 专业的在线开发工具网站    京公网安备 11010802040832号  |  京ICP备19059560号-6
Copyright © 1998 - 2020 DevBox.CN. All Rights Reserved devBox.cn 开发工具箱 版权所有