自建 VLESS 代理完全指南:Reality、WebSocket 与 Cloudflare 方案怎么选
从场景选择理解 Reality、WS+Cloudflare 与并行部署方案。

- 理解 Reality 与 WS+Cloudflare 的取舍
- 能按服务器状态选择部署路径
- 知道并行方案适合什么场景
- 准备一台 VPS
- 了解 443 端口是否被占用
- 确认是否拥有 Cloudflare 托管域名
先打开最重要的来源
这里不是普通友情链接,而是读完文章后最应该跳转确认的地方:官网确认版本,GitHub 看源码和 Issue,第三方来源做交叉参考。
Cloudflare Full 和 Full (strict) 模式说明
Xray 官方核心项目
Xray 官方安装脚本;作为补充来源保留,不占用 GitHub 主链接槽位。
Nginx 官方文档;Cloudflare 文档已作为主官方链接,本链接作为补充来源保留。
自建 VLESS 代理完全指南:Reality、WebSocket 与 Cloudflare 方案怎么选
自建代理的核心价值不是“免费”,而是把节点质量、服务器权限和故障恢复掌握在自己手里。你需要承担服务器维护、配置验证和合规使用的成本,但一旦方案跑通,稳定性和可控性通常会明显好于临时购买的共享节点。
这一系列围绕 Xray-core、VLESS、Reality、WebSocket、Cloudflare 和 Nginx 展开,目标是让你能根据自己的服务器状态选择合适方案,而不是盲目复制一份配置。
本文只讨论你有权管理的服务器和域名。不同地区对代理、加密通信和跨境访问的规则不同,部署前请确认你的使用场景符合法律、服务商条款和组织安全要求。
先看两条主线
自建 VLESS 常见方案可以先分成两条线:IP 直连线和域名中转线。
自建 VLESS
├── Reality 直连线
│ ├── 客户端直接连接 VPS IP
│ ├── 使用 Reality 伪装 TLS 握手
│ └── 适合 IP 可直连、追求低延迟和更强抗主动探测的场景
│
└── WebSocket + Cloudflare 中转线
├── 客户端连接 Cloudflare 代理域名
├── Cloudflare 再转发到源站 Nginx
└── 适合需要隐藏源站 IP 或 IP 不稳定的场景Reality 的特点是直连、低延迟、配置相对干净,但它依赖 VPS IP 能被客户端访问。WebSocket + Cloudflare 的特点是源站 IP 不直接暴露,恢复路径更强,但链路更长,延迟和配置复杂度也会更高。
系列目录
如果你是第一次部署,建议从第一篇开始。如果你已经知道自己的端口和域名条件,可以直接跳到对应文章。
| 篇章 | 文章 | 适合场景 |
|---|---|---|
| 1 | 总览与选型 | 先判断该用 Reality、WS+Cloudflare 还是并行方案 |
| 2 | VLESS + Reality + Vision 基础部署 | VPS 的 443 端口空闲,不跑网站 |
| 3 | VLESS + Reality + Nginx SNI 分流 | 443 已经被 Nginx 网站占用 |
| 4 | VLESS + WebSocket + Cloudflare 保底方案 | 需要隐藏源站 IP,或需要备用连接路径 |
| 5 | Reality 主力 + WS 保底并行部署 | 同一台 VPS 同时保留主力和备用线路 |
| 6 | 最终总结与故障切换清单 | 部署后复盘、对比和排错 |
四种常见部署场景
场景一:443 空闲,只跑代理
如果服务器上没有网站,443 端口也没有被 Nginx、Caddy、Apache 或其他服务占用,最简单的方式是让 Xray 直接监听 443。
这种方式的配置最少,问题也最容易定位。你只需要关注 Xray 配置、系统防火墙、客户端参数和 Reality 密钥是否一致。
推荐阅读:VLESS + Reality + Vision 基础部署。
场景二:443 已被网站占用
如果服务器已经运行网站,通常 443 已经由 Nginx 接管。此时不要让 Xray 直接抢占 443,而是使用 Nginx stream 模块按 SNI 分流。
外部 443 请求
|
v
Nginx stream 读取 SNI
|-- 你的站点域名 -> Nginx HTTPS 网站
|-- 其他 SNI -> Xray Reality这种方案保留网站访问,同时让 Reality 继续走 443。配置重点是确认 Nginx 是否带有 stream_ssl_preread_module。
推荐阅读:VLESS + Reality + Nginx SNI 分流。
场景三:需要隐藏源站 IP
如果你不希望客户端直接连接 VPS IP,或者 IP 可用性不稳定,可以把连接入口放到 Cloudflare 代理域名上。
客户端 -> Cloudflare -> Nginx -> Xray WebSocket这条线不依赖客户端直连 VPS IP。你需要准备一个域名,把 DNS 托管到 Cloudflare,并确认 Cloudflare SSL/TLS 模式、Nginx TLS、WebSocket 反代路径和客户端参数一致。
推荐阅读:VLESS + WebSocket + Cloudflare 保底方案。
场景四:Reality 主力,WS 保底
最稳的结构通常不是单选,而是并行:
- 平时使用 Reality,延迟更低,链路更短。
- Reality 线路不可用时,切换到 WebSocket + Cloudflare。
- 两套 inbound 分别监听本机不同端口,Nginx 负责对外分流。
推荐阅读:Reality 主力 + WS 保底并行部署。
选择建议
| 你的条件 | 推荐方案 | 原因 |
|---|---|---|
| 443 空闲,只想快速跑通 | Reality 基础版 | 配置最少,排错路径最短 |
| 有网站,必须共用 443 | Reality + Nginx SNI | 网站和代理共存,不额外暴露代理端口 |
| 有域名,并且想隐藏源站 IP | WS + Cloudflare | 客户端只连接 Cloudflare 代理域名 |
| 想要主力和备用线路 | Reality + WS 并行 | 直连和中转两条路径互补 |
如果你是新手,不建议一上来就部署并行版。先把 Reality 基础版跑通,再理解 Nginx 分流,最后再加 Cloudflare 保底,会更容易定位错误。
技术组件速览
| 组件 | 作用 |
|---|---|
| VLESS | Xray 中常用的轻量代理协议 |
| Reality | Xray 的 TLS 伪装能力,用于降低主动探测命中率 |
| XTLS-Vision | Reality 常配合使用的 flow |
| uTLS fingerprint | 客户端模拟常见浏览器 TLS 指纹,例如 chrome |
| WebSocket | 让代理流量走 HTTP Upgrade 链路,便于被 Nginx 和 Cloudflare 转发 |
| Cloudflare | 提供 DNS 代理、边缘入口和源站隐藏能力 |
| Nginx stream | 在 TLS 解密前读取 SNI,把 443 请求分流到不同后端 |
这些组件不是越多越好。组件越多,排错面越大。只有当你的场景确实需要共用 443、隐藏源站或建立备用线路时,才应该引入 Nginx stream 和 Cloudflare。
小结
这个系列的重点不是记住某个固定配置,而是建立判断路径:
- 443 空闲时,优先用 Reality 基础版。
- 443 被网站占用时,用 Nginx stream 做 SNI 分流。
- 需要隐藏源站 IP 时,用 WebSocket + Cloudflare。
- 需要最大可用性时,把 Reality 和 WS 保底并行部署。
- 所有方案发布前都要复测 Xray、Nginx、Cloudflare 和客户端参数。
下一步可以先读 VLESS + Reality + Vision 基础部署,把最小可用链路跑通,再逐步扩展到 SNI 分流和 Cloudflare 保底。
按顺序继续补齐上下文
同一 VLESS/Xray 自建代理系列的延伸阅读。
同一 VLESS/Xray 自建代理系列的延伸阅读。
同一 VLESS/Xray 自建代理系列的延伸阅读。
同一 VLESS/Xray 自建代理系列的延伸阅读。
同一 VLESS/Xray 自建代理系列的延伸阅读。