快速回答
WireGuard 是一种从零设计的 VPN 协议,基于现代密码学且代码量极小,约四千行,而旧协议往往有数十万行。这使其速度快、耗电低、切换网络时能快速重连,并且更易审计。SecureNet 仅使用 WireGuard:没有协议选择菜单,因为没有更好的选项可供提供。
关键要点
- 约 4,000 行代码,相较于 OpenVPN 的堆栈有数十万行。代码更少,漏洞更少。
- 采用现代密码学(ChaCha20、Poly1305、Curve25519、BLAKE2s)。无协商,无弱选项。
- 约一秒即可连接,并能在从 Wi-Fi 切换到蜂窝网络时保持不中断。
- 比 OpenVPN 更低的电池消耗,因为每个数据包的工作量更少。
- 自 2020 年起已内置于 Linux 内核,并被大多数主流 VPN 服务采用。
协议的作用
VPN 协议是一套用于构建加密隧道的规则:两端如何证明身份、如何协商密钥以及如何封装每个数据包。每个 VPN 都使用一种协议。整个 2010 年代,大多数人只能在 OpenVPN(灵活但慢)和 IKEv2/IPsec(更快但复杂且实现不统一)之间选择。我们的 VPN 入门指南 讲解隧道本身;本文则讨论隧道的构成。
WireGuard 的不同之处
WireGuard 由 Jason Donenfeld 设计,核心理念只有一个:保持小巧。它不支持所有密码套件和选项,而是固定一套现代密码原语,并完全取消协商。于是得到的协议只有几千行代码,任何人都能在一个下午读完。
- 无密码协商。 双端已经明确使用哪种算法,无需降级,也不会出现配置错误。
- 无状态握手。 连接在一次往返内完成,因而感觉瞬时。
- 内置漫游。 如果因为从 Wi-Fi 步行到蜂窝网络而导致 IP 地址变化,隧道会直接在新地址上继续。
- 默认静默。 WireGuard 服务器不会响应未知密钥的报文,因此对扫描是不可见的。
WireGuard、OpenVPN 与 IKEv2 对比
| WireGuard | OpenVPN | IKEv2/IPsec | |
|---|---|---|---|
| 代码库 | 非常小 | 非常大 | 体积大,分布在操作系统各处 |
| 密码学 | 固定、现代 | 可配置,包含旧版选项 | 可配置 |
| 连接时间 | 约一秒 | 数秒 | 一至数秒 |
| 网络切换处理 | 无缝 | 通常会重新连接 | 良好 |
| 对 iPhone 的电池影响 | 低 | 较高 | 中等 |
| 审计难易度 | 高 | 低 | 低 |
这在 iPhone 上意味着什么
手机会不断切换网络并大部分时间处于休眠状态。每次网络变化都需要长时间重新协商的协议在手机上会显得卡顿,而每个数据包都进行大量计算的协议会在电池统计中体现出来。WireGuard 的漫游和轻量设计使得 SecureNet 能在你离开家时瞬间重新连接,且全天开启也不会成为电池负担。
为什么 SecureNet 只提供 WireGuard
一些 VPN 应用会提供协议选择菜单。我们曾考虑过,但最终放弃。每增加一种协议就意味着更多代码需要维护、更多潜在漏洞,而且大多数用户并不具备选择的能力。WireGuard 比其他方案更快、更简洁、审计更容易,我们在 iPhone、iPad 或 Mac 上没有任何场景会建议切换。因此不存在切换的需求。
配置更少并非限制,而是协议的整体设计理念,我们已将其保留在应用中。
实际速度表现
该协议去除了大部分加密开销,剩下的主要由距离和服务器负载决定速度。这也是为什么 SecureNet 的 Automatic 模式会根据延迟和负载挑选服务器,以及为何在设置中内置测速功能。更多内容请参见 VPN 会减慢网络速度吗?
常见问题
WireGuard 安全么?
安全。它使用当前广受认可的密码学,已接受正式分析,且其小巧的代码库比旧协议接受了更彻底的审计。
WireGuard 比 OpenVPN 更快吗?
始终如此。它每个数据包的工作量更少,且在一次往返内完成连接。在相同服务器上,WireGuard 通常提供更高吞吐量和更低延迟。
我可以把 SecureNet 切换到其他协议吗?
不能。SecureNet 只使用 WireGuard。没有协议设置,因为在 iPhone、iPad 或 Mac 上没有更好的选项可供选择。
WireGuard 在我在 Wi-Fi 与蜂窝网络之间切换时还能工作吗?
是的,这是它的设计目标之一。隧道会从新地址继续,而无需完整的重新连接。