虽然WireGuard在Windows上的性能已经非常出色
如果您经常使用 VPN(虚拟专用网络),您会很高兴听到一个名为 WireGuardNT 的新项目。对于那些不熟悉的人来说,WireGuard 是一种相对较新的 VPN 隧道协议,它采用现代密码学标准,具有安全的代码库,并且具有出色的性能。它已集成到版本 5.6的Linux 内核中,但迄今为止,仅在 Windows 上有用户空间实现。这就是 WireGuardNT 的用武之地:它是 WireGuard 到 Windows 内核的本机端口,它有望使事情变得更快。
Windows 上的 WireGuard 目前使用一个共享的 Go 代码库和一个名为Wintun的 TUN 驱动程序。它在用户空间工作,正如公告所说,它“引导数据包进出 Wintun 接口”。使用 WireGuardNT,整个协议直接在 Windows 的网络堆栈中实现,就像在 Linux 上一样。
虽然 WireGuard 在 Windows 上的性能已经非常出色,但我们的计划是通过 WireGuardNT 让它变得更好。不过,这个项目仍处于早期阶段,但即使在进行额外的调整和优化之前,通过在内核中本地化它仍然更快。这可以部分归因于旧的wireguard-go/Wintun实现发生的所有上下文切换的开销和延迟减少。
但是新的 WireGuardNT 实现比旧的用户空间版本快多少?通过有线连接,开发人员看到的速度高达 7.5Gbps;开发人员还注意到与 Wi-Fi 相比的显着性能改进。例如,一位使用 Intel AC9560 WiFi 卡的测试仪在没有 WireGuard 的情况下获得了约 600Mbps,通过 WiFi 使用旧用户空间版本获得了约 95Mbps,以及通过 WiFi 实施 WireGuardNT 获得了约 600Mbps。由于新的原生内核端口,基本上消除了旧用户空间版本对无线性能的影响,并且有线性能得到了显着提升。
如前所述,该项目仍处于早期阶段。为了准备好发布,WireGuard for Windows 客户端的 0.4.z 版本中的项目分为三个阶段。第一阶段,我们现在处于,看到隐藏在“ExperimentalKernelDriver”注册表旋钮后面的 WireGuardNT,所以如果你不打开它,它就不会被启用。第二阶段将看到默认启用的本机内核实现。第三个也是最后一个阶段将看到从 Windows 客户端中删除旧的 wireguard-go/Wintun 用户空间实现,尽管它仍将被维护以支持其他应用程序和用途。
与此类实验性版本的情况一样,开发人员 Jason Donenfeld 希望人们能够尝试以发现错误并留下反馈。WireGuardNT 现在是 Windows 的 WireGuard 客户端的一部分,它的版本是 0.4。你可以在这里下载,或者你可以阅读更多关于该项目在这里。