目录

如果你有一台海外 VPS,想要搭建一个"CF CDN 加速 + 隐藏源站 + 全球低延迟"的代理节点,这套 VPS + Cloudflare CDN + VLESS over WebSocket 方案是最经典、最成熟的选择之一。

这篇文章从 VPS 上的 VLESS+WS 部署讲起,到 CF 回源配置、优选域名、再到多节点负载均衡的进阶思路,一篇覆盖全流程。

⚠️ 重要提醒
本指南仅用于技术研究与学习用途。部署前请确认你了解并遵守所在地区的相关法律法规。VPS 请选择合规服务商。

一、架构总览

整个系统分为三层,理解这个结构是做后续所有配置的基础:

💡 三层架构
客户端层:Shadowrocket / v2rayN / Hiddify 等,用户输入 CF 域名连接。
CDN 层(Cloudflare):CF 全球 300+ PoP 节点,负责 TLS 终结、WAF、DDoS 防护、智能路由。
源站层(VPS):运行 Xray-core / sing-box,监听 VLESS+WS 端口,处理代理请求。

1.1 数据流向

用户设备
  │
  ▼ (连接最近的 CF PoP)
Cloudflare 全球边缘节点
  │
  ▼ (443 端口回源,TLS 终结后以明文 WS 转发)
VPS(Xray / sing-box 监听 port:10000 path:/ws)
  │
  ▼
目标站点

1.2 与 CF Workers 方案的区别

维度VPS + CF CDN(本方案)CF Workers(如 edgetunnel)
源站成本需购买 VPS($3-10/月)CF Free Plan 免费
带宽上限受 VPS 带宽(通常 1Gbps+)受 CF Free Plan 限制
协议支持Xray 全协议(VLESS/VMess/Trojan/Hysteria2)VLESS/Trojan/SS 为主
源站 IP 暴露风险需注意(CF 橙色云可隐藏,但存在泄露可能)无此风险
维护成本需维护 VPS 和 CF 两处只需 CF 配置
稳定性取决于 VPS 质量,自行掌控依赖 CF 服务稳定性
适用场景长期使用、大流量、需要精确保真临时使用、轻量、快速部署

← 滑动查看完整内容 →

二、前置条件

  • 一台海外 VPS(Debian 12 / Ubuntu 24.04 推荐),带宽 ≥ 100Mbps,位置建议选:美国西部、香港、东京、新加坡。
  • 一个已托管到 CF DNS 的域名(CF 作为 Nameserver)。
  • VPS 防火墙放行你的 VLESS 监听端口。
  • 一个域名 CF DNS 记录,类型 CNAME,指向你的 VPS 域名或 IP,代理状态设为 Proxied(橙色云朵)
💡 VPS 选择建议
本方案对 VPS 要求不高,1Gbps 带宽的海外 VPS 即可胜任。推荐 DediRock 洛杉矶机房 VPS,年付仅 $9.88,1Gbps 带宽 + 美国原生 IP,三网往返直连延迟低,配合 CF CDN 做回源源站体验很好。如果多节点部署流量消耗大,也可以选 Rabisu 无限流量 VPS,$9.9/年不限月流量,多节点负载均衡也无流量后顾之忧。

三、VPS 上部署 VLESS+WS 源站

3.1 安装 Xray-core

# 一键安装
bash -c "$(curl -fsSL https://raw.githubusercontent.com/XTLS/Xray-install/main/install-release.sh)" -s install

# 验证
/usr/local/bin/xray version

3.2 生成 UUID

xray uuid
# 输出示例:90cd4a77-xxxx-xxxx-xxxx-xxxxxxxxxxxx

3.3 写入 config.json

在 VPS 上创建 /usr/local/etc/xray/config.json

{
  "inbounds": [{
    "port": 10000,
    "protocol": "vless",
    "settings": {
      "clients": [{ "id": "你的UUID", "level": 0, "email": "user" }],
      "decryption": "none"
    },
    "streamSettings": {
      "network": "ws",
      "security": "none",
      "wsSettings": {
        "path": "/ws-tunnel"
      }
    }
  }],
  "outbounds": [{
    "protocol": "freedom"
  }]
}
📌 关键参数
port:VPS 监听端口,建议 10000+,避开常用端口。
path:WebSocket 路径,自定义一个不常见的字符串,和 CF、客户端三方保持一致。
security:设为 "none"——TLS 由 CF 在边缘层负责,源站只处理 WS 明文。

3.4 启动与自启

systemctl daemon-reload
systemctl enable --now xray
systemctl status xray

# 确认监听
ss -tlnp | grep 10000

3.5 本地直连测试(绕过 CF)

先不经过 CF,直接用 VPS IP 连接,确保源站正常:

  • 客户端填:地址=VPS的公网IP,端口=10000,传输=ws,路径=/ws-tunnel
  • TLS 关闭。
  • 如能正常上网,说明源站配置正确,进入下一步。

四、Cloudflare 回源配置

4.1 DNS 记录

  1. CF Dashboard → DNS → Add Record
  2. 类型:CNAME,名称:node(即 node.yourdomain.com),目标:填你的 VPS 域名或 A 记录指向 IP。
  3. 代理状态:☁️ Proxied(橙色)——这是核心,灰色云 = 不走 CF 加速。
  4. 保存,等待约 30-60s 生效。

4.2 SSL/TLS 模式

Options:Full(推荐,不校验源站证书)或 Off(源站完全没有 HTTPS 时)。不要在源站真的配自签证书,用 Off 更省心。

4.3 CF 可代理端口

非常重要:CF 只代理以下端口,不在列表中的端口即使 DNS 是橙色云也无法正常访问。

推荐(443 系)可用(80 系)不可用
443 2053
2083 2087
2096 8443
80 8080
8880 2052
2082 2086
2095
22 25
21 3389
8000 8888
3000 5000

← 滑动查看完整内容 →

4.4 客户端连接参数(CF 域名接入)

地址:    node.yourdomain.com
端口:    443(或 2053/2083 等推荐端口)
UUID:    你在 VPS 生成的 UUID
传输:    ws
路径:    /ws-tunnel
TLS:     Off(如源站完全无 HTTPS)
✅ 验证 CDN 加速生效
客户端接入后,访问 https://ip.sb 查看出口 IP。如果显示 CF 的 IP(104.x / 172.66.x / 2a09:xxxx),说明 CF 回源已生效,源站 IP 对公网不可见。

五、Cloudflare 优选域名

CF 的 Anycast 网络在全球有数百个 PoP,但默认解析到的 IP 不一定是离你最近的。"优选域名"通过自建或使用社区维护的 DNS 服务,针对不同运营商自动返回最优 CF 节点 IP,降低首包延迟。

5.1 常用优选域名列表

优选域名维护者倾向落地区域备注
yg1~yg13.ygkkk.dpdns.org甬哥社区移动→香港 · 电信/联通→日韩/新加坡序号 1-13 可轮换,最常用
cfip.dahua1.com社区维护东亚为主国内访问稳定
cfip.790017.xyz社区维护东亚为主同上
cf.0ups.com社区维护全球均衡美、新节点质量好
cloudflare-ech.com社区维护欧美为主配合 ECH 使用
ip.sb项目官方全球验证当前 CF 出口 IP 用

← 滑动查看完整内容 →

5.2 优选域名的两种用法

用法一:直接作为客户端连接地址

在客户端"地址"字段填入优选域名(如 node.cfip.dahua1.com),DNS 解析出的是优化过的 CF IP,比直接填域名或 IP 延迟更低。

用法二:订阅中替换所有节点的地址

在订阅生成脚本(如 sing-box / clash 订阅转换)里,把节点的 server 字段批量替换成优选域名,让所有用户自动获得优化 IP。

📌 优选域名注意事项
优选域名由社区或个人维护,不保证永久有效,建议定期备份多种优选源。
单一优选域名挂了不会影响节点使用(CF 自有 DNS 作为降级兜底),只是延迟回到默认 Anycast 水平。
不建议自行搭建优选 DNS 对外提供服务(涉及 CF 条款),个人自用脚本定期更新本地 hosts 即可。

六、多节点负载均衡提速

单节点总有单点故障和单运营商覆盖不足的问题。多节点 + 负载均衡是进阶方向。

6.1 架构模式对比

模式负载均衡位置优点缺点
CF Load BalancingCF 云端全自动健康检查,Geo 路由,无需客户端改动CF Pro Plan 需 $20/月,Free Plan 不可用
客户端 url-test客户端免费,自动选最快节点,支持多域名依赖客户端实现,首测有延迟
客户端 load-balance客户端多节点同时使用,流量分散部分客户端不支持,调试复杂
DNS 轮询 + 多 CNAMECF DNS / 权威 DNS最简单,不需要额外服务无健康检查,节点挂了客户端才会切

← 滑动查看完整内容 →

6.2 推荐方案:客户端 url-test + 优选域名

这是性价比最高的方案(零成本),适合大多数场景:

  1. 准备 2-3 台 VPS,各自部署 VLESS+WS,端口/path 保持一致便于统一订阅。
  2. 每台 VPS 域名解析到 CF,开启 Proxied。
  3. 在订阅生成脚本里,将每个节点的"地址"字段写成不同的优选域名(如 node1.cfip.dahua1.comnode2.cfip.790017.xyz)。
  4. 客户端配置里给这组节点打上同一个"组标签",策略设为 url-test,检测 URL 设成 http://www.gstatic.com/generate_204,间隔 600s。
  5. 客户端自动每 10 分钟测一次延迟,自动切换到最快的节点。

6.3 进阶:CF Load Balancing

如果你有 3 台以上的 VPS,且愿意投入 $20/月,CF Load Balancing 是最省心的方案:

  1. CF Dashboard → DNS → 添加各 VPS 的 A/AAAA 记录,代理状态设为仅 DNS(灰色)
  2. Dashboard → Traffic → Load Balancing → Create Load Balancer。
  3. 创建 Health Monitor:HTTP 协议,端口 80(或你的状态页端口),路径 /,间隔 60s,超时 5s, unhealthy 阈值 3。
  4. 创建 Pool,把各地 VPS IP 加进来,绑定 Health Monitor。
  5. 创建 LB:选择你的域名,关联 Pool,策略选 Geo(按地区返回)或 Dynamic Latency(按延迟返回)。
  6. 将代理域名的 DNS 记录迁移到 LB 管理(CF 会自动接管)。

6.4 多节点管理工具

  • 3x-UI:单机多入站方案,在一台 VPS 上可以建多条 VLESS+WS 入站,适合做"节点池"。
  • x-ui-yg / sing-box-yg:甬哥一键脚本,一条命令部署,批量生成节点配置。
  • Ansible:多台 VPS 批量推配置,适合有运维基础的用户。
  • 自写订阅生成脚本:在各节点的 xray 状态页拉取在线用户列表,自动拼接 Clash / Sing-box 订阅文件,更新到 CDN。

七、安全与隐藏源站 IP

7.1 源站 IP 泄露风险

即使开启了 CF 橙色云代理,以下几种情况仍可能暴露源站 IP:

  • CF 回源时如果有超时或报错,CF 有时会在响应头里暴露真实 IP。
  • VPS 上跑的其他服务(SSH、Web 服务等)直接暴露在公网。
  • 通过历史 DNS 记录查询(https://securitytrails.com 等工具可以查到 VPS 域名以前的 IP)。

7.2 防护措施

  1. VPS 防火墙:只开放 VLESS 监听端口(如 10000),关闭其他所有端口(22、80、443 等),或改 SSH 端口。
  2. fail2ban:配置 fail2ban 防暴力破解 SSH。
  3. 禁止直接访问:CF DNS 记录的源站 A/AAAA 记录不对外公布;必要时在 VPS 的防火墙层,只允许 CF 的 IP 段回源(维护成本较高,不推荐普通用户做)。
  4. 定期更换源站 IP:VPS 供应商支持换 IP 的,每隔 1-3 个月换一次。

八、常见问题

Q1:Error 1101 是什么?

CF 侧错误,通常由 ① VPS Xray 没启动或端口不对;② CF WAF 规则有阻断;③ 请求超时触发。排查顺序:先不经过 CF 测直连 → 确认通了再开 CF 代理 → 查 CF 防火墙日志。

Q2:连接成功但无法访问外网?

检查 Xray outbound 配置:确保有 "protocol": "freedom" 的出口规则,没有在 outbound 层做了不必要的限制。

Q3:CF 代理状态下客户端显示的 IP 是 CF 的 IP?

这是正常的!VLESS+WS 走 CF CDN 后,对目标网站显示的出口 IP 是 CF 的边缘节点 IP(104.x / 172.66.x / 2a09:xxxx)。如需固定出口 IP,需要自建 ProxyIP(参见第五节点系列之 ProxyIP 篇)。

Q4:CF Queued / Timeout 怎么办?

① 检查源站是否正常响应(回源 IP + 端口直连);② 费率限制(Free Plan 无此问题,但突发流量可能限速);③ 考虑升级到 CF Pro 或调整回源端口。

Q5:多节点同步配置很麻烦,有办法自动化吗?

有的。推荐用 Ansible 多台推送,或者写一个 Python 脚本批量管理(SSH + SCP 推送 config.json)。更省事的是在单台 VPS 上用 3x-UI 创建多入站,再用 API 拉取所有节点列表批量生成订阅。

🔒 安全提示
VPS 防火墙是最后一道防线。即使一切配置正确,也一定要:① 限制 SSH 端口(改默认 22);② 开启 fail2ban;③ UUID 使用强随机值;④ 不在公共场所分享订阅链接;⑤ 定期检查 VPS 是否有未知进程。

九、sing-box 替代方案

xray 是主流选择,但 sing-box(SagerNet 出品的下一代代理内核)近年来增长很快,API 设计更优雅,性能更好,配置格式更清晰:

{
  "inbounds": [{
    "type": "vless",
    "listen": "0.0.0.0",
    "listen_port": 10000,
    "users": [{ "uuid": "你的UUID" }],
    "transport": {
      "type": "ws",
      "path": "/ws-tunnel"
    }
  }],
  "outbounds": [{
    "type": "direct"
  }]
}

sing-box 的 direct outbound 和 xray 的 freedom 作用相同。sing-box 简化版 tui 配置、原生 socks/http inbound 支持都更方便快速部署。推荐感兴趣的同学尝试。

十、总结

VPS + Cloudflare CDN + VLESS+WS 是一套"花小钱办大事"的方案。CF 的免费 CDN 加上你自己控制的 VPS 源站,在稳定性、延迟、带宽上都能达到很高的水平。

核心步骤:VPS 部署 Xray → 配置 VLESS+WS → CF DNS 代理域名 → 客户端接入 → 多节点 url-test 负载均衡,整个流程熟练后约 20 分钟。推荐优先采用 客户端 url-test + 优选域名作为多节点加速方案(零成本),有预算后再考虑 CF Load Balancing。

📋 快速检查清单
□ 购买海外 VPS(Debian/Ubuntu),记录 IP
□ VPS 防火墙放行端口(如 10000)
□ 安装 Xray-core,生成 UUID
□ 配置 config.json(VLESS+WS,path 自定义)
□ 客户端直连 VPS IP 测试源站
□ CF 添加 CNAME 记录(Proxied 橙色)
□ CF SSL/TLS 设为 Off 或 Full
□ 客户端用 CF 域名接入,确认 CDN 生效(ip.sb 查出口 IP)
□ 配置优选域名,替换节点地址
□ (进阶)多 VPS 创建多节点,客户端 url-test 负载均衡