你以为 Cloudflare 一定能加速?在印度并非如此

使用与不使用 Cloudflare CDN 的对比:到底哪个更快?

我们通常默认:把网站接入 Cloudflare 就会更快。但当我把自己的一台网站放到 Cloudflare 上之后,遇到的却是相反的情况。于是我决定做一系列系统性的测试,弄清楚到底发生了什么。

这篇文章会完整记录我在自己网站上用 Cloudflare Free、Pro、Pro + Argo 三种方案所做的实验,也会分享对一批 Cloudflare Business 和 Enterprise 网站做的测试,并说明如果你的访客主要来自印度,这意味着什么。

1. 我最初观察到的问题

我的其中一个网站托管在 DigitalOcean 位于印度班加罗尔的服务器上,在迁移到 Cloudflare 之前已经稳定运行了几个月。

我用另一座城市、距离源站约 1500 公里的 Jio 光纤网络做了一次简单的延迟测试,结果如下:

迁移到 Cloudflare 后,延迟从大约 47 毫秒上升到了 159 毫秒。而且,连本该被 Cloudflare CDN 缓存的静态资源(JS、CSS、图片)也出现了同样的情况。

把网站迁移到 Cloudflare 后,延迟从约 47 毫秒上升到约 159 毫秒(其他条件均未改变)。

2. 初步实验:测量延迟

看到延迟不降反升,我决定连续 3 天、每天测试两次,以排除网络流量波动带来的偶然误差。

2.1. 基线:不使用 CDN

我先回到不使用 Cloudflare 的状态,测量源站服务器在无 CDN 情况下的延迟。

可以看到这台 DigitalOcean 服务器对应的 IP 地址:

获取源站服务器的 IP 地址

然后从我的笔记本 ping 这个 IP,获取延迟:

测量到源站服务器的延迟

从结果可以看出:

  • 请求到达服务器并返回,平均耗时约 47 毫秒(RTT 延迟)。
  • 延迟波动很小。

基线:到源站约 47 毫秒,波动很小。

2.2. Cloudflare Free 方案

我把网站切换到 Cloudflare Free 方案,重复上述测试进行对比。

切换后,“Remote Address”里的 IP 变成了 Cloudflare 的 IP:

获取实际提供服务的 Cloudflare 节点 IP

在讨论延迟之前,先注意上面响应里的 Cf-Ray 头。Cloudflare 文档说明,Cf-Ray 包含处理该请求的数据中心位置。也就是说,这个来自印度、源站也在印度的请求,竟然由 AMS(阿姆斯特丹)数据中心处理。

测量到实际提供服务的 Cloudflare 节点的延迟

根据以上结果:

  • 我与处理请求的 Cloudflare 节点之间的 RTT 延迟约为 159 毫秒。
  • 标准差约 4%,波动程度与基线(无 CDN)相近。

总体来看,这次测试表明:接入 Cloudflare CDN 反而增加了约 112 毫秒的 RTT 延迟。

那么,这个问题是 Free 方案独有,还是付费方案也会遇到?

Free 方案:由阿姆斯特丹节点服务,延迟约 159 毫秒(慢了 112 毫秒)。

2.3. Cloudflare Pro 方案

我升级到 Pro 方案(按年付费约 20 美元/月),等待约一小时后重复测试,看看行为是否有变化。

获取实际提供服务的 Cloudflare 节点 IP

此时 Cf-Ray 头返回的值以 SIN 结尾,说明请求改由新加坡数据中心处理。这仍然不是最优结果,因为 Cloudflare 的网络页面显示,它在印度有二十个数据中心/边缘节点,其中两个距离我做实验的地点不到 500 公里(约 300 英里)。

测量到实际提供服务的 Cloudflare 节点的延迟

Cloudflare Pro 方案的测试结果如下:

  • 我与 Cloudflare 边缘节点之间的 RTT 延迟约为 207 毫秒。
  • 标准差约 29%,本次测试的延迟波动明显更大。

Pro 方案:由新加坡节点服务,延迟约 207 毫秒(波动明显)。

2.4. Cloudflare Pro 方案 + Argo 路由

我在 Pro 方案上加了 Argo 智能路由(前 1 GB 收费 5 美元,之后每 GB 0.10 美元),看看来自印度的请求处理方式是否会改变。

获取实际提供服务的 Cloudflare 节点 IP

Cf-Ray 响应头仍然显示请求由新加坡数据中心处理。

测量到实际提供服务的 Cloudflare 节点的延迟

延迟测试有一些改善:

  • 我与 Cloudflare 边缘节点之间的 RTT 延迟约为 138 毫秒。
  • 标准差约 23%,延迟数值仍有较大波动。

看起来 Argo 路由改善了我的平均延迟(我多次测试确认过),但并没有改善延迟波动。

Argo 路由改善了延迟(约 138 毫秒),但没有改善波动。

3. 进一步检查:解读 Cloudflare 路由

此前的延迟测试结果都高于预期,于是我尝试更深入地理解 Cloudflare CDN 的路由方式。

3.1. 其他印度 ISP 的 Cloudflare 路由

我做了额外测试,看看从其他 ISP 访问我的网站时,会由哪个 Cloudflare 数据中心处理。

访问方式路由行为
Jio 移动网络由 Cloudflare 新加坡数据中心处理
Airtel 移动网络由 Cloudflare 新加坡数据中心处理
AWS 孟买数据中心由 Cloudflare 孟买数据中心处理

这说明 Cloudflare 的路由异常在其他印度网络上也存在,但并非所有印度网络都会遇到。

3.2. Cloudflare 上其他网站的路由

接着,我从自己的位置对 15 个使用不同 Cloudflare 方案的网站做了延迟测试:

网站Cloudflare 方案服务节点
playbooks.comFree plan新加坡数据中心
remoteok.comFree plan新加坡数据中心
judge2020.comFree plan新加坡数据中心
superblog.aiPro plan新加坡数据中心
www.jsdelivr.comPro plan新加坡数据中心
cdnjs.comPro plan新加坡数据中心
unwomen.org.auBusiness Plan孟买数据中心
www.thetrevorproject.orgBusiness plan孟买数据中心
decisiondeskhq.comBusiness plan孟买数据中心
www.canva.comEnterprise plan孟买数据中心
{无法披露}Enterprise plan孟买数据中心
{无法披露}Enterprise plan孟买数据中心

以上检查表明,Cloudflare 的路由异常并非发生在所有网站上。它似乎主要存在于 Cloudflare Free 和 Pro 方案的网站上。

4. 为什么 Cloudflare 会这样路由?

到这一步,对于观察到的 Cloudflare 路由行为,有两个可能原因:

4.1. 因容量原因重新路由

Cloudflare 承认,他们会根据各数据中心的容量消耗情况重新路由流量。要验证这是否是原因,我需要跨多天甚至多周进行测试。

4.2. 与某些 ISP 缺乏对等互联

在深入细节之前,先简单说明什么是对等互联:

什么是对等互联

对等互联是指两个网络(例如一个 ISP 和一个 CDN)达成协议,直接在彼此之间交换流量。如果没有这种协议,流量就必须经过多个中间网络转发。

在这种情况下,我的 ISP 与 Cloudflare 之间缺乏对等互联,可能导致流量被路由到新加坡或阿姆斯特丹。

印度 ISP 与 Cloudflare 之间的对等互联协议

我找不到一份明确列出哪些 ISP 没有与 Cloudflare 签订对等互联协议的清单。但像这里、这里和这里的论坛讨论表明,印度最大的两家 ISP——Jio 和 Airtel——可能没有与 Cloudflare 签订对等互联协议。截至 2025 年 1 月,这两家 ISP 合计占据印度移动网络市场超过 75% 的份额。

缺乏对等互联是否导致 Cloudflare 从远端数据中心提供服务?

Cloudflare 的对等互联协议条款,很可能导致部分网站由较远的数据中心提供服务。但这似乎并不适用于所有 Cloudflare 网站。Business 或 Enterprise 方案上的网站,似乎被排除在这种行为之外。

5. 更大规模的 Cloudflare 延迟测试结果

综合以上信息,我编写了一套自动化延迟测试套件,在两周(10 个工作日)的白天时段每 30 分钟运行一次。以下是从我办公室(印度)通过 Jio 光纤连接进行的 150 次延迟测试结果:

网站Cloudflare 方案延迟(越高越慢)
punits.dev无 CDN(源站 @DigitalOcean,班加罗尔)47 毫秒
crawlably.com无 CDN(源站 @DigitalOcean,班加罗尔)47 毫秒
playbooks.comFree plan186 毫秒
remoteok.comFree plan166 毫秒
judge2020.comFree plan174 毫秒
superblog.aiPro plan159 毫秒
www.jsdelivr.comPro plan160 毫秒
cdnjs.comPro plan152 毫秒
unwomen.org.auBusiness Plan66 毫秒
www.thetrevorproject.orgBusiness plan44 毫秒
decisiondeskhq.comBusiness plan65 毫秒
www.canva.comEnterprise plan60 毫秒
{无法披露}Enterprise plan54 毫秒
{无法披露}Enterprise plan37 毫秒

6. 如何解读这些结果

从各项测试中,我得出以下结论:

  • 来自部分印度 ISP 和移动网络的流量,访问 Cloudflare Free 和 Pro 网站时,会由新加坡/阿姆斯特丹节点服务,导致延迟增加。
  • 存在这一问题的印度 ISP/移动网络,合计占据超过 75% 的市场份额。
  • Cloudflare Business 和 Enterprise 方案上的网站,不会遇到这种重新路由或延迟增加的情况。

7. 其他 CDN 的对比

我对以下 CDN 上的其他网站做了同样的延迟测试:

  • AWS CloudFront
  • Google Cloud CDN
  • Akamai

从 Jio / Airtel 网络访问时,这些 CDN 上的网站都没有出现 Cloudflare Free / Pro 方案上观察到的路由或延迟行为。

8. 网站所有者应该怎么做

如果你的受众主要来自印度,不要想当然地认为 Cloudflare 会提升网站速度。相反:

  • 亲自测试效果:分别测量使用和不使用 Cloudflare 时的网站速度,并与 AWS CloudFront、Google Cloud CDN 等替代方案对比。
  • 关注不同方案的表现差异:Cloudflare 的路由行为似乎因方案而异,在决定投入前,先评估你打算使用的方案。

Cloudflare 的产品实力毋庸置疑,但在印度,它的 Free 和 Pro 方案可能会拖慢你的网站。所以,先测量,再选择。

THE END
喜欢就支持一下吧
点赞8 分享
评论 抢沙发

请登录后发表评论

    暂无评论内容