机场知识 知识解读
Reality 是什么?无需域名证书的 TLS 伪装技术原理与参数解读
Reality 是 Xray 推出的传输安全层,借用真实网站的 TLS 握手,让代理服务器无需自有域名和证书。本文讲清原理、公钥与 shortId 等参数、VLESS + Reality 组合、局限与客户端支持。
- 作者
- 网络研究组
- 首次发布
- 最后更新
- 内容类型
- 知识解读
- 资料核对
- 阅读时间
- 约 4 分钟
信息可能随服务调整而变化,请以最新官方信息为准。
直接答案
Reality 不是独立的代理协议,而是 Xray 推出的一种传输安全层,用来替代传统 TLS。服务器不需要自己的域名和证书,而是在握手时借用一个真实网站的 TLS 特征:持有正确公钥的客户端能完成认证并建立代理,其他访问者和探测者则会被转交给那个真实网站。它最常与 VLESS 和 Vision 流控组合,即常说的 VLESS + Reality。
- 定义 Reality
- Xray 项目提出的 TLS 替代方案。服务端以某个真实网站为伪装目标,在 TLS 握手过程中用预先分发的密钥对客户端进行认证;认证通过则建立代理连接,否则将连接转发至目标网站,使服务器对外表现为该网站。
Key Takeaways · 要点速览
- Reality 是传输安全层,不是代理协议,通常与 VLESS 搭配使用。
- 服务器借用真实网站的 TLS 握手,不需要自有域名和证书。
- 未认证的连接会被转交给真实网站,抗主动探测能力较强。
- 客户端需要公钥、shortId、SNI、指纹等参数,任何一项不匹配都会连不上。
- Reality 不能经过普通 CDN,节点 IP 与伪装网站的归属差异仍可能成为特征。
Reality 的直接解释
在 Reality 出现之前,想让代理流量拥有标准 HTTPS 外观,就要给服务器准备一个域名和对应证书,Trojan、VLESS + TLS 都是如此。这带来几个问题:域名需要注册和维护,证书需要续期,自建网站的特征(新注册域名、证书签发记录、站点内容单薄)也可能被关注。
Reality 换了一个思路:服务器不再假装是「自己的网站」,而是在握手阶段表现得像某个真实存在的知名网站。合法客户端通过密钥认证进入代理通道,其他人连过来,看到的就是那个真实网站的握手与内容。
说明Reality 是传输安全层,与它搭配的代理协议最常见的是 VLESS。所以订阅里看到的通常是「VLESS + Reality」,而不是单独的「Reality 节点」。VLESS 本身的介绍见 VLESS 是什么。
工作原理
- 服务端配置一个伪装目标网站,并生成一对密钥,公钥分发给客户端。
- 客户端发起 TLS 握手,SNI 填写伪装目标的域名,并在握手消息中嵌入基于密钥计算的认证信息。
- 服务端检查认证信息:
- 认证通过:服务端与客户端完成握手,建立代理通道。
- 认证失败:服务端把这次连接原样转发给伪装目标网站,由真实网站完成握手和响应。
- 对探测者而言,这台服务器的行为与伪装目标网站一致。
这一设计把 Trojan 的「回落到正常网站」提前到了握手阶段,并且回落的对象是一个真实网站,而不是服务器自己搭的页面。
客户端需要的参数
| 参数 | 常见写法 | 作用 |
|---|---|---|
| 公钥 | public-key、pbk | 用于计算认证信息,必须与服务端私钥配对 |
| shortId | short-id、sid | 区分客户端的短标识,需在服务端允许列表内 |
| SNI | servername、sni | 伪装目标的域名,必须与服务端配置一致 |
| 指纹 | client-fingerprint、fp | 模拟浏览器的 TLS 握手特征,Reality 通常要求设置 |
| spiderX | spx | 爬虫路径参数,部分客户端提供,按订阅下发 |
| flow | xtls-rprx-vision | Vision 流控,与 VLESS 搭配时常见 |
注意Reality 节点对参数完整性要求很高。手动编辑配置时漏掉公钥、shortId 或改动 SNI,都会表现为节点超时或握手失败。使用订阅时不要手动改参数,更新订阅即可获取最新配置。
常见组合
| 组合 | 特点 |
|---|---|
| VLESS + TCP + Reality + Vision | 最常见的直连节点配置,兼顾免证书与 TLS in TLS 处理 |
| VLESS + gRPC + Reality | 基于 HTTP/2,支持多路复用 |
| VLESS + XHTTP + Reality | 较新的传输方式,客户端支持以最新说明为准 |
与传统 TLS 的对比
| 对比项 | 传统 TLS(如 Trojan、VLESS + TLS) | Reality |
|---|---|---|
| 自有域名与证书 | 需要 | 不需要 |
| 未认证访问看到什么 | 服务端设置的回落网站 | 真实伪装目标网站 |
| TLS 指纹 | 可选模拟 | 通常要求模拟浏览器指纹 |
| 能否经过 CDN | 可以(配合 WS 等) | 不能 |
| 客户端生态 | 最广 | Xray、Mihomo、sing-box 等为主 |
局限与需要注意的地方
- 不能走 CDN:服务器 IP 被干扰时,无法像 WS + TLS 那样借 CDN 绕开。
- IP 与域名归属:伪装目标是知名网站,而服务器 IP 属于某个云服务商,两者不一致仍可能被关注。服务端通常会挑选与机房位置、网络特征更匹配的目标,这部分由机场处理。
- 生态集中:主要由 Xray 推动,其他内核跟进,部分客户端支持有限。
- 不改变线路与 IP:Reality 解决的是握手外观,速度与 AI、流媒体可用性仍取决于线路和落地 IP。
客户端支持情况
| 客户端 | Reality 支持 |
|---|---|
| v2rayN(Xray 内核) | 支持 |
| Clash Verge Rev(Mihomo 内核) | 支持 |
| sing-box | 支持 |
| Shadowrocket / Stash | 以最新版本说明为准 |
| Surge | 以官方说明为准 |
sing-box 用户可参考 sing-box 使用入门;握手相关报错见 TLS 握手失败怎么办。
在机场中的使用场景
Reality 多用于直连节点:省去证书维护,抗主动探测能力较强,配合 Vision 也处理了 TLS in TLS 特征。专线中转节点对伪装要求较低,未必使用 Reality;需要 CDN 的备用节点则会使用 WS + TLS。订阅中同时存在 Reality 与 Trojan 节点时,可以在自己的网络下对比稳定性。
结论
Reality 用借用真实网站握手的方式,去掉了 TLS 方案对域名和证书的依赖,并把回落机制前移到握手阶段,是近几年 TLS 类伪装思路的重要变化。它的限制在于不能走 CDN、参数要求严格、客户端生态相对集中。确认客户端支持后,VLESS + Reality 是直连节点很值得优先测试的组合。
常见问题
Reality 和 TLS 有什么区别?
传统 TLS 方案需要服务器持有自己域名的合法证书,Reality 则借用真实网站的握手特征,不需要自有域名和证书。对用户来说,两者都提供加密;Reality 主要在免证书和抗主动探测方面有优势。
Reality 节点里的 SNI 能随便改吗?
不能。SNI 必须与服务端配置的伪装目标一致,改成其他域名会导致握手失败。使用机场订阅时保持订阅下发的参数即可。
Reality 能套 CDN 吗?
不能经过普通 CDN。Reality 依赖客户端与服务器直接进行握手认证,CDN 会终止 TLS 连接,破坏这一过程。需要经过 CDN 时通常使用 WS + TLS 等组合。
哪些客户端支持 Reality?
Xray 内核的 v2rayN、Mihomo 内核的 Clash Verge Rev 以及 sing-box 均支持。Shadowrocket、Stash 等以最新版本说明为准,Surge 以官方说明为准。