尝试从大于 5000 的 TCP 端口连接时 (WSAENOBUFS) 10055) "。

本文有助于修复尝试从大于 5000 的 TCP 端口进行连接时 (10055) WSAENOBUFS) "错误。

适用于:  Windows Server 2012R2、Windows 10 - 所有版本
原始 KB 编号:   196271

症状

如果您尝试设置大于 5000 的端口的 TCP 连接,本地计算机将响应以下 WSAENOBUFS (10055) 错误消息:

由于系统缺少足够的缓冲区空间或队列已满,无法对套接字执行操作。

解决方案

重要

此部分(或称方法或任务)介绍了修改注册表的步骤。 但是,注册表修改不当可能会出现严重问题。 因此,请务必严格按照这些步骤操作。 为了加强保护,应先备份注册表,再进行修改。 如果出现问题,可以还原注册表。 若要详细了解如何备份和还原注册表,请单击以下文章编号以查看 Microsoft 知识库中的文章:
322756 如何在 Windows 中备份和还原注册表

在"适用"部分中包含的产品中,临时 TCP 端口的默认最大数量为 5000。 这些产品中添加了一个新参数。 若要增加临时端口的最大数量,请按照以下步骤操作:

  1. 启动注册表编辑器。

  2. 在注册表中查找以下子项,然后单击"**参数":

    HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters

  3. 在" 编辑" 菜单上,单击 "新建",然后添加以下注册表项:
    值名称:MaxUserPort
    值类型:DWORD 值数据:65534 有效范围:5000-65534 (decimal) Default: 0x1388 (5000 decimal) Description: This parameter controls the maximum port number that is used when a program requests any available user port from the system. 通常,在 1024 (5000(包含 1024 和 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 中的漏洞可能允许欺骗

  4. 退出注册表编辑器,然后重启计算机。

    备注

    一个额外的 TCPTimedWaitDelay 注册表参数确定关闭的端口在可以重用关闭的端口之前等待的时间。

更多信息

有关相关主题的详细信息,请访问以下 Microsoft 网站:

https://technet.microsoft.com/library/bb726981.aspx
有关相关主题的详细信息,请单击以下文章编号以查看 Microsoft 知识库中的文章:

314053 XP 的 TCP/IP 和 NBT Windows参数

基于 x64 的 Microsoft Windows

如果你的硬件随已安装的 Microsoft Windows x64 版本一起提供,你的硬件制造商会为 Windows x64 版本提供技术支持和帮助。 在这种情况下,硬件制造商提供支持,因为硬件Windows x64 版本。 硬件制造商可能使用唯一Windows自定义 x64 版本的安装。 唯一组件可能包括特定设备驱动程序,也可以包括可选设置以最大化硬件性能。 如果你必须具有 x64 版本的技术帮助,Microsoft 将提供合理的Windows帮助。 但是,您可能必须直接与制造商联系。 您的制造商最有资格支持制造商在硬件上安装的软件。 如果你单独购买了 Windows x64 版本(如 Windows Server 2003 x64 版本),请联系 Microsoft 获得技术支持。