Windows 10 短暂端口耗尽但 netstat 却显示不是这样?

Windows 10 短暂端口耗尽但 netstat 却显示不是这样?

最近我发现,使用电脑一段时间后,网站和某些工具会停止连接到互联网,但连续的 TCP 连接仍然有效。Chrome 给出的错误消息只是“错误连接失败”。

一次看到了事件 4227在 Windows 事件查看器中,这就是我开始搜索有关它的信息并发现以下命令的原因:

netsh int ipv4 set dynamicport tcp start=10000 num=20000

执行此命令后,一切都恢复正常,但计算机运行更长时间会再次导致这种现象,我必须将数字增加到 30000。我假设这种情况会继续下去,但我通常只是重新启动。

互联网上有许多来源使用 netstat 来显示哪些进程可能占用了所有的临时端口,在他们的例子中,它显示了一个很长的列表,然而,在我的例子中,netstat 从未显示超过 20-30 个条目,然而执行

netsh int ipv4 show dynamicport tcp

重新启动后,结果为:

协议 tcp 动态端口范围


起始端口:10000

端口数量:21025

大量端口最终都会被消耗,而 netstat 的条目数量实际上从未改变。

这台电脑也不是很旧(大约一个月),装有戴尔 OEM Windows 10(诚然,出厂时安装了许多过度安装的软件)。我不知道接下来该怎么办。

我也尝试过 TCPView,但它也没有显示不健康的连接数。我已经在启动时禁用了几个服务和程序,认为其中一个有错误并导致了这种情况,但实际上并没有帮助。

除了过度膨胀的软件之外,我还安装了与我之前的电脑相同的程序,但从来没有出现过这个问题。

先谢谢您的帮助!

更新 1

也许值得一提的是,我在启动时将一个网络驱动器安装到 Z:,它由 Linux SMB 托管。

更新2:针对问题:Windows 10 TCP 连接丢失

我正在监控 TCPView 并注意到这一点:Chrome 定期开放新端口并关闭它们,但数量在增加

Chrome 不断建立新连接,但端口数量却不断增加。此外,Tobii 眼动追踪软件也使用一个端口做同样的事情。

需要注意的是,这不是重复的,效果与上述问题中描述的相同,但原因不同,我需要帮助找出原因。不过,我一定会执行建议的操作并保持更新。

更新 3:我执行了一些我认为可能会影响它的操作:

  1. 卸载了 VMWare Player(因为它创建了一个适配器并向我的 Wi-Fi 适配器添加了一些东西)
  2. 在 Wi-Fi 适配器上禁用 IPv6 辅助 TCPView 图像:第二张图片 我不知道这应该如何表现,端口号全局不断增加是正常的吗?我认为它会重新使用已发布的端口,而不是一直抓取下一个端口。

更新 4

尽管这个问题被警告为重复,但不是。后来我找到了一个解决方案,它没有在“重复”问题中描述,也不会解决该问题。

答案1

在监控 TCPView 一段时间后,我从未发现任何应用程序执行任何可能导致耗尽的特别奇怪的操作。经过更多搜索后,我整理出了一个解决方法,到目前为止(自提出问题以来)一直有效,没有再发生耗尽的情况。

我修改了一些注册表值:

应用解决方法

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"MaxUserPort"=dword:0000fffe
"TcpTimedWaitDelay"=dword:0000001e
"TcpNumConnections"=dword:00fffffe
"TcpMaxDataRetransmissions"=dword:00000005

恢复解决方法

Windows Registry Editor Version 5.00

[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters]
"MaxUserPort"=dword:00007930
"TcpTimedWaitDelay"=-
"TcpNumConnections"=-
"TcpMaxDataRetransmissions"=-

基本上,这个解决方法允许使用更多端口,并且可以更快地清理已使用的端口。我还没有找到根本原因,但它甚至在安全模式下也会发生,所以我不知道发生了什么。我可能会让它保持原样,只要这个解决方法有效并且我不再丢失连接!

更新Get-NetTCPConnection | Group-Object -Property State, OwningProcess | Select -Property Count, Name, @{Name="ProcessName";Expression={(Get-Process -PID ($_.Name.Split(',')[-1].Trim(' '))).Name}}, Group | Sort Count -Descending在 CMD 或 PowerShell 中以管理员身份运行此程序,发现 Tobii 服务存在问题。

正如您在此处看到的:

Count Name               ProcessName
----- ----               -----------    
30818 Bound, 4940        Tobii.Service

这是 Tobii 眼动仪在后台运行的服务。只需重新启动即可以正确的方式解决问题(无需修改上述任何限制)。尽管这仍然不是修复,但这不是我能控制的,因为这取决于该服务的开发人员。

相关内容