Windows 10 TCP 连接丢失

Windows 10 TCP 连接丢失

我运行的是 Windows 10 专业版,并在 MSI 170A-Pro 主板上集成了 Realtek PCIe GBE 系列控制器。通常一切都很好。网络在 Linux 和 Windows 上运行良好且无中断。所以硬件似乎没问题。

但是,在使用 Windows 10 时,我几乎每天都会遇到一次连接中断的情况。不过症状有点奇怪:

  • 我无法通过 Chrome 或 Internet Explorer 连接到任何网站(Chrome 显示 ERR_CONNECTION_FAILED)
  • 除了 Google 通常可以工作(可能是因为与它的连接由 chrome 维护)
  • 我的 Google Talk 连接继续工作(似乎只影响新连接)
  • nslookup 适用于任何域名
  • 我可以 ping 我想要浏览的网站
  • 我有有效的 IPv4 和 IPv6 地址
  • 我可以 ping IPv4 和 IPv6 上的默认网关
  • Windows 网络诊断无法发现任何问题
  • Windows 提示我已成功连接到互联网
  • 网络上的其他设备继续没有问题(与路由器无关)

但是唯一的解决方案是通过控制面板选项重置网络并重新启动或通过调用netsh winsock reset管理控制台并重新启动。仅重新启动并不能解决问题。

到目前为止我做到了

  • 禁用网卡的电源管理
  • 升级到 Realtek 的最新驱动程序

我完全不知道到底出了什么问题。因为网络显然是可以工作的。只是其中的某个部分似乎不工作了。

如果有人知道如何进一步调试这个问题我洗耳恭听!

请注意这是一个有线网络

ipconfig 输出如下(连接正常时看起来完全相同)

Windows IP Configuration


Ethernet adapter Ethernet:

   Connection-specific DNS Suffix  . : w00t
   IPv6 Address. . . . . . . . . . . : 2a02:2450:1024:442:808:aa56:5c13:9413
   Temporary IPv6 Address. . . . . . : 2a02:2450:1024:442:a5e3:4f74:fb29:5d13
   Link-local IPv6 Address . . . . . : fe80::808:aa56:5c13:9413%3
   IPv4 Address. . . . . . . . . . . : 192.168.1.165
   Subnet Mask . . . . . . . . . . . : 255.255.255.0
   Default Gateway . . . . . . . . . : fe80::1e87:2cff:fe6a:b6b0%3
                                       192.168.1.1

Tunnel adapter isatap.w00t:

   Media State . . . . . . . . . . . : Media disconnected
   Connection-specific DNS Suffix  . : w00t

Tunnel adapter Teredo Tunneling Pseudo-Interface:

   Connection-specific DNS Suffix  . : 
   IPv6 Address. . . . . . . . . . . : 2001:0:9d38:6ab8:2cd7:1e65:3f57:fe5a
   Link-local IPv6 Address . . . . . : fe80::2cd7:1e65:3f57:fe5a%12
   Default Gateway . . . . . . . . . : 

一些附加信息:

  • 重新启动到 Linux 时,网络连接正常,重新启动回 Windows 时问题仍然存在
  • 完全关闭机器不能解决问题
  • 我的本地网络上的 HTTP 站点也无法访问
  • 问题与 DNS 无关,网站也无法通过 IP 地址访问
  • 与 Windows 共享的 SMB 连接也不起作用

在我看来,操作系统的 TCP 堆栈似乎不知何故“卡住了”。Ping (ICMP) 和 DNS (UDP) 可以工作,HTTP 和 SMB (TCP) 则不行。

这让我尝试了另一件事:我尝试使用 PuTTY 通过 ssh(TCP)连接到另一台机器,但出现了错误:Network error: No buffer space available

上述错误指出我https://serverfault.com/questions/131935/network-error-no-buffer-space-available这又促使我检查事件查看器,其中显示错误 4227:

TCP/IP 无法建立传出连接,因为所选的本地端点最近用于连接到同一个远程端点。此错误通常发生在传出连接以高频率打开和关闭时,这会导致所有可用的本地端口都被使用,并迫使 TCP/IP 重新使用本地端口进行传出连接。为了最大限度地降低数据损坏的风险,TCP/IP 标准要求从给定的本地端点到给定的远程端点的连续连接之间必须间隔一段最短时间。

禁用并重新启用设备时(知识库条目建议)错误只是在日志中重新出现。

似乎某些程序正在耗尽可用的传出 TCP 端口。因此问题变成:

  • 如何找出哪个程序是罪魁祸首?
  • 为什么重启不能解决这个问题?

答案1

EventID 4227 似乎与过多未完成的 TCP 连接有关。

这不是答案,但是以下第一步对于评论来说太长了:

  1. 跑步证监会/扫描
  2. 在设备管理器中删除网络适配器并重新启动
  3. 使用TCP查看器当发生这种情况时查看传出连接
  4. 通过设置增加最大传出连接数Tcp连接数 另请参阅本文
  5. 禁用 IPv6
  6. 重启 Chrome
  7. 以网络安全模式启动 Windows如果这种情况不再发生,那么就是某些已安装的应用程序造成的
  8. 在隐身模式下使用 Chrome 暂时禁用扩展程序
  9. 试用 Firefox
  10. 您是否打开了多个标签?或者当出现这种情况时,您是否始终打开某个特定的网站?

上述结果可能有助于定位问题。

答案2

尝试停止并禁用"IP Helper"服务并在适配器 IPv6 协议的属性中禁用(取消选中)。

答案3

我最近也遇到了这个问题,并且出现了类似的症状:

  • 油灰:网络错误:没有可用的缓冲区空间
  • TCPIP:事件 ID:4227
  • Bitdefender 防病毒软件:更新错误:-100

就我而言,重新启动确实暂时解决了该问题,大约需要 6 个小时。

我尝试了注册表/netsh 建议此主题没有成功。

经过一周的故障排除(当前端口进程黑客是有用的工具),我将问题缩小到使用以下工具监控路由器流量:SoftPerfect NetWorx使用即插即用。奇怪的是,多年来我一直使用这种组合,没有任何问题。

我的解决方案是禁用路由器上的 UPnP,并切换到使用 SNMP 通过 NetWorx 监控流量。


更新:切换到 SNMP 后,网络连接大约 3 天都正常,但问题再次出现,迫使重新启动。


更新:我相信我现在已经解决了这个问题,并且通常两周都不会再出现这个问题。

所做的更改包括:

  • 创建注册表项:
    [HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters] "StrictTimeWaitSeqCheck"=dword:00000001

    您必须设置StrictTimeWaitSeqCheck0x1,否则该TcpTimedWaitDelay值将不起作用。来源

  • 停止访问使用过多连接或大量半开连接的社交网站(SYN洪水?)
  • 删除了 Firefox 扩展(Kee - 密码管理器),从而创建了大量的半开连接(SYN 洪水?)
  • 监控流程高手柄数量胶粘物桌面信息稳步上升)
  • 残障人士服务:
    • UPnP 设备主机(NetWorx 不再需要)

      允许 UPnP 设备托管在此计算机上。如果停止此服务,则所有托管的 UPnP 设备都将停止运行,并且无法添加其他托管设备。如果禁用此服务,则任何明确依赖它的服务都将无法启动。

    • SSDP 发现(不需要,因为UPnP 设备主机已禁用)

      发现使用 SSDP 发现协议的联网设备和服务,例如 UPnP 设备。还宣布在本地计算机上运行的 SSDP 设备和服务。如果停止此服务,则不会发现基于 SSDP 的设备。如果禁用此服务,则任何明确依赖它的服务都将无法启动。

    • RIP 侦听器

      侦听使用路由信息协议版本 1 (RIPv1) 的路由器发送的路由更新。

    • IP 助手

      使用 IPv6 转换技术(6to4、ISATAP、端口代理和 Teredo)和 IP-HTTPS 提供隧道连接。如果停止此服务,计算机将无法获得这些技术提供的增强连接优势。

在所有这些变化中,我认为禁用IP 助手服务的效果最好。我的 ISP 对 IPv6 的支持有限,但我不确定这是否相关。


另外,我还发现更改 Firefox 的以下设置可以阻止它占用我几乎所有的 RAM(16 GiB,酷睿 i7-2600中央处理器):

  • dom.ipc.processCount = 2(默认为 8)
  • dom.ipc.processCount.web = 1

拥有更多内容进程可以提高使用多个选项卡时的性能,但也会占用更多内存。来源

答案4

以防万一:您是否有任何类型的防火墙或防病毒软件可以阻止 https 通信?我的防病毒软件曾经遇到过类似的问题,它会阻止我的所有 https 通信,像中间人攻击一样过滤它们。

我不明白为什么,但尝试禁用防病毒软件一分钟后,我注意到我可以再次浏览......

附言:如果您仅在某些 https 网站上遇到问题,请尝试检查它们是否使用旧的或无效的 SSL 证书...

[编辑] 好的,没有防病毒软件,所以让我们尝试其他选项..

  • 您说简单的重启(不关闭系统)不能解决问题。。但是如果您完全关闭系统,然后在几秒钟后再打开它,会怎么样?我曾因为无法正确重置而头痛,除非完全关闭电源……您可能需要检查一下。

  • 如果您在同一个本地网络上有其他计算机,请尝试检查是否可以连接到它们(当您遇到所遇到的问题时)

  • 你没有说你是如何连接到互联网的:我假设通过路由器共享连接...当你在那台电脑上遇到问题时,你是否能够从同一连接上的其他设备上网?

  • 如果你有其他连接(wifi、USB 转以太网适配器等),你可以尝试使用其中一个一段时间,看看是否仍然会发生这种情况(在我的win10系统中我不得不放弃使用集成网卡,因为它的驱动程序经常触发蓝屏并且没有win10版本)

  • 我不擅长 IPv6,但我过去遇到过问题。如果您不使用它,您也可以尝试禁用 IPv6 堆栈并仅使用 IPv4

  • 当您遇到网络锁定时,您还可以使用命令检查打开的连接 netstat,看看是否注意到一些奇怪的事情。

希望这可以帮助

相关内容