所有指南

什么是 uTLS?解读 TLS 指纹与 Reality

uTLS 是一个库,它让客户端能够精确控制自身 TLS 握手的形态,使其与真实浏览器一致。它之所以存在,是因为审查者可以通过 TLS 握手的指纹来识别 VPN 客户端,而 uTLS 让这份指纹与普通浏览器流量难以区分。

TLS 握手与指纹

每一条 HTTPS 连接都以 TLS 握手开始,客户端会发送一条 Hello 消息,列出它所支持的加密算法、扩展和设置。这些字段的精确顺序和组合构成了一份指纹。不同的软件,例如 Chrome、Firefox 或某个 VPN 库,会产生各不相同的特征,旁观者一眼就能认出。

JA3 如何暴露 VPN 客户端

JA3 是一种把 TLS Client Hello 的细节哈希成一段短签名的方法。审查者和防火墙维护着属于 VPN 和代理工具的 JA3 哈希清单。如果你的握手产生了一个已知的 VPN 指纹,即便流量本身完全加密、目的地看起来毫无问题,连接也会被立即封锁。

uTLS 究竟做了什么

标准 TLS 库会生成它们自己那种可被识别的 Hello 消息。而 uTLS 让应用能够发出与所选浏览器(例如当前版本的 Chrome)逐字节完全一致的握手。由此产生的 JA3 指纹与数百万真实用户相同,审查者若不同时封锁合法浏览器,就无法把它单独挑出来。

Reality 与 Xray 中的 uTLS

在 Xray 核心中,VLESS Reality 依靠 uTLS 向一个真实网站伪造出令人信服的握手。审查者看到的是一条通往热门域名、且指纹与浏览器完美吻合的正常 TLS 连接。随后 Reality 悄悄将通过认证的客户端重定向到代理,而未授权的探测则被转发到真正的网站。

为什么指纹如此重要

随着 DPI 日益精密,能否匹配 TLS 指纹往往决定了连接是稳定还是被瞬间封锁。一个协议即使加密得无懈可击,若握手看起来异常,仍会失败。uTLS 弥补了这一缺口,这也是它成为抗审查工具核心构件的原因。

Veepen 在 Xray 的基础上采用 VLESS Reality 和 uTLS,让你的握手在 Android 与 Android TV 上看起来就像真实浏览器。轻点一次即可连接,加入 @veepen_vpn 及时了解协议改进。