vnt 与 WireGuard 性能实测:协议差异和带宽极限
这次测试的目标不是证明某个方案绝对更快,而是把环境因素尽量剥离出来,看清楚 vnt 和 WireGuard 在同一网络条件下的性能差异。测试中有三个重要地址:10.66.0.1 是 WireGuard 中转服务器,10.26.0.10 是同一台服务器加入 vnt 后的地址,10.66.0.12 和 10.26.0.12 则是同一台 MacMini 在两套组网里的地址。
为了避免把 MacMini 的本地网络、运营商路径、NAT 行为误判成协议差异,报告分成两部分。第一部分只比较当前电脑到同一台中转服务器的 vnt 与 WireGuard 性能,这是较干净的协议对比。第二部分再比较当前电脑到 MacMini 的真实通信速度,这是实际使用体验,但里面包含了端侧网络和路径选择影响。
协议差异
在同一台中转服务器上对比时,WireGuard 的 TCP 下行优势明显。当前电脑从中转服务器下载时,WireGuard 多流 TCP 达到约 89.5 Mbps,vnt 约 50.1 Mbps。这更接近协议和实现本身在当前系统上的差异,因为服务端物理机器相同,公网出口也相同。
但 UDP 结果并不完全偏向 WireGuard。当前电脑向中转服务器发送 UDP 时,vnt 可以在 50 Mbps 保持 0% 丢包,而 WireGuard 在 50 Mbps 已出现约 36% 丢包。反过来,中转服务器向当前电脑发送 UDP 时,两者都能稳定到 90 Mbps,并且都在 100 Mbps 附近开始出现明显丢包。
| 测试项 | vnt | WireGuard | 结论 |
|---|---|---|---|
| TCP 上行到服务器 | 约 18.5 Mbps | 约 19.1 Mbps | 基本一致 |
| TCP 下行到本机 | 约 50.1 Mbps | 约 89.5 Mbps | WireGuard 更强 |
| UDP 上行无丢包 | 50 Mbps | 40 Mbps | vnt 更强 |
| UDP 下行无丢包 | 90 Mbps | 90 Mbps | 基本一致 |
| 延迟均值 | 约 46.2 ms | 约 41.4 ms | WireGuard 略低 |
环境瓶颈
这次测试里最重要的发现是:当前电脑所在网络是明显非对称的。到中转服务器的 TCP 上行只有 18-19 Mbps,但 TCP 下行最高可以到 90 Mbps 左右。UDP 上行可以短时推到 40-50 Mbps,但继续提升会快速丢包;UDP 下行则能稳定到 90 Mbps。
这说明服务器标称 200M 并不是当前体验的主要瓶颈。对当前电脑而言,瓶颈主要在本地网络出口、运营商路径、UDP 队列和隧道封装后的实际承载能力。iperf3 -u -b 50M 里的 50M 是发送端目标速率,不代表接收端一定能收到 50M。UDP 不会像 TCP 那样主动降速,链路承载不了时,结果就是接收端丢包。
| 方向 | TCP 极限 | UDP 无丢包上限 | 开始明显丢包点 |
|---|---|---|---|
| 当前电脑 → 中转服务器 | 18-19 Mbps | 40-50 Mbps | 50-60 Mbps |
| 中转服务器 → 当前电脑 | 50-90 Mbps | 90 Mbps | 100 Mbps |
实际通信
当前电脑到 MacMini 的真实路径和到中转服务器的路径不同,因此它不是纯协议测试,而是实际使用测试。在这个场景里,vnt 的当前电脑到 MacMini TCP 上行达到约 89.4 Mbps,WireGuard 只有约 22.3 Mbps。这很可能不是单纯协议效率差异,而是两套组网的路径选择不同:vnt 可能走了更优的点对点路径,而 WireGuard 当前拓扑更接近固定中转。
MacMini 到当前电脑方向更接近 Moonlight / Sunshine 串流的主视频方向。这个方向上,vnt 和 WireGuard 都能在 50 Mbps UDP 下保持 0% 丢包;到 60 Mbps 时,两者都开始出现约 5-6% 丢包;到 70 Mbps 以上就不适合作为稳定串流码率。
| 当前电脑与 MacMini | vnt | WireGuard | 判断 |
|---|---|---|---|
| 当前电脑 → MacMini TCP | 89.4 Mbps | 22.3 Mbps | vnt 明显更强 |
| MacMini → 当前电脑 TCP | 48.9 Mbps | 54.4 Mbps | WireGuard 略强 |
| MacMini → 当前电脑 UDP 50M | 0% loss | 0% loss | 都稳定 |
| MacMini → 当前电脑 UDP 60M | 6.47% loss | 5.55% loss | 都开始不稳 |
| MacMini → 当前电脑 UDP 70M | 17.76% loss | 20.96% loss | 不建议使用 |
如果目标是 Moonlight 串流,推荐码率不是按服务器 200M 计算,而应按 MacMini 到当前电脑的 UDP 稳定区间计算。保守值是 40-45 Mbps,激进值可以尝试 50 Mbps。不建议长期设置 60 Mbps+,因为它已经越过丢包阈值。
最终结论
剥离环境影响后,WireGuard 并不是所有维度都更快,vnt 也不是单纯的低性能替代品。在同一中转服务器的控制变量测试里,WireGuard 的 TCP 下行和延迟表现更好;vnt 的 UDP 上行无丢包上限更高;两者在 UDP 下行上限上几乎一致。
真实 MacMini 通信里,vnt 在当前电脑到 MacMini 的 TCP 上行上明显更强,这更像是拓扑和路径选择收益,而不是单纯协议效率。串流主方向上,两者都能稳定承载 50 Mbps UDP,因此实际使用可以优先从稳定性、可维护性和路由可控性选择方案。
如果追求可控、简单、安全和固定路由,WireGuard 更合适。如果当前网络环境下 vnt 能建立更优路径,尤其能绕开固定中转导致的瓶颈,那么 vnt 的实际速度可能反而更好。最终选择不应只看协议名,而应看同一目标、同一方向、同一负载下的实测数据。