协议知识
Reality 协议速读:公钥、short-id 与 SNI 各是什么
Reality 不是独立的"代理协议",而是一种传输层的伪装方式,常与 VLESS 搭配。
先看结论
Reality 是一种传输层的 TLS 伪装方式:服务端借用一个真实站点的 TLS 握手,使连接看起来像在访问那个站点,因此不需要自己申请证书。它通常与 VLESS 搭配,客户端配置里会出现 public-key、short-id、server-name 三个字段。
配置里的关键字段
- server-name
- 借用的目标站点域名(SNI),要和服务端配置一致。
- public-key
- 服务端公钥,用来校验服务端身份。
- short-id
- 服务端允许的一个短标识,和服务端配置一致。
- flow
- 常搭配 VLESS 的流控取值,需要两端一致。
- client-fingerprint
- 客户端伪装的 TLS 指纹类型,由客户端实现提供。
为什么容易配错
- public-key 复制时少了字符。
- short-id 为空或和服务端不一致。
- server-name 写成了自己的域名,而不是服务端配置的目标域名。
- 客户端内核不支持 Reality 或版本过旧。
怎么排错
- 先用能用的节点验证客户端本身没问题。
- 逐项对照 server-name、public-key、short-id 与订阅里给的是否一致。
- 升级客户端和内核后重新更新订阅。
三个字段,各自从哪里来
| 字段 | 来源 | 为什么需要 |
|---|---|---|
| server-name | 服务端配置里借用的目标站点域名 | 握手时声明的域名,需要与服务端一致 |
| public-key | 服务端生成的密钥对中的公钥 | 客户端校验服务端身份 |
| short-id | 服务端配置里允许的短标识 | 区分不同用户或不同配置 |
这三个字段都由服务端决定,用户只需要原样使用订阅里的值。如果你手动抄写,要特别注意公钥这类长字符串很容易少一个字符。
Reality 与普通 TLS 方案的区别
普通 TLS 方案需要服务端自己拥有域名和证书;Reality 则不需要自己的证书,而是借用一个真实网站的 TLS 握手特征。对用户来说,最直观的差别是配置里会多出 public-key 与 short-id 两个字段,而不再有证书相关的选项。
排错时的优先级
- 先确认客户端内核支持 Reality。
- 核对 server-name、public-key、short-id 是否与订阅一致。
- 确认 flow 与服务端一致。
- 最后考虑网络本身对该连接的限制。
关于「Reality协议」的常见问题
用了 Reality 就一定更安全吗?
它改变的是 TLS 握手的伪装方式。整体安全性还取决于服务端实现、配置和线路。
Reality 要不要自己申请证书?
不需要,这是它与普通 TLS 方案的区别之一。
为什么 Reality 节点能连上,但有些网站很慢?
握手方式不决定访问目标网站的速度,慢的原因更可能在线路、节点负载或规则分流上。
Reality是什么?Reality public-key short-id 分别是什么?
Reality 是一种让服务端借用真实网站的 TLS 握手来伪装流量的机制,不需要自己的证书。public-key 是服务端的公钥,short-id 是客户端用来标识身份的短 ID,两者都要和服务端配置一致。