WireGuard vs OpenVPN:该如何选择?
如果你在 2026 年评估 VPN 协议,简短的回答几乎总是 WireGuard。但完整的回答更重要:OpenVPN 在某些场景下仍有不可替代的优势,而理解 WireGuard 为何在它擅长的领域获胜,能帮你做出更好的基础设施决策。
这是一篇务实的对比:不是 benchmark 数据堆砌。我们会覆盖协议概览、性能、安全姿态、可审计性,以及各自仍然适用的真实场景。
协议概览
WireGuard 是 Jason Donenfeld 设计的现代 VPN 协议,2020 年合并进 Linux 内核。它有意保持极简:内核态约 4,000 行代码(OpenVPN 用户态约 100,000+ 行),使用一组固定的现代密码学原语,状态机小到可以手工审计。
OpenVPN 是一个成熟、久经考验的基于 TLS 的 VPN 协议,诞生于 2001 年。它运行在用户态,支持广泛的密码学套件和传输模式(UDP 与 TCP),并被持续维护了二十多年。它是 VPN 协议里的瑞士军刀:灵活、被广泛理解、部署极广。
性能
WireGuard 在几乎所有 benchmark 中都比 OpenVPN 快得多,而且差距大到在生产中显著:
- 吞吐量。 WireGuard 在同样硬件上通常达到 OpenVPN 的 1-3 倍吞吐,多核服务器上甚至更高。在单核嵌入式设备上差距收窄,但 WireGuard 仍然领先。
- 延迟。 WireGuard 的握手是单次往返(约 1 RTT),采用 Noise IK 模式。OpenVPN 的 TLS 握手需要 2-3 RTT,重协商会引入更多。对交互式流量(游戏、语音、SSH),差异明显可感。
- 电池续航。 在移动设备上,WireGuard 的内核实现比 OpenVPN 的用户态进程高效得多。实际测量显示,持续使用 VPN 时电池寿命延长 2-4 倍。
- 漫游。 WireGuard 在网络切换(WiFi → 蜂窝、在不同基站间漫游)时不会断开会话。OpenVPN 也能恢复,但过渡更颠簸。
性能差异来自三个地方:内核态实现、现代密码学(Curve25519、ChaCha20、BLAKE2s:都针对常见 CPU 优化)、以及小到能塞进 CPU 指令缓存的代码体积。
安全姿态
两种协议在正确配置下都被认为是安全的。但它们采取了截然不同的方法:
WireGuard:
- 固定的密码学套件:不协商、不存在降级攻击。协议在密码学上是 opinionated 的。
- 对错误配置保持静默。如果 peer 无法认证,数据包被静默丢弃。这是特性而非 bug:意味着攻击者无法通过探测你的端点获取信息。
- 通过 Noise IK 天然提供前向保密。
- 没有密码学可协商的灵活性。协议的小表面积意味着没有“错误”的配置可以落入。
OpenVPN:
- 高度可配置的密码学套件。AES-256-GCM 是现代默认,但运营方可以(也常常会)配置较弱的密码学。错误配置是真实风险。
- 默认详细日志。对调试有用,但冗长度给“日志泄露”创造了更多机会。
- 通过 TLS session ticket 或 DH 密钥交换提供前向保密,取决于配置。
- 让 OpenVPN 强大的灵活性也意味着要审计的东西多得多。多年来的 CVE 主要出现在可选特性(压缩、脚本等)而非核心协议。
如果你的威胁模型看重“协议小到一个人能读完每一行”:WireGuard 胜。如果看重“我必须在遗留硬件上跑 FIPS 验证的 AES”:OpenVPN 仍有它的小众位置。
可审计性
WireGuard 的头条数字是内核实现中约 4,000 行代码。这小到有经验的审阅者可以在几天内审计完整个协议,学术界也已对基于 Noise 的握手做了形式化验证工作。
OpenVPN 用户态约 100,000+ 行代码(不包括 OpenSSL 依赖:它本身就是一个庞大的攻击面),实际上只能由团队审计,并且审计面会随着特性增加而不断变化。多年来 OpenVPN 确实出现过真实的安全问题:最著名的是 2017 年的 “port fail” 漏洞,通过重定向响应泄露了客户端 IP。
何时使用哪一种
使用 WireGuard 的场景:
- 你在搭建任何新东西(2026 年的默认选择)。
- 性能重要:移动设备、实时流量、大文件传输。
- 你想要最小的攻击面和小而可审计的代码库。
- 你在 Linux、macOS、Windows、iOS 或 Android 上运行(都有一流的 WireGuard 支持)。
- 你需要在网络间快速漫游(移动、出行、多 WiFi 环境)。
使用 OpenVPN 的场景:
- 你需要运行在不能跑现代内核的硬件上(某些嵌入式路由器、遗留网络设备)。
- 你需要 TCP 传输(WireGuard 仅 UDP;某些限制性网络会屏蔽 UDP,OpenVPN-over-TCP 能穿透它们)。
- 你出于合规原因需要 FIPS 验证的密码学:OpenVPN 有 FIPS 验证构建,WireGuard 暂时没有。
- 你已有正常工作的 OpenVPN 部署,迁移成本不划算。
两者都用的场景:
- 你在运营公共服务 VPN,想兼容遗留客户端。对大多数团队来说这是正在消失的需求:WireGuard 支持如今已普及。
OpenFreeNet 使用什么
OpenFreeNet 通过 VLESS Reality(TCP)传输,运营方启用时还提供 TUIC 与 Hysteria2(UDP)。Mesh 中的每个网关都提供这些配置,你的客户端可以用任何兼容客户端:Clash、sing-box、Surge、Shadowrocket 或 QuantumultX。
想了解网络在这些协议之上的架构,见 什么是 Gateway Mesh VPN。
延伸阅读
- WireGuard 项目站, 协议规范、白皮书、性能论文。
- OpenVPN 文档, 配置参考。
- Noise Protocol Framework . WireGuard 底层使用的握手。
: OpenFreeNet 团队