Reality到底怎么设置,才能防止别人偷流量?
一、Reality被偷流量的原理
对于非法请求, reality都会无脑转发流量去dest,如果reality的dest指向一个cloudflare网站,那么相当于服务端变成了CF的端口转发,任何人扫过来都可以拿来嫖。
Cloudflare 的所有免费/付费 CDN 节点,IP 全是共享的大池子(Anycast)。CF 边缘节点解析请求的规则是:
- TLS 握手阶段:看客户端发来的 SNI。
- HTTP 请求阶段:看客户端发来的 Host Header,由 Host 决定去回源哪个网站。
如果你的 VPS dest 填了一个挂在 CF 上的大站(比如 target-cf.com:443):
偷子知道你的伪装域名是
target-cf.com。偷子发起请求到你的 VPS:
- TLS SNI 填:
target-cf.com(你的合法伪装域名)。 - HTTP Host 填:
he-own-site.com(偷子自己的违规站/代理站,只要这站点也在 CF 上)。
- TLS SNI 填:
如果没有防偷防护
:
- 你的 VPS 看到 SNI 是
target-cf.com,放行并转发给 CF 节点。 - CF 节点收到后,解开 TLS,看到里面的 Host 是
he-own-site.com。 - CF 就会把偷子自己网站的网页/大文件甚至代理流量,通过你的 VPS 吐回给偷子!
- 结果:你的 VPS 成功沦为了他访问自己网站的免费 CDN 优质反代,流量被刷爆。
- 你的 VPS 看到 SNI 是
二、怎么用Xray官方的防偷模板进行配置?
1、添加入站 A:外层 REALITY 入站(主服务)
协议:vless
监听 (Listen):留空(即 0.0.0.0)
端口 (Port):443(或者对外暴露的公网端口)
Stream Settings (传输设置):
- 安全:
Reality - Target (dest):填
127.0.0.1:4431(指向内层的门罗协议(dokodemo-door或tunnel协议),不再直连外部真实域名) - SNI:填
speed.cloudflare.com(或你的伪装域名) - Keys / ShortIds:正常生成填写
客户端:
- Flow :
xtls-rprx-vision
2、添加入站 B:内层 Dokodemo-door(或tunnel) 入站(看门狗审查)
协议:dokodemo-door(或者 tunnel)
监听 (Listen):127.0.0.1(严禁对公网开放)
端口 (Port):4431(对应 REALITY 的 dest 端口)
目标地址 (Address):speed.cloudflare.com(真实的外部目标网站)
目标端口 (Port):443
网络 (Network):TCP
Sniffing (嗅探):
- 开启嗅探,勾选
TLS - 勾选
RouteOnly(仅用于路由)
3、在Xray设置里配置“路由规则”
(1)添加规则1——(白名单放行)
Domain: 填speed.cloudflare.com(上面你的伪装域名)Inbound Tags: 选择inbound-127.0.0.1:4431(也就是入站 B)Outbound Tag: 选择direct(直连)
条件:流量必须来自指定的 inbound...(即内层的 tunnel/dokodemo-door 门罗入站),且目的域名(经 sniffing 嗅探出的 TLS SNI)严格匹配 speed.cloudflare.com。
执行:走 direct(直连出站),允许流量真正发往 speed.cloudflare.com:443。
(2)添加规则2——(兜底黑洞阻断)
Inbound Tags: 选择inbound-127.0.0.1:4431(也就是入站 B)Outbound Tag: 选择blocked(阻断)
条件:只要流量来自该 inbound... 入站,不管去哪个目标。
执行:走 blocked(黑洞/丢弃)。
作用:只要第1条规则没有匹配成功(比如 SNI 填了别的域名、或者是空 SNI 的恶意扫描),就会顺延滑落到第 2 条规则,直接掐断连接。
最后,保存,重启Xray即可。
4、至此,节点设置成功。
5、整个防护流程的底层运转逻辑
场景 1:合法翻墙(你的日常使用)
- 客户端带上正确的 UUID + 公钥,连接 VPS 的公网端口(REALITY 入站)。
- REALITY 鉴权成功,判定为合法用户。
- 流量直接走正常的代理流程出站。
- 结论:根本不会触发 REALITY 的
dest,完全不经过这个内层 tunnel 入站,也不受这两条路由规则影响。
场景 2:防火墙主动探测 / 重放攻击
- 防火墙在干线上抓到了你连接时使用的 SNI(
speed.cloudflare.com),发包探测你的 VPS。 - 防火墙没有你的 REALITY 私钥签名,被判定为非法握手。
- REALITY 启动兜底机制,将这股未经授权的 TLS 握手转发给
dest(即127.0.0.1:内层端口)。 - 内层
tunnel入站收到请求,开启的sniffing预读出其中的 TLS SNI 为speed.cloudflare.com。 - 路由引擎开始匹配:
- 命中第 4 条规则(入站匹配 + 域名为
speed.cloudflare.com)。 - 动作:执行
direct直连,把握手发往真实的CF speed服务器。
- 命中第 4 条规则(入站匹配 + 域名为
- 雅虎服务器把合法的公钥和证书数据原路返回给防火墙。
- 结论:防火墙拿到真实网站的握手响应,伪装成功,不暴露节点特征。
场景 3:偷跑流量 / 扫号蹭网(核心防御点)
- 偷子扫描发现了你的机器 IP,试图用你的机器作跳板加速他自己的网站
his-domain.com。 - 偷子发起的 TLS 握手中,SNI 填的是
his-domain.com。 - REALITY 没有匹配到密钥凭据,把握手扔给内层
dest(127.0.0.1:内层端口)。 - 内层
tunnel入站接收并嗅探出 SNI 为his-domain.com。 - 路由引擎开始匹配:
- 比对第 1条规则:域名不是
speed.cloudflare.com,不匹配,继续往下走。 - 比对第 2 条规则:入站标签匹配成功,命中第 2 条。
- 动作:执行
blocked,Xray 直接丢包/断开连接。
- 比对第 1条规则:域名不是
- 结论:偷子无法通过你的 VPS 拿到任何来自他网站的数据,彻底杜绝成为免费 CDN 反代或中转站。
三、如此配置,即使填写CF的域名,也不会被偷流量
Xray官方防偷模板:https://github.com/XTLS/Xray-examples/tree/main/VLESS-TCP-REALITY (without being stolen)









