windows本身提供的端口范文机制的为题
windows提供给TCP/IP链接的端口号为1024-5000,并且每4分钟执来循环回收他们,就导致我们短时间跑大量的请求时端口被占满
尝试从大于 5000 的 TCP 端口进行连接时,会收到错误“WSAENOBUFS (10055) ”
- 项目
- <time class="" data-article-date="" aria-label="文章评审日期" datetime="2022-10-13T01:30:00.000Z" data-article-date-source="git" style="box-sizing: inherit; outline-color: inherit;">2022/10/13</time>
- 2 个参与者
反馈
本文有助于修复尝试从大于 5000 的 TCP 端口进行连接时出现的错误“WSAENOBUFS (10055) ”。
适用于:Windows Server 2012 R2、Windows 10 - 所有版本
原始 KB 编号: 196271
症状
如果尝试从大于 5000 的端口设置 TCP 连接,则本地计算机会响应以下 WSAENOBUFS (10055) 错误消息:
无法对套接字执行操作,因为系统缺乏足够的缓冲区空间或队列已满。
解决方案
重要
此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了加强保护,应先备份注册表,再进行修改。 如果出现问题,可以还原注册表。 有关如何备份和还原注册表的更多信息,请单击下面的文章编号查看 Microsoft 知识库中相应的文章:
322756 如何在 Windows 中备份和还原注册表
在“适用”部分中包含的产品中,默认的最大临时 TCP 端口数为 5000。 已在这些产品中添加了一个新参数。 若要增加临时端口的最大数目,请执行以下步骤:
-
cmd 中,用 regedit 命令打开注册表
-
在注册表中找到以下子项,然后单击“参数:
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters
-
在 “编辑” 菜单上,单击 “新建”,然后添加以下注册表项:
值名称:MaxUserPort
值类型:DWORD 值数据:65534 有效范围:5000-65534 (小数) 默认值:0x1388 (5000 小数) 说明:此参数控制程序从系统请求任何可用用户端口时使用的最大端口号。 通常,临时 (短期) 端口在 1024 和 5000(含 5000)值之间分配。 安全公告 MS08-037 发布后,Windows Server 2003 的行为已更改为与 Windows Server 2008 和 Windows Vista 更匹配的行为。 有关 Microsoft 安全公告 MS08-037 的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:951746 MS08-037:Windows Server 2008、Windows Server 2003 和 Windows 2000 Server (DNS 服务器端) 中 DNS 的安全更新说明:2008 年 7 月 8 日
951748 MS08-037:Windows Server 2003、Windows XP 和 Windows 2000 Server (客户端) 中 DNS 的安全更新说明:2008 年 7 月 8 日
953230 MS08-037:DNS 中的漏洞可能允许欺骗
-
退出注册表编辑器,然后重启计算机。
备注
另一个 TCPTimedWaitDelay 注册表参数确定关闭的端口等待多长时间,直到可以重复使用已关闭的端口。
网友评论