你有没有遇到过这种情况:

昨天节点还丝般顺滑,今天一打开网页转圈圈;看 4K 视频卡成电子相册;测个速,延迟忽高忽低像过山车。你问它为什么,它不说话。你 ping 一下 IP——哦,原来今天被运营商「分配」到了一个绕了半个地球的边缘节点。

如果你用的是 Cloudflare、或者把代理流量套了一层 CDN,这种事几乎人人都踩过。

先别急着换节点、换机场。 这篇文章要告诉你的是:同一个域名、同一个服务,为什么今天快明天慢,以及——不用花钱、不用换机场,只动几个配置就能让它稳下来的方法。

读完你会搞清楚三件事:

  1. 为什么「优选 IP」能让你的代理节点从卡顿变丝滑
  2. 哪些代理协议能走 CDN、哪些不能走(以及为什么)
  3. 怎么用 CloudflareST、WARP 优选、ECH 三板斧把延迟打到最低

一、先搞懂:CDN 在你的代理里到底扮演什么角色?

CDN 是什么? 大白话讲,它就像快递公司的「前置仓」——把货物(网站/服务内容)提前放到离你最近的仓库,你下单不用等从总仓发货。全球最大的 CDN 之一是 Cloudflare,它在全球 330+ 城市有节点。

在代理圈,CDN 通常有两种用法,新手最容易搞混:

用法 一句话解释 你接触到的场景
A. 给网站加速(常规用法) 站长把网站套上 CDN,访客就近访问 你看别人网站变快了
B. 当代理的「门面」(本文重点) 把你的代理服务器藏在 CDN 背后,流量先经过 CDN 再转给你的 VPS 你自己的节点变稳、IP 被隐藏

本文讲的是 B 类用法:把 Cloudflare 当成代理流量的「正面入口」。

为什么有人要把代理套 CDN? 三个核心好处:

代价是:多走一跳(你的设备 → CDN 边缘 → VPS),会多 30~100ms 延迟。所以 CDN 模式不是「更快」,而是「更稳、更难封」。


二、为什么「优选 IP」能救命?Anycast 的真相

Anycast 是什么? 这是理解优选 IP 的关键。简单说:Cloudflare 在全球所有节点用了同一批 IP 地址。你访问 1.1.1.1,理论上是「离你最近」的节点回应你。

听起来很美好对吧?但现实是——「最近」是 Cloudflare 和你的运营商商量定的,不是你定的。

你的运营商(电信/联通/移动)出于「成本优先」而非「速度优先」的路由策略,很可能把你的流量导到一个又远又堵的节点。于是就出现了开头的场景:同一个 IP,今天走东京节点 40ms,明天被导到法兰克福 300ms。

优选 IP 干的事,本质上就是:绕过运营商的默认选择,手动挑一个在你这条宽带上真正快的 Cloudflare 边缘 IP,然后强制你的设备连它。

打个比方:Anycast 像是「系统自动帮你叫车」,它叫来的车可能绕路;优选 IP 是你自己打开地图,挑一辆不绕路的车。

实测数据对比(来自 WARP 链路优化实测):

指标 默认节点 优选节点
平均 RTT 120~200ms 40~80ms
丢包率 3%~8% < 0.5%
TCP 吞吐 受限 接近物理带宽上限

差距是不是很惊人?这也就是为什么「优选 IP」在代理圈是必备操作。


三、第一板斧:CloudflareST 测速,找出你的「天选 IP」

CloudflareST 是一个开源小工具,专门干一件事:扫描所有 Cloudflare 边缘 IP,测出在你网络上延迟最低、丢包最少的那一批。

步骤 1:下载工具

去 GitHub 搜 XIU2/CloudflareSpeedTest,下载对应系统的版本(Windows 下是 cfst_windows_amd64.zip,Mac/Linux 是 cfst_linux_amd64.tar.gz)。

步骤 2:测速(关键:先关掉科学上网!)

解压后打开终端,进入文件目录,运行:

BASH
# Windows / Mac / Linux 通用
./cfst

⚠️ 重要:测速前务必关闭你的代理软件!否则测的是「代理后的速度」,完全不准。

想要更精准?用进阶参数:

BASH
# 只测延迟低于 200ms 的、取前 20 个做下载测速
./cfst -tl 200 -dn 20

参数解释:

步骤 3:看结果

跑完之后,终端会用绿色高亮显示综合最好的 IP,当前目录还会生成一个 result.csv 文件,里面有每个 IP 的详细数据(IP、端口、延迟、下载速度)。

提取排名第一的 IP:

BASH
sed -n '2p' result.csv | awk -F, '{print $1}'

记下来,下一步要用。


四、第二板斧:把优选 IP「落地」

找到好 IP 后,要让你的设备「认这个 IP」。两种落地方法:

方法一:改 Hosts 文件(最简单,适合单设备)

Hosts 文件是操作系统的一个「域名→IP 强制对照表」,优先级比 DNS 还高。

用记事本(管理员权限)打开,加一行:

TEXT
104.16.xxx.xxx  your-domain.com

把 104.16.xxx.xxx 换成你优选的 IP,your-domain.com 换成你的域名。地址换成 IP,但域名信息别丢——这是关键,CDN 靠域名(SNI/Host)才知道把流量转给谁。

方法二:自定义 DNS 解析(适合多设备/自动更新)

如果你用 DNSPod 或 Cloudflare 自己的 DNS,可以加一条记录,把域名指向优选 IP。配合 Cloudflare API 还能写脚本每天自动更新——不过这对新手略复杂,单设备用 Hosts 就够。

💡 懒人方案:如果你用的是 OpenWrt 软路由,直接装 luci-app-cloudflare-ip 这个插件。它在后台点点鼠标就能自动跑测速、挑 IP、写回 PassWall / OpenClash,全程不用 SSH。2026 年了,能用界面的就别背命令。


五、第三板斧:在代理客户端里填优选 IP

如果你是把 Cloudflare 当代理「门面」用(见第一章 B 类用法),优选 IP 要填到你的订阅节点地址里。

假设你用 Clash / OpenClash / PassWall,订阅格式通常是:

TEXT
节点IP:端口#备注名

每行一个,比如:

TEXT
104.16.85.46:443#CF优选-东京1
104.16.86.188:443#CF优选-东京2
172.64.53.100:443#CF优选-东京3

⚠️ 避坑:有些地区的节点(比如新加坡 SIN)测速时 TCP 能用,但在客户端实际连会 Timeout。建议拉取订阅后,在 Clash 里逐个测速,把经常 Timeout 的地区节点删掉。

还有一个高级开关叫「优选 IP 作为反代 IP」:开启后,优选 IP 同时被当作 ProxyIP 使用,入口出口合并成一个 IP,少一跳中转,理论上再降 5~30ms。如果你的机场/面板有这个开关,建议开。


六、哪些协议能走 CDN?哪些不能?(新手最容易踩的坑)

这是全文最关键的一节。不是所有代理协议都能套 CDN,套错了要么连不上,要么白套。

原理一句话:CDN(Cloudflare)要「拆开」你的 TLS 握手才能知道把流量转去哪。所以——任何需要 Cloudflare 终止 TLS 才能工作的传输方式,才能走 CDN。

传输方式 能走 CDN? 原因
VLESS + WebSocket (WS) + TLS ✅ 能 WS 是基于 HTTP 升级握手的,Cloudflare 能识别并转发
VLESS + gRPC + TLS ✅ 能 gRPC 跑在 HTTP/2 多路复用上,CDN 认得
Trojan + WS + TLS ✅ 能 同理,TLS 外层 + WS 内层
VLESS + TCP + Reality ❌ 不能 Reality 自己伪装成第三方网站握手,Cloudflare 一拆 TLS 就露馅,路由不了
Shadowsocks(裸) ❌ 不能 没有 TLS 外壳,CDN 不认

最重要的一句话:Reality 协议和 CDN 是「互斥」的。 Reality 靠「模拟访问 microsoft.com」骗过审查,但 Cloudflare 必须终止 TLS 才能转发——两者逻辑冲突。所以:

两者不是谁更好,是场景完全不同:

维度 VLESS + CDN VLESS Reality 直连
数据路径 你 → Cloudflare → VPS 你 → VPS
额外延迟 30~100ms 0
IP 隐藏 VPS 真实 IP 完全不暴露 VPS IP 直接暴露
抗干扰 强(Cloudflare IP 池大) 中等(靠 TLS 指纹伪装)
需要域名 必须(DNS 托管在 Cloudflare) 不需要
适合谁 IP 容易被干扰、要 DDoS 防护 延迟敏感、VPS 线路好

经验法则:如果你在国内,先 ping 一下本地到 Cloudflare 的延迟。如果本身超过 150ms,CDN 模式就不太合适——改用 Reality 直连,或换一条 CN2 GIA 线路的 VPS。


七、VLESS + CDN 完整配置示例(复制即用)

如果你有自己的 VPS 和域名,下面是最小可跑的配置。

服务端(Xray,VPS 上)

JSON
{
  "inbounds": [
    {
      "listen": "0.0.0.0",
      "port": 443,
      "protocol": "vless",
      "settings": {
        "clients": [
          { "id": "你的UUID(用 xray uuid 生成)", "level": 0, "email": "user1@cf" }
        ],
        "decryption": "none"
      },
      "streamSettings": {
        "network": "ws",
        "security": "tls",
        "tlsSettings": {
          "certificates": [
            { "certificateFile": "/path/fullchain.cer", "keyFile": "/path/private.key" }
          ]
        },
        "wsSettings": {
          "path": "/secure-gate-99"
        }
      }
    }
  ]
}

关键点:

Cloudflare 后台设置

  1. DNS 里把你的域名(如 vpn.yourdomain.com)设为 Proxied(橙色云朵)
  2. SSL/TLS 加密模式设为 「完全」或「严格」(否则会死循环重定向)

客户端(Clash / Shadowrocket)

连上后,浏览器访问 https://api.ipify.org,显示的应该是你 VPS 的出口 IP——证明流量走的是「客户端 → Cloudflare → VPS → 公网」这条路。


八、WARP 链路优选:让 WireGuard 走最近的节点

如果你用 Cloudflare WARP(很多人拿它当「保底节点」),它底层也是 Anycast,默认 Endpoint 选的是「稳定」而非「快」。手动指定 Endpoint 能大幅降延迟。

WARP 的 WireGuard 配置通常在这里:

把 Endpoint 从默认的 engage.cloudflare.com:2408 改成你优选的 IP:

TEXT
Endpoint = 104.16.85.46:2408

然后重启 WARP 接口,强制重新握手。原理是:手动指定 Endpoint,本质上是强制 WireGuard 在特定的 ASN 路径上握手,绕过拥堵的骨干网段。

端口说明:WARP 用 UDP 2408 或 51820。改 Endpoint 前先用 CloudflareST 验证目标 IP 在该端口连通(排除被防火墙拦的节点)。


九、ECH:给握手也穿上「隐身衣」

ECH(Encrypted Client Hello) 是 TLS 1.3 的扩展,作用是把握手阶段的 SNI 字段也加密了。

为什么重要?因为即使你用了 CDN + TLS,传统握手里 SNI(你要访问的域名)是明文的。审查系统一看 SNI 就知道你在连哪个站点,可能针对性限速或干扰。ECH 把 SNI 也加密,审查系统就「看不见」你要去哪了——延迟抖动降低,连接更稳。

怎么开? 如果你用 Clash Verge Rev(Meta 内核),它已经原生支持 ECH,一般在设置里打开「SNI 混淆 / ECH」开关即可,不需要额外操作。


十、多 CDN 怎么选?一张国内延迟对比表

如果你是自己搭服务、想选一个「国内访问快」的 CDN 当门面,下面是 2026 年实测的国内延迟对比(数据来自第三方拨测,P95 值):

CDN 中国大陆延迟 特点 适合场景
Cloudflare 187~218ms 生态最全、免费可用 全球业务、新手首选
CDN5 28~46ms CN2 GIA 专线、免备案 国内访问要快、企业级
Gcore 170~210ms 大带宽、视频游戏强 欧洲业务、视频
Bunny CDN 230~270ms 便宜、简单易用 静态站、小项目
Fastly 210~250ms 边缘计算强、贵 API、实时系统
AWS CloudFront 200~240ms AWS 生态整合 已在用 AWS 的团队

大实话:Cloudflare 免费、好上手,但国内延迟其实偏高(187ms 起步,高峰能到 218ms+)。如果你对延迟极其敏感(比如打游戏、视频通话),CDN5 这种有 CN2 GIA 专线的免备案 CDN 国内延迟能压到 28~46ms,差距巨大。

但 CDN5 是付费的(约 $499/月起),新手一般先用 Cloudflare 免费档练手足够。

判断「假国内加速」的三招:① 看节点有没有香港/日本/新加坡;② 看路由有没有 CN2 / BGP 优化;③ 看回源路径是否智能。三个都没有的,基本是「中国 → 美国 → 欧洲 → 源站」的绕路货。


十一、常见报错速查表

现象 可能原因 解决办法
502 Bad Gateway Cloudflare 连不上你的 VPS(源站挂了 / 端口错) 检查 VPS 上 Xray 是否在跑、端口是否通;看错误页是谁返回的(Cloudflare 还是源站)
WebSocket 升级失败 WS Path 不匹配 / TLS 模式不对 核对客户端 WS Path 和服务端一致;Cloudflare SSL 模式设「完全」或「严格」
连接超时 Timeout 优选 IP 选了被墙的节点(如某些 SIN 节点) 在 Clash 里逐个测速,删掉 Timeout 的地区
速度比直连还慢 本地到 Cloudflare 延迟本就 >150ms 换 Reality 直连,或换 CN2 GIA 的 VPS/CDN
证书错误 / 循环重定向 Cloudflare SSL 模式设为「灵活」 改为「完全」或「严格」
优选后某天又变慢 Cloudflare 边缘节点路由漂移 重新跑 CloudflareST,更新 Hosts / 订阅

十二、怎么验证「优选」真的生效了?

两步就够:

第 1 步:ping 验证延迟

BASH
# 填你优选的 IP
ping 104.16.85.46

看平均延迟是不是降到 40~80ms 区间。如果还是 150ms+,说明没生效或 IP 选错了。

第 2 步:curl 验证代理路径(针对 VLESS+CDN 节点)

BASH
# 走你的代理后访问
curl -I https://api.ipify.org

返回的 IP 应该是你 VPS 的出口 IP,而不是你本地 IP——证明流量确实经过了「客户端 → Cloudflare → VPS」这条路。


一句话总结

CDN 在代理里是「门面」不是「加速器」:优选 IP 解决「连哪个节点快」,WS/gRPC 协议解决「能不能套 CDN」,WARP 优选 + ECH 解决「最后一公里稳不稳」。套对了,节点从「看天吃饭」变成「稳如老狗」。


进阶可选读:HTTP/2 帧级优化是什么?

如果你不满足于「能用」,想理解为什么 gRPC(跑在 HTTP/2 上)比 WS 在某些场景更高效,可以了解「帧级优化」:

这部分属于「懂了更强、不懂也能用」的范畴。新手先把前面十二节跑通,进阶优化等遇到瓶颈再回来啃。


最后更新于:2026 年 8 月。文中延迟数据来自第三方拨测与社区实测,会随网络环境变化,请以你本地实测为准。

关注 易邦科学上网,及时获取最近更新:

X : https://x.com/rozmiarek760575

版权声明

作者: 易邦

链接: https://blog.e8k.net/posts/cdn-proxy-deep-dive-2026/

许可证: 知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议

本作品采用知识共享署名-非商业性使用-相同方式共享 4.0 国际许可协议进行许可。