WireGuard、OpenVPN、REALITY 到底怎么选,我的日常折腾笔记

6 分钟阅读

早高峰地铁里,手机在 5G 和站台 WiFi 之间来回跳,VPN 图标一会亮一会灭。你以为是“节点不行”,我一开始也这么骂。后来把日志打开才发现,大多数时候是协议的脾气和网络环境撞在一起。

先别急。

我平时电脑是 macOS,手机 iOS 和 Android 都用,家里还有个 OpenWrt 软路由给电视和 NAS 分流。不同设备对协议的容忍度不一样,最直观的差别就两个:掉线频率和电量。

延迟很诚实。

WireGuard:速度很香,但移动网络会教育你

WireGuard 基本是我默认选项,尤其在宽带、稳定的 WiFi 上,握手快,传输开销也小。它走 UDP,这件事既是优点也是麻烦源头:在某些运营商和公共热点环境里,UDP 会被限速、被丢包,甚至被“温柔地”当成不重要流量。

电量会掉。

不是说 WireGuard 更耗电,而是它在移动网络下如果丢包严重,你的客户端会更频繁重传,加上手机基站切换、NAT 映射变化,体感就像“忽快忽慢”。解决办法通常不优雅:要么开 persistent keepalive(代价是更频繁发包),要么在客户端里把 MTU 调小一点,少让分片把你坑死。

另一个细节是 DNS。WireGuard 自己不管 DNS,你用系统 DNS、DoH,还是让客户端推送,都可以。但现实里最常见的翻车是:隧道通了,DNS 还在走本地解析,访问某些站点就卡在“能连上但加载不出来”。在 iOS 上尤其烦,因为系统对每个网络接口的 DNS 选择有自己的想法。

OpenVPN:老派,但它真的能扛住一些烂网络

OpenVPN 我不喜欢它的“厚重”,但我也不否认它经常救场。你可以用 UDP,也可以用 TCP。很多公司网络把能出去的口子卡得很死,443 基本永远开着,这时 OpenVPN TCP 往往比 WireGuard 更容易活下来。

代价也直接写在账单上:CPU 占用更高,握手更慢,跑久了笔记本风扇会更勤快一点,手机也更容易热。再加上 TCP over TCP 的经典问题,一旦外层网络本来就是 TCP,里面再套一层 TCP,拥塞控制互相打架,网页可能“看起来在转圈但不报错”。

所以我现在把 OpenVPN 定位成“保底方案”。在酒店 WiFi、机场网络这种奇葩环境里,它能让你先把邮件发出去,别追求极限速度。

协议不是信仰。

VLESS+REALITY:像 HTTPS 一样走路,但配置确实烦

VLESS+REALITY 这套东西,我更多是在需要“看起来正常”的场景用。REALITY 的思路很直接:让连接在外观上更像普通 TLS 流量,减少一些粗暴识别带来的麻烦。你用 Xray 体系的客户端(比如 NekoBox、Hiddify、V2RayNG 的一些分支),配置项会比 WireGuard 多得多:UUID、flow、public key、short id、server name,少一个都不行。

烦在哪?第一是排错成本高。WireGuard 连不上,多半就是密钥、端口、路由三件事;REALITY 连不上,你得同时怀疑时间同步、SNI、服务端证书伪装目标、客户端指纹兼容性。第二是不同客户端的实现细节差异,尤其在 Android 上,我见过同一套参数在 A 客户端秒连,在 B 客户端死活握手不上。

好处也实在:在某些网络里,WireGuard 和 Shadowsocks-2022 会被针对得很明显,REALITY 反而更稳。缺点是你想把它做成“家里路由器一劳永逸”的那种体验,会比想象中折腾。

顺带一提 Shadowsocks-2022。它在一些场景下的速度和延迟非常好,客户端生态也成熟,但它更像一个轻量的传输方案,不像 WireGuard 那样天然是“全隧道 VPN”,做分流和全局接管时要更小心 DNS 和路由表,别让流量半进半出。

我现在怎么选:按设备和网络脾气来

我不会给你一个“永远正确”的答案,但我自己有个很土的判断顺序:先看网络是不是会折腾 UDP,再看你能不能接受耗电,最后才看速度。

  • 手机经常在地铁、商场、校园网这种环境跑:先试 WireGuard,不稳就换 VLESS+REALITY,当天要赶活就 OpenVPN 顶着
  • 家里 OpenWrt 给多设备用:WireGuard 省心;要做更复杂的分流、伪装,再考虑 VLESS+REALITY 或 Shadowsocks-2022
  • 公司网络限制多、只放行少数端口:OpenVPN TCP 依旧有存在感
  • 你只在固定宽带和自家 WiFi 用:WireGuard 通常最舒服

客户端也别乱挑,省得自己找罪受。我手头比较常用的是:

  • iOS:Shadowrocket、Streisand
  • Android:NekoBox、V2RayNG、Hiddify

有些“全能客户端”看起来啥都支持,但后台保活做得一般,锁屏后掉线你会以为是协议问题,其实是系统把它杀了。

快到收尾时说一句,如果你懒得自己配一堆参数,只想要个相对省事的成品,我最近也用过 DuduVPN,至少在我这几台设备上切换协议和导入配置不太折腾,想试的话可以从 https://t.me/duduvpnsbot 开始。

最后给个很实用的小动作:手机上遇到“能连但卡”的情况,先把客户端的 MTU 从默认值往下调到 1280 试试,再去怀疑节点和协议。

相关文章