VLESS Reality 是什么:怎么做到看起来像在访问正常网站、和 Trojan 的区别、客户端支持
VLESS + Reality 是近两年机场最常见的 TCP 类协议组合。Reality 让代理连接在握手阶段「借用」一个真实海外网站的证书,探测者看到的是对那个网站的正常 TLS 访问。本文讲它的原理、为什么比传统 TLS 更抗识别、和 Trojan、VLESS + TLS 的区别、哪些客户端支持,以及节点配置里的 SNI 和 fingerprint 是什么。
先说 VLESS
VLESS 是 Xray 项目的轻量传输协议,本身不加密,把加密交给外层的 TLS。它比 VMess 少了一层加密开销,速度略好。现在机场说的「VLESS 节点」几乎都是 VLESS 搭配 TLS 或 Reality。
Reality 解决什么问题
传统做法:机场买一个域名,申请证书,代理服务器用这个证书做 TLS。探测者看到的是对「某个不知名域名」的 HTTPS 连接。这个域名访问量异常、证书是新申请的、服务器上没有正常网站,加起来就是嫌疑。
Reality 的做法:服务端不用自己的证书。客户端握手时声明要访问某个真实的海外大网站(SNI 字段),服务端把握手转发到那个网站,拿它的真证书完成握手。探测者看到的是对一个真实大网站的正常访问,证书合法、域名正常。只有持有正确密钥的客户端能在这个握手里「对上暗号」,之后的数据才走代理。
和 Trojan 的区别
Trojan 的思路是「伪装成 HTTPS 网站」:服务器上真的跑一个网站,代理流量和网站流量混在一起。它需要自己的域名和证书,域名是暴露点。
Reality 不需要自己的域名,也不需要在服务器上跑网站。暴露点少了一个。两者的速度和稳定性没有本质差别,区别在抗识别。
配置里几个字段的含义
订阅链接导入后看不到这些,但手动配置或排错时会碰到:
| 字段 | 含义 | 要不要改 |
|---|---|---|
| sni / serverName | 借用的海外网站域名 | 不改,机场定的 |
| publicKey / pbk | 服务端公钥,客户端用它验证 | 不改 |
| shortId / sid | 区分同一服务端下的不同客户端 | 不改 |
| fingerprint / fp | 模拟的浏览器 TLS 指纹 | 不改,常见 chrome |
| flow | 流控,常见 xtls-rprx-vision | 不改 |
全部由订阅带来,自己改任何一项都可能连不上。导入后没节点或连不上,先看 导入订阅后没有节点。
客户端支持
- Xray 内核:v2rayN、v2rayNG、v2rayA,原生支持。
- sing-box 内核:sing-box、NekoBox、husi、Hiddify、Karing、GUI.for.SingBox。
- Mihomo 内核:Clash Verge Rev、FlClash、Clash Party、ClashMeta for Android。
- iOS 商业客户端:Shadowrocket、Streisand 支持;Surge、Quantumult X 对 Reality 的支持要看版本,部分需要机场提供别的协议。
- 不支持:原版 Clash 内核(Clash for Windows、老 ClashX),这是它们被淘汰的原因之一,见 Clash for Windows 还能用吗。
用的时候注意什么
- 系统时间要准:TLS 握手对时间敏感,差几分钟就失败,见 系统时间导致连不上。
- 不要改 SNI:网上有「改成别的域名更快」的说法,Reality 的 SNI 必须和服务端一致。
- 敏感时期:Reality 是目前 TCP 类协议里相对稳的,但没有任何协议能保证不受影响,备用方案见 敏感时期全部节点失效。
和 Hysteria2、AnyTLS 怎么选
同一个机场同时给 VLESS Reality、Hysteria2、AnyTLS 节点时:日常用 Reality,稳;晚高峰丢包严重切 Hysteria2;UDP 受限的网络下用 Reality 或 AnyTLS。详见 Hysteria2 是什么 和 AnyTLS 是什么。
相关
机场协议对比 · 老用户换机场怎么选 · v2rayN 教程 · sing-box 教程
常见问题
Reality 和普通 TLS 代理有什么区别?
普通 TLS 代理用自己域名的证书,域名和证书可以被追查。Reality 不需要自己的域名和证书,握手时转发到一个真实的海外网站,探测者看到的是那个网站的合法证书。
节点配置里的 SNI 填的是什么?
是被「借用」的那个海外网站的域名,比如某大厂的官网。这是机场服务端决定的,客户端照抄订阅即可,不要自己改。
fingerprint 是什么?要不要改?
客户端模拟的浏览器 TLS 指纹,常见值是 chrome、firefox、safari。订阅里给了什么用什么,改错会连不上。
哪些客户端支持 Reality?
Xray 内核(v2rayN、v2rayNG、v2rayA)、sing-box 内核(sing-box、NekoBox、Hiddify、Karing)、Mihomo 内核(Clash Verge Rev、FlClash)、Shadowrocket、Streisand。原版 Clash 不支持。
Reality 速度会慢吗?
不会。它只在握手阶段多做了一次转发,之后的数据传输和普通 VLESS 一样。晚高峰的降速来自线路而不是协议。
本文为信息整理与个人经验,不构成购买建议。机场政策与软件界面可能变化,以官方为准。发现过期内容请 联系纠错。