Colitu VPN
TCP · TLS 1.3 · Reality · XTLS Vision

VLESS Reality

VLESS Reality 将 VPN 连接隐藏在真实网站的 TLS 1.3 握手之中,因此探测者看到的是那个网站。介绍它的工作原理、局限,以及 Colitu 如何使用它。

VLESS Reality 是 Colitu Adaptive Connect 在 Android 和 iOS 上尝试的第二种模式,同时也是 Windows 和 Linux 上按连接时间排序的 TCP 模式之一。它将轻量级代理协议 VLESS 与 TLS 伪装层 Reality 结合在一起,专为使用深度包检测(DPI)的网络而设计。

它是什么

这两部分都来自开源网络工具集 Project X (Xray) 及其 XTLS 团队。

  • VLESS 是一种极简、无状态的代理协议。请求携带版本、用户 ID(一个 UUID)、命令和目标地址。VLESS 自身不做任何加密;它依赖下面的一层。
  • Reality 就是那一层:一种无需自有证书的 TLS 1.3 实现。在握手期间,服务器将自己呈现为一个真实的第三方网站。
  • XTLS Vision 是 Colitu 为 VLESS Reality 启用的一种流模式。它处理下文所述的“TLS 套 TLS”规律。

工作原理

  1. 设置。 服务器配置了一个真实网站作为目标、一对 X25519 密钥以及若干短 ID。应用通过加密通道从 Colitu 面板接收公钥、短 ID 和目标名称。
  2. ClientHello。 应用像浏览器访问目标网站一样发起 TLS 1.3 握手:SNI 字段携带该网站的名称,TLS 指纹通过 uTLS 库模仿 Chrome。
  3. 隐藏的认证。 应用根据自己的临时 X25519 密钥共享和服务器的公钥推导出共享密钥。然后用它把一小段认证数据(包括短 ID 和时间戳)加密后放入 ClientHello 的 session ID 字段,该字段通常存放的是随机字节。
  4. 由服务器决定。 如果认证数据有效,服务器自己用一份与共享密钥绑定的临时证书完成 TLS 1.3 握手,应用可以验证该证书。如果无效,服务器会把连接逐字节中继到真实的目标网站。
  5. 隧道。 握手之后,VLESS 请求使用 Vision 流在 TLS 1.3 会话内传输。

由于第 4 步,任何没有密钥而连接的人,包括主动探测,都是在与真实网站对话,收到的是它真实的证书,看到的是它真实的页面。

XTLS Vision 与“TLS 套 TLS”

你在网上做的大部分事情本身已经是 HTTPS,所以在 VPN 隧道内通常存在第二层 TLS 会话。嵌套的 TLS 会在数据包大小和时间间隔上形成可识别的规律,尤其是在内层握手期间。Vision 会识别内层 TLS 流量,对早期数据包进行填充以模糊这种规律,然后在不重复加密的情况下传递已加密的内层数据。这既降低了指纹特征,也降低了 CPU 负载。Vision 需要原始的 TCP 数据流,这就是 Colitu 对 VLESS Reality 使用它而对 VLESS XHTTP 不使用的原因。

为什么 Colitu 使用它

传统的 TLS 伪装需要 VPN 自己的域名和证书,它们可以被列入名单并按名称封锁,而且服务器在被探测时可能暴露自己。Reality 消除了这两个弱点:没有可被封锁的自有证书,并且探测看到的是一个真实的网站。在 DPI 主动搜寻 VPN 流量的网络上,这使 VLESS Reality 成为最难与正常 HTTPS 区分的模式之一。

它的强项

  • 被 DPI 过滤的网络: 类似浏览器的指纹、真实的第三方握手,且没有自有证书。
  • 封锁 UDP 的网络: 它运行在 TCP 之上,因此在 Hysteria2 无法工作的地方也能工作。
  • 主动探测: 探测会被中继到真实网站。
  • 稳定的有线和 Wi-Fi 连接: 在丢包很少时 TCP 表现良好,而 Vision 使开销保持较低。

局限,以及何时它不是最佳选择

  • 丢包链路上的 TCP。 在丢包严重的移动数据或糟糕的 Wi-Fi 上,它会像任何 TCP 协议一样降速;在那里 Hysteria2 通常更快。
  • 长时间的单个连接。 有些网络会切断长时间存活的 TCP 连接,或在一段时间后对其限速。VLESS XHTTP 正是为这种情况而存在的。
  • 不匹配可能被注意到。 SNI 指向一个网站,而 IP 地址属于另一个网络。对二者进行比较的过滤系统,或按 IP 地址封锁的过滤系统,仍然可以对该连接采取行动。
  • 没有永久的保证。 过滤系统在不断演进,今天有效的技术以后可能被检测到。这就是 Colitu 随时备好另外四种模式的原因。

Adaptive Connect 如何使用它

在 Android 和 iOS 上,VLESS Reality 排在第二位,紧跟在 Hysteria2 之后:一旦发现 UDP 被封锁或无法使用,它就是首选。在 Windows 和 Linux 上,它与其他 TCP 模式按测得的连接时间竞争。如果它的握手失败,或者在检查期间隧道没有承载任何流量,应用就会继续往下(在移动端依次是 VLESS XHTTP、Trojan 和 Shadowsocks 2022),并把失败的尝试往后放。

安全与加密

  • 加密: 采用 X25519 密钥交换的 TLS 1.3 握手;流量由 TLS 1.3 的 AEAD 密码保护。
  • 服务器认证: 只有当握手证明服务器掌握其 Reality 公钥背后的私钥时,应用才会接受该服务器。没有该密钥的中间人无法冒充服务器。
  • 客户端认证: 两层,即 Reality 认证数据(密钥和短 ID)以及 VLESS 用户 ID,后者是你的账户在该服务器上的凭据的一部分。
  • 密钥处理: 密钥、短 ID 和目标以加密形式交付给应用,从不公开。在 Colitu 服务器上,每种 VLESS 模式都有自己的 Reality 密钥对,因此二者可以各自独立轮换。
  • 没有访问日志: 参见安全页面。

来源

立即体验

VLESS Reality 已在每个 Colitu 应用中就绪;当网络需要时,应用会选用它。下载 Colitu,或浏览服务器位置。