![系统错误(10054)-远程主机强制关闭现有连接](https://linux22.com/image/1586036/%E7%B3%BB%E7%BB%9F%E9%94%99%E8%AF%AF%EF%BC%8810054%EF%BC%89-%E8%BF%9C%E7%A8%8B%E4%B8%BB%E6%9C%BA%E5%BC%BA%E5%88%B6%E5%85%B3%E9%97%AD%E7%8E%B0%E6%9C%89%E8%BF%9E%E6%8E%A5.png)
我运行的是 Altitude Software 制作的拨号器。很少有人可能熟悉这款产品,所以请耐心听我说完。
问题: Altitude 拨号器软件是一款在 Windows Server 2012 R2 上运行的应用程序。该操作系统在 VMware 6.7 上虚拟化。
代理/客户端通过名为 Altitude uAgent 的 Windows 应用程序连接到 Altitude 拨号器(服务器)。
Altitude 服务器日志有时会充满数千个以下错误:系统错误 (10054) - 远程主机强制关闭现有连接。
据我了解,这个错误源于操作系统。
服务器位于我们的托管合作伙伴处,所有客户端都通过网络层的 VPN 连接(而不是 PC 上的 VPN 客户端)。
当发生此错误时,所有用户都无法正常工作。
问题在于,无论是托管合作伙伴还是应用程序的创建者(Altitude Software)都无法看到发生了什么。我们的托管合作伙伴表示,他们看不到网络有什么问题。Altitude 表示,他们可以看到错误,但不知道是什么原因造成的。他们说这是应用程序之外的问题。这种情况令人无法忍受。
客户端使用 Windows 10 Pro。
我们已经尝试过:
我们尝试重新安装 Windows Server 2012 R2 操作系统,然后重新安装 Altitude 服务器。两周后问题再次出现。服务器本地 FW 已禁用,并且未安装防病毒软件或类似软件。
我们增加了 TCP 连接的数量
情况令人难以忍受,似乎没人能对此案有所解释。有什么想法可以追查这个错误吗?
答案1
我在 Altitude 担任技术工程师,在客户环境中遇到了同样的错误。错误 10054 本身是由于系统级套接字耗尽而导致的系统错误。我能够通过以下步骤解决问题。
- Altitude uCI 使用随机端口/套接字进行进程间通信和与其他组件通信。请按照以下命令配置/增加范围。默认情况下,TCP/UDP 连接的允许端口范围仅为 16000 左右。
netsh int ipv4 设置动态端口 tcp 启动=8200 num=57336
netsh int ipv4 设置动态端口 udp 启动=8200 num=57336
执行以下命令验证新的套接字分配。
netsh int ipv4 显示动态端口 tcp
netsh int ipv4 显示动态端口 udp
- 在安装 Altitude Assisted Server 的注册表中添加以下条目。
这将增加等待延迟的时间和 TCP 连接的数量。
问候:Umer