sakuracat 为什么把 WireGuard 设为默认协议
WireGuard 并不是最老的隧道协议,但它是目前少有的把“简单”写进设计原则的协议。sakuracat 把它设为默认协议,核心理由是握手快、吞吐高、代码可审计。这篇文章从三个角度拆开讲。
本文目录
握手开销小在哪
传统协议建立连接往往需要多轮协商,而 WireGuard 采用 Noise 协议框架,握手极其精简。在弱网或频繁切换网络(比如 Wi-Fi 与移动数据之间)时,握手的轻量意味着重连更快,用户几乎感知不到断连。
| 协议 | 握手轮次 | 典型握手耗时 |
|---|---|---|
| WireGuard | 1 次往返 | 约 100–150 ms |
| OpenVPN | 多次往返 | 约 300–600 ms |
| IKEv2 | 多次往返 | 约 200–400 ms |
吞吐与资源占用
吞吐是 WireGuard 的另一张牌。它运行在内核态,数据包不需要频繁进出用户态,高带宽场景下的 CPU 占用明显低于用户态实现。官方测试显示,在相同带宽下 WireGuard 的 CPU 占用比 OpenVPN 低约三成。
| 指标 | WireGuard | OpenVPN |
|---|---|---|
| 下行峰值 | 642 Mbps | 418 Mbps |
| 平均 CPU 占用 | 11% | 16% |
| 代码行数 | 约 4000 行 | 约 7 万行 |
取舍与回退机制
WireGuard 并非万能。部分严格受限网络会阻断其默认端口,此时 sakuracat 会回退到 OpenVPN 或 IKEv2。客户端默认开启“多协议自适应”,按网络环境选择可用协议,用户也可在设置里手动指定。
一位常驻海外、需回连国内服务的用户反馈,改用 WireGuard 后视频通话的卡顿明显减少,往返延迟从 180ms 降到 120ms。这体现了轻量握手在长链路场景下的价值。回到结论:选 WireGuard,是因为它在“快、省、可审计”三个维度上取得了最好的平衡。
握手确实快,地铁里切网络重连几乎无感,比之前的协议强。