WireGuard是什么?在中国能用吗,和OpenVPN有什么区别

约 4 分钟读完 5 次阅读

WireGuard 是一种 VPN 协议,2020 年 3 月进入 Linux 5.6 内核,核心代码只有 4000 行左右,用 UDP 传输,以速度快、配置简单、耗电少出名。但在中国大陆跨境使用,原版 WireGuard 很容易被识别和阻断:它的握手包有固定特征,官方也明确说不做流量混淆。

所以它好不好要看用在哪里。这篇先用一张表把它和 OpenVPN 放在一起比,再讲它为什么在国内容易被识别、有哪些缺点,以及两个流传很广的误解。

WireGuard 和 OpenVPN 的区别

对比项WireGuardOpenVPN
诞生时间2016 年前后公开,2020 年进入 Linux 内核2001 年
代码量约 4000 行(内核实现)十万行以上(含依赖的 OpenSSL 更多)
传输方式只有 UDPUDP 或 TCP 都可以
加密算法固定一套:Curve25519、ChaCha20-Poly1305、BLAKE2s通过 OpenSSL 可以选很多种
速度和耗电更快、更省电,手机切换网络时恢复也快相对慢,开销大
配置一对密钥加几行配置证书、参数多,配置复杂
流量混淆不做本身也不做,特征同样明显
中国大陆跨境使用容易被识别阻断早就容易被识别阻断

简单说:在不受干扰的网络里,前者几乎全面胜过 OpenVPN;但两者都不是为对抗流量识别设计的,在国内跨境使用都不合适。

为什么在国内容易被识别

这个协议的每个包开头都是同一种格式:第 1 个字节是消息类型(1 是握手发起,2 是握手回应,4 是数据),后面紧跟 3 个固定为 0 的字节。握手包的长度也是固定的:

包类型开头 4 个字节固定长度
握手发起01 00 00 00148 字节
握手回应02 00 00 0092 字节
数据包04 00 00 00不固定

内容是加密的,看不出你在访问什么;但「这是一条这种协议的连接」这件事,看前几个字节和包长就能判断出来。识别设备不需要解密,按特征拦下就行。

官方在「已知限制」里写得很直白:协议不关注混淆,混淆应该在它上面一层去做。这是一个设计取舍:协议保持简单,代价是特征明显。另外,国内一些网络对跨境 UDP 流量本身就有限速,只能走 UDP 的它在这里也吃亏。

它的四个缺点

  • 特征明显,不做混淆:上一节说的,这是在国内跨境用不了的主要原因
  • 只支持 UDP:官方明确不支持走 TCP,理由是 TCP 套 TCP 性能很差。遇到只放行 TCP 的网络(比如部分公司和酒店网络)就连不上
  • 服务器会记住客户端最后的 IP:它靠这个实现漫游,手机从 Wi-Fi 切到流量不用重连;代价是服务器内存里有你的真实 IP。商业 VPN 用它时要额外做处理
  • 加密算法不能换:好处是没有「选错算法」的风险,坏处是万一其中某个算法出问题,只能整体升级协议

两个流传很广的误解

「OpenVPN 支持 4096 位密钥,比它的 256 位安全」

这是把两种密钥放在一起比位数。4096 位说的是 RSA 这类非对称密钥,256 位说的是 Curve25519 这种椭圆曲线密钥,或者 ChaCha20、AES 这类对称密钥。不同类型的密钥,位数不能直接比:256 位的椭圆曲线密钥,强度大约相当于 3072 位的 RSA。它用的这套算法在安全性上没有短板。

「NordLynx 就是做了混淆的版本」

NordLynx 是 NordVPN 在这个协议基础上做的,额外加了「双 NAT」,用来解决上面说的「服务器记住客户端 IP」这个隐私问题,跟流量混淆无关。它的握手特征和原版一样。

适合用在哪些场景

场景适不适合
公司内网、家里和云服务器组网很适合,快、简单、稳定
境外两地之间、或者不经过审查的网络很适合
手机长期挂着 VPN,在意耗电适合
中国大陆跨境访问境外网站原版不适合,容易被识别
只能用 TCP 的网络环境不适合,它只有 UDP

需要在国内跨境使用的,要选本身就为抗识别设计的协议。几种常见协议按场景怎么选,见 VPN协议怎么选。

我们为什么选了 Reality

我们的主协议是 VLESS + Reality:握手时借用真实网站的证书,从外面看就是在访问一个正常的 HTTPS 网站,原理见 Reality协议是什么。备用协议是 Hysteria2,它同样走 UDP,但加了自定义证书和流量混淆,见 Hysteria2是什么。

在不受干扰的网络里,它比我们的主协议更简单、更省电,而我们并不提供它。如果你要的是给公司或家里的设备组网,自己搭一套会更合适,我们的服务在这件事上帮不上忙。

常见问题

WireGuard 是什么?

一种开源的 VPN 协议,代码精简、只走 UDP、用一套固定的现代加密算法,2020 年进入 Linux 内核。特点是快、配置简单、省电。

WireGuard 在中国能用吗?

国内的公司内网、组网这类不跨境的用法没问题。用来跨境访问境外网站的话,原版握手特征明显,很容易被识别阻断,不适合。

WireGuard 和 OpenVPN 哪个好?

不受干扰的网络里前者更好:更快、更省电、配置更简单。在国内跨境使用,两个都容易被识别,都不推荐。

WireGuard 有什么缺点?

不做流量混淆,特征明显;只支持 UDP;服务器会记住客户端最后的 IP;加密算法不能更换。

WireGuard 客户端有哪些?

官方提供 Windows、macOS、Linux、iOS 和 Android 客户端,都可以在官网找到下载入口。导入服务端给的配置文件或扫二维码就能用。

在线客服
正在加载...