一、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):

  1. 偷子知道你的伪装域名是 target-cf.com

  2. 偷子发起请求到你的 VPS:

    • TLS SNI 填target-cf.com(你的合法伪装域名)。
    • HTTP Host 填he-own-site.com(偷子自己的违规站/代理站,只要这站点也在 CF 上)。
  3. 如果没有防偷防护

    • 你的 VPS 看到 SNI 是 target-cf.com,放行并转发给 CF 节点。
    • CF 节点收到后,解开 TLS,看到里面的 Host 是 he-own-site.com
    • CF 就会把偷子自己网站的网页/大文件甚至代理流量,通过你的 VPS 吐回给偷子!
    • 结果:你的 VPS 成功沦为了他访问自己网站的免费 CDN 优质反代,流量被刷爆。

二、怎么用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:合法翻墙(你的日常使用)

  1. 客户端带上正确的 UUID + 公钥,连接 VPS 的公网端口(REALITY 入站)。
  2. REALITY 鉴权成功,判定为合法用户。
  3. 流量直接走正常的代理流程出站。
  4. 结论:根本不会触发 REALITY 的 dest完全不经过这个内层 tunnel 入站,也不受这两条路由规则影响

场景 2:防火墙主动探测 / 重放攻击

  1. 防火墙在干线上抓到了你连接时使用的 SNI(speed.cloudflare.com),发包探测你的 VPS。
  2. 防火墙没有你的 REALITY 私钥签名,被判定为非法握手
  3. REALITY 启动兜底机制,将这股未经授权的 TLS 握手转发给 dest(即 127.0.0.1:内层端口)。
  4. 内层 tunnel 入站收到请求,开启的 sniffing 预读出其中的 TLS SNI 为 speed.cloudflare.com
  5. 路由引擎开始匹配:
    • 命中第 4 条规则(入站匹配 + 域名为 speed.cloudflare.com)。
    • 动作:执行 direct 直连,把握手发往真实的CF speed服务器。
  6. 雅虎服务器把合法的公钥和证书数据原路返回给防火墙。
  7. 结论:防火墙拿到真实网站的握手响应,伪装成功,不暴露节点特征

场景 3:偷跑流量 / 扫号蹭网(核心防御点)

  1. 偷子扫描发现了你的机器 IP,试图用你的机器作跳板加速他自己的网站 his-domain.com
  2. 偷子发起的 TLS 握手中,SNI 填的是 his-domain.com
  3. REALITY 没有匹配到密钥凭据,把握手扔给内层 dest127.0.0.1:内层端口)。
  4. 内层 tunnel 入站接收并嗅探出 SNI 为 his-domain.com
  5. 路由引擎开始匹配:
    • 比对第 1条规则:域名不是 speed.cloudflare.com不匹配,继续往下走
    • 比对第 2 条规则:入站标签匹配成功,命中第 2 条
    • 动作:执行 blocked,Xray 直接丢包/断开连接。
  6. 结论:偷子无法通过你的 VPS 拿到任何来自他网站的数据,彻底杜绝成为免费 CDN 反代或中转站

三、如此配置,即使填写CF的域名,也不会被偷流量

Xray官方防偷模板:https://github.com/XTLS/Xray-examples/tree/main/VLESS-TCP-REALITY (without being stolen)