我是一名 IT 顾问,经常需要在电脑上安装各种 VPN 客户端才能连接到客户的网络;从 2020 年 3 月开始,出于众所周知的原因,我开始一直在家工作。
直到几个月前,我有一个 100 Mb/s ADSL 互联网连接,因此我从未注意到我接下来要描述什么;然后我将连接升级到 FTTH 1Gb/s 连接,通常可以达到 800-900 MB/s 的下载速度和 100 Mb/s 的上传速度。
但是,当我安装一些 VPN 客户端,即 FortiClient 和 ForcePoint 时,发生了一些奇怪的事情:我的下载速度被限制在大约 400 MB/s,即使没有建立 VPN 连接,即使我杀死所有与 VPN 相关的进程并停止所有相关服务;即使没有使用 VPN 客户端软件,甚至没有为其运行任何进程,我的网络连接仍然非常缓慢;解决此问题的唯一方法是完全卸载 VPN 客户端软件。
起初我只在 ForcePoint 上遇到过这个问题,但后来我用 FortiClient 再次见证了它;其他 VPN 客户端(例如 Cisco AnyConnect 或 CheckPoint)没有出现问题。
为什么会这样?如果软件已安装但未实际使用,怎么会发生这种情况?
操作系统是 Windows 10 21H1 x64,具有最新更新。
附录。
这不是我 PC 上的一个孤立案例,我在几台不同的计算机上观察到它,并且其他人使用我提到的软件报告了它;这似乎是与安装那些特定的 VPN 客户端软件包有关的问题,只有当您真正拥有快速的 Internet 连接时才会注意到(减速似乎将其限制在 400 Mb/s 左右,如果您根本不会注意到它您的连接开始时较慢)并且在安装软件后立即发生,无论其实际使用情况如何;唯一的解决办法是卸载有问题的软件。
更新
看起来问题是由网络过滤器驱动程序引起的安装。
具体来说:
- ForcePoint 安装 a
ForcePoint VPN Client Driver
并将其绑定到系统中的所有网络适配器。 - FortiClient 安装一个
FortiClient NDIS 6.3 Packet Filter Driver
并将其绑定到系统中的所有网络适配器。
如果这些驱动程序未与 NIC 绑定,问题就会消失,并且会恢复完整的连接速度。
其他 VPN 客户端(Cisco、CheckPoint)不会这样做,也不会造成这种减速。
现在问题变成了:这些驱动程序能否安全地与真实的 NIC 解除绑定,而不影响 VPN 客户端的操作,还是需要它们?
这是在某处记录的吗?
我可以通过经验测试确认这些 VPN 客户端安装了一个网络驱动程序,该驱动程序会在每个网络接口上自动启用。
在 NIC 属性中禁用此驱动程序(在与该特定 VPN 无关的 NIC 上)可以解决此问题,并且 VPN 客户端仍然有效。
我不会对其进行逆向工程,但至少这可以摆脱可怕的速度上限,而无需每次都卸载 VPN 软件。
有同样的问题......为了便于启用/禁用 FortiClient NDIS 数据包过滤驱动程序,我做了两个 Powershell 命令:
使能够:
禁用:
您必须将 Name 参数更改为以太网适配器的名称或将其重命名为“Ethernet”。
将每个命令保存在 .bat 文件中并以管理员身份打开。
对不起,这些只是猜测:
即使在禁用状态下,连接到网络适配器的驱动程序也可能存在错误或配置为导致流量放大或过度碎片:
使用 PowerShell 调出完整列表
Get-NetAdapterBinding
,并检查各个适配器设置哪些设备启用了哪些绑定。禁用一般不使用的网络适配器,并单独禁用特定适配器上不需要的绑定(VPN软件A很有可能并且确实可以正确处理它没有连接到VPN软件B的虚拟网络适配器的情况)。RSC 或 MTU 配置存在严重问题:
通过 PowerShell 调出适配器选项列表,
get-netadapter | Format-list -property "*"
并比较是否在启用特定软件驱动程序的情况下更改了任何选项。降低 MTU 设置远非优雅但易于测试和恢复的解决各种错误和不兼容配置的方法。你的物理网卡驱动程序坏了。它们都是,所以至少升级它以删除旧的错误。
问题在于 Citrix 的 DNE 轻量级过滤器。您可以禁用它,但是您的 vpn 连接将无法正常工作。我不知道 citrix 做了什么,但他们的驱动程序要么占用了你的互联网带宽,要么以某种方式减少了你的互联网带宽。
wifi连接有某种修复,但以太网没有。