rVPN 是一种新的开源协议,旨在通过确保 VPN 流量在 443 端口上与普通的 HTTPS 网络流量无法区分,从而提供“隐匿”连接。该协议由 PDG Global Limited 开发,旨在在传统 VPN 协议被网络审查者主动封锁或限速的环境中运行。

这张图片展示了 rVPN 协议在移动设备上的客户端应用程序。
通过 HTTPS 模拟实现隐匿
rVPN 隐匿的主要机制是其传输层,它使用基于 TLS 的 WebSocket。对于监控线路的审查者来说,这些流量看起来就像是 443 端口上的标准应用层数据。与许多具有独特握手的 VPN 不同,rVPN 的设计旨在缺乏可被封锁的指纹。
为了进一步规避检测,rVPN 节点配置为具备主动探测抗性。如果审查者探测服务器端点,节点将像普通网站一样响应,返回 200 OK 状态和真实的诱饵登录页面,而不是暴露其作为 VPN 网关的身份。
“rVPN 是一个开源协议,它可以安全地将您的流量传输到互联网上,且与普通的 HTTPS 无法区分,因此即使在 VPN 被封锁的地方也能正常工作。”
— rVPN · Encrypted stealth VPN over WebSocket/TLS
池化多路复用架构
识别 VPN 使用的一种常见方法是观察流量的“形状”。标准连接通常为每个独立流建立新的 TCP 和 TLS 握手,在重负载下会产生数百个并行会话的特征。rVPN 通过池化多路复用解决了这个问题。
在这种架构中,许多流共享一小部分长连接。无论客户端多么繁忙,这都能保持线路特征较小且正常。系统使用基于信用的流量控制,以确保大批量数据传输不会耗尽交互式会话的资源,并且支持 TLS 1.3 票据恢复以实现快速重连。
安全与实现
rVPN 核心使用 Rust 编写,以利用其内存安全保证,开发者声称这有助于消除整类常见的漏洞。该协议结合了最初用于 Signal 协议的 Double Ratchet 算法,为每条消息重新生成密钥,确保被盗取的密钥无法解锁过去的或未来的通信。
对于初始握手,rVPN 使用 X3DH(扩展三重 Diffie-Hellman)在不需要密码或账户的情况下建立安全密钥。该项目在 AGPLv3 许可证下发布,开发者提供可重现的构建,允许用户验证发布的二进制文件与开源代码一致。
此视觉效果确认了安全与实现部分提到的许可模型。
Hacker News 读者的反应
- 替代方案: 一位评论者建议,与其创建一个新协议,开发者可以简单地在现有协议(如 WireGuard)之上叠加一个模糊的传输层来实现隐匿。 评论 ↗
- 质疑: 几位评论者对项目关于内存安全和隐私的声明表示怀疑,其中一位用户指出要求用户以 root 权限运行 shell 脚本的讽刺之处。 评论 ↗
- 替代方案: 另一位用户指出 Xray-core VLESS 系列是绕过审查的潜在替代方案。 评论 ↗
以上为 Hacker News 讨论中观点的摘要,并非经过核实的事实。 阅读完整讨论 ↗