很多 iKuuu 用户都会在客户端设置里看到「WireGuard」这个选项,却不太清楚它和「更快、更安全」之间到底是什么关系。WireGuard 不是 iKuuu 的私有技术,而是一个开源的现代 VPN 协议,2016 年由密码学家 Jason Donenfeld 提出,2020 年被并入 Linux 内核主线。iKuuu 把它作为默认协议,正是因为它在速度和安全性之间做到了罕见的平衡。
在 WireGuard 出现之前,主流 VPN 协议要么像 OpenVPN 一样功能强大但代码庞杂,要么像 IPSec 一样历史悠久但实现复杂。WireGuard 的核心代码只有约 4000 行,而 OpenVPN 加 OpenSSL 依赖动辄几十万行。代码量小意味着可审计、可维护,也意味着更少的潜在漏洞面。
WireGuard 是什么
WireGuard 是一个基于 UDP 的三层 VPN 协议。它在通信双方之间建立一条加密隧道,把原始 IP 数据包封装后传输。与基于 TLS 的 OpenVPN 不同,WireGuard 从设计之初就只保留一种加密套件,没有协商过程——双方预先交换公钥,连接时直接加密传输,省去了握手协商的开销。
这种「去协商」的设计是它快的关键之一。传统协议在建立连接时需要来回协商加密算法、密钥长度等参数,WireGuard 则把这些都固定下来,连接建立几乎是即时的。
为什么它更快
WireGuard 的加密套件是经过精心选择的现代算法:ChaCha20 负责对称加密,Poly1305 负责消息认证,Curve25519 负责密钥交换。ChaCha20 是流式加密算法,在移动设备上执行效率远高于传统 AES 的软件实现,这也是 iKuuu 手机端使用 WireGuard 时省电又流畅的原因。
另一个速度来源是 WireGuard 运行在内核空间。由于它已被并入 Linux 内核,数据包在内核中完成加密与转发,减少了内核态与用户态之间的数据拷贝,吞吐量显著高于在用户态运行的协议。
| 特性 | WireGuard | OpenVPN | IPSec |
|---|---|---|---|
| 核心代码量 | 约 4000 行 | 数十万行 | 复杂 |
| 加密算法 | ChaCha20 | AES 等 | AES 等 |
| 运行空间 | 内核态 | 用户态 | 内核态 |
| 连接建立 | 无协商,即时 | TLS 握手 | IKE 协商 |
iKuuu 如何使用 WireGuard
iKuuu 把 WireGuard 作为默认协议,同时保留 Shadowsocks 与 V2Ray 作为备选。选择 WireGuard 作为默认,是因为在绝大多数家庭与移动网络下,它的 UDP 传输能带来最低延迟。当网络环境封锁 UDP 时,iKuuu 会自动切换到 Shadowsocks 或 V2Ray 的 TCP 模式,保证连接不断。
对用户而言,这套协议选择机制是完全透明的。你在客户端看到的只是一次流畅的连接,背后则是 iKuuu 在三种协议之间的实时调度。
性能对比与实测
在同等网络条件下,WireGuard 的吞吐量通常能达到 OpenVPN 的 2 倍以上。iKuuu 内部基准测试显示,在 100Mbps 带宽的测试环境里,WireGuard 单连接吞吐达到 89Mbps,而 OpenVPN 仅 41Mbps;移动端的差距更明显,WireGuard 的 CPU 占用约为 OpenVPN 的三分之一。
「换成 WireGuard 协议后,手机看视频发热明显小了,速度还更快。」——iKuuu 用户在客户端反馈区的留言
理解 WireGuard,也就理解了 iKuuu 为什么能同时做到「快」和「稳」。如果你还没体验过,可以免费下载 iKuuu,在设置中默认就是 WireGuard 协议。