什么是 VLESS Reality,它如何工作
搭配 Reality 的 VLESS 如何被设计成类似连接到真实网站的普通 TLS 连接,以及它为何力求看起来像 HTTPS。
VLESS 是 Xray 项目推出的轻量级代理协议。它本身做的事情很少:只携带用户 ID 和目标地址,把加密留给传输层。Reality 是 XTLS 团队专门为使用深度包检测(DPI)的网络构建的传输层。
Reality 解决的问题
隐藏代理的经典方法是用它自己的域名和证书将其包裹在 TLS 中。这种做法有薄弱环节:
- 域名和证书必须在某处注册,可以被按名称封锁;
- 如果网络运营方或网络过滤器自己连接服务器(主动探测),服务器可能会因异常的响应而暴露自己;
- 代理客户端的 TLS 指纹(密码套件、扩展)往往与浏览器的不同。
Reality 的工作原理
- 用别人的网站作面具。 服务器配置中指定一个真实、热门的网站。客户端像是要连接它一样发起 TLS 1.3 握手:SNI 字段携带该网站的名称。
- 浏览器指纹。 客户端使用 uTLS 库,复现 Chrome 或 Firefox 的 TLS 指纹。
- 秘密认证。 一个由与服务器公钥进行 X25519 密钥交换而得到的值,加上一个短 ID,被嵌入握手中。只有持有正确密钥的客户端才能生成它。
- 陌生人被送到真实网站。 如果没有密钥的人连接,比如网络过滤器的扫描器,服务器会直接把他们代理到真实网站。探测者看到的是真实的证书和真实的页面。
因此,服务器没有可以被封锁的自有证书,从外部看,这个连接被设计成类似普通的 HTTPS 连接;但并非无法被检测。
XTLS Vision
在 VPN 连接内部,你的大部分流量本身也是 TLS(HTTPS 网站)。“TLS 套 TLS”会留下数据包大小上的明显规律。Vision 模式会识别内层 TLS,并在不重复加密的情况下传递其数据,同时使数据包大小趋于平滑。这既降低了可见性,也降低了 CPU 负载。
局限
- Reality 运行在 TCP 之上,因此在丢包的网络上比 Hysteria2 这类基于 QUIC 的协议更慢。
- 面具网站的选择很重要:它必须支持 TLS 1.3,并且能从服务器所在的网络访问。
- 没有任何协议能保证永远有效:过滤系统也在演进,这就是备用方案如此重要的原因。
Colitu 如何设置它
在每台 Colitu 服务器上,VLESS Reality 运行在一个 TCP 端口上,同时在同一 Reality 层之上运行一个 VLESS XHTTP 变体,适用于会切断长时间 TCP 连接的网络。在有 DPI 的网络上,应用会选择 Reality;如果 Reality 无法连接,则会自动切换到 Hysteria2、Trojan 或 Shadowsocks 2022。服务器地址和密钥从不公开:应用在你登录后通过加密通道接收它们。
更多内容见安全页面。