国内 EdgeOne、海外 Cloudflare:配置全球分流来加速 R2 存储桶
本文说明如何把同一个对外主机名分流:中国大陆访问走腾讯云 EdgeOne,境外访问走 Cloudflare for SaaS,对象仍只存在一份源站上。
有两层做法,不要混用概念:
| 层 | 粒度 | 套餐 |
|---|---|---|
| DNS 分线路 | 默认、境内、境外,以及部分服务商提供的运营商线路 | DNS 服务商能力 |
| EdgeOne 流量调度 | 国家或地区、中国大陆运营商、省份、省份加运营商、美国各州、印度各邦;可按权重分配 | 仅 EdgeOne 企业版 |
DNS 分线路只能把解析切到「境内 / 境外」这一档。企业版在解析已经进入 EdgeOne CNAME 之后,再按地理位置与运营商把请求分给 EdgeOne 或其它 CDN 的 CNAME。官方说明见 流量调度管理。
适合已经把对象放在 Cloudflare R2 自定义域、并且对外域名由支持分线路的 DNS 服务商托管的实施人员。整区 NS 已切到 Cloudflare 时,无法按境内运营商做 DNS 分流;仍可把对外主机名 CNAME 到 EdgeOne,再用企业版流量调度把境外指到 Cloudflare。
按顺序阅读:名称约定 → Cloudflare 回退源与自定义主机名 → 证书 TXT → 境外回源 Host → EdgeOne 源站 → DNS 分线路 → 企业版流量调度(可选)→ 验收。证书不是 Active 时,不要把境外流量切到 Cloudflare。
名称约定
全文使用 RFC 2606 示例域名。将 example.com 换成对外域名,将 example.net 换成已接入 Cloudflare 的区。
| 名称 | 示例 | 作用 |
|---|---|---|
| 对外主机名 | cdn.example.com | 浏览器地址栏中的唯一名字 |
| Cloudflare 区 | example.net | 已接入 Cloudflare,并已开通 Cloudflare for SaaS |
| 对象源 | files.example.net | R2 自定义域,负责返回对象 |
| 接入名 | customers.example.net | 境外 CNAME 的目标;橙云空记录,只负责把流量引入 example.net 区 |
| EdgeOne CNAME | cdn.example.com.eo.dnse0.com | EdgeOne 控制台为加速域名下发的接入值 |
解析与回源关系:
境内: cdn.example.com → cdn.example.com.eo.dnse0.com → EdgeOne → HTTPS 回源 files.example.net境外: cdn.example.com → customers.example.net → Cloudflare for SaaS → 回退源 files.example.netexample.com 继续由 DNSPod、阿里云 DNS 或华为云 DNS 等支持分线路的服务商托管。不要把 example.com 的 NS 切到 Cloudflare。
不要把 cdn.example.com 直接 CNAME 到 files.example.net。请求会到达 Cloudflare Anycast 地址,但证书主体备用名称(SAN)只有 files.example.net。客户端使用 SNI cdn.example.com 握手时失败。必须在 Cloudflare for SaaS 中添加自定义主机名,单独为 cdn.example.com 签发证书。
前置条件
- Cloudflare 账号已接入区
example.net,并且已开通 Cloudflare for SaaS(控制台路径:SSL/TLS → Custom Hostnames)。 files.example.net已作为 R2 自定义域绑定,代理状态为已代理(橙云),并且可以直接返回对象。- EdgeOne 站点已创建。步骤 1 至步骤 5 在个人版与企业版均可完成。步骤 6 的流量调度仅企业版、且站点为 CNAME 接入时可用。
cdn.example.com所在区支持「默认 / 境内 / 境外」等分线路解析。- 源站 WAF 或 Bot 管理不会拦截 EdgeOne 回源。回源 Host 与回源 SNI 必须是
files.example.net。R2 自定义域不接受 Host 为cdn.example.com的请求。
验证对象源:
curl -sI "https://files.example.net/path/to/object.webp"预期结果:HTTP 状态为 200,Content-Type 与对象类型一致。
步骤 1:配置 Cloudflare 回退源与接入名
回退源(Fallback origin)与接入名(CNAME target)不是同一个记录。
| 名称 | 作用 |
|---|---|
| 回退源 | 自定义主机名通过验证后,Cloudflare 将请求转到的源站主机名 |
| 接入名 | 境外解析指向的主机名,只负责把流量引入 SaaS 区 |
回退源填写 files.example.net。该主机名必须已代理,并且已经能够返回对象。
不要把回退源指到任意源站 IP。接入名使用 A 记录指向源站 IP 时,Cloudflare 可能返回 520。接入名 CNAME 到 R2 自定义域时,Cloudflare 可能返回 1014(CNAME Cross-User Banned)。
1.1 创建接入名
在 example.net 的 DNS 中新增一条空源记录:
| 类型 | 名称 | 内容 | 代理状态 |
|---|---|---|---|
| AAAA | customers | 100:: | 已代理 |
控制台不支持 AAAA 时,改用 A 192.0.2.1,代理状态同样为已代理。该记录不提供源站内容,只用于把流量引入边缘。
1.2 指定回退源
- 打开 SSL/TLS → Custom Hostnames。
- 将 Fallback origin 设为
files.example.net。 - 等待回退源状态变为 Active。
当前回退源如果仍是 customers.example.net,删除或更改该 DNS 记录会失败,错误信息包含 Deletion of this record is not allowed 与 fallback origin。先将回退源改为 files.example.net,再修改接入名记录。
1.3 添加自定义主机名
- 选择 Add Custom Hostname。
- Custom hostname 填写
cdn.example.com。 - 证书验证方法选择 TXT。不要选择 HTTP。
HTTP 验证不适用于本方案。默认线路指向 EdgeOne 时,证书颁发机构的校验请求到不了 Cloudflare。若站点启用 Always Use HTTPS,HTTP 校验还会 301 到尚未签发证书的 HTTPS,校验失败。
控制台随后给出证书验证 TXT。常见形式:
名称: _acme-challenge.cdn.example.com值: <控制台给出的令牌>部分账号还会给出主机名归属 TXT:_cf-custom-hostname.cdn.example.com。两条记录都按步骤 2 写入。未出现第二条时,只处理证书验证 TXT。
步骤 2:写入证书 TXT
在自定义主机名的 Certificate 变为 Active 之前,不要修改境外 CNAME。
DNS 控制台会把主机记录与区名拼接成 FQDN。控制台复制的是完整名称,主机记录中不得再次包含区名。
| 控制台显示的名称 | DNS 主机记录 | 类型 | 线路 | 记录值 |
|---|---|---|---|---|
_acme-challenge.cdn.example.com | _acme-challenge.cdn | TXT | 默认 | 控制台给出的令牌 |
_cf-custom-hostname.cdn.example.com | _cf-custom-hostname.cdn | TXT | 默认 | 控制台给出的令牌 |
主机记录如果写成 _acme-challenge.cdn.example.com,实际记录名为 _acme-challenge.cdn.example.com.example.com。证书颁发机构查询 _acme-challenge.cdn.example.com 得到空应答,证书保持 Pending Validation。
写入后检查:
dig +short TXT _acme-challenge.cdn.example.com预期结果:应答中包含控制台给出的令牌。
返回 Custom Hostnames,刷新自定义主机名状态。同时满足以下条件后再继续:
- Hostname 为 Active
- Certificate 为 Active
检查证书是否已部署到边缘:
echo | openssl s_client -connect 104.26.1.14:443 -servername cdn.example.com 2>/dev/null \ | openssl x509 -noout -ext subjectAltName将 104.26.1.14 换成 customers.example.net 当前解析到的任一 Cloudflare 地址。预期结果:SAN 包含 DNS:cdn.example.com。SAN 中没有该名称时,停止修改 CNAME。
证书签发后,保留 _acme-challenge.cdn 这条 TXT,续期仍需要该记录。
步骤 3:处理境外回源 Host
自定义主机名生效后,境外请求进入 example.net 区,浏览器 Host 仍是 cdn.example.com。R2 自定义域按 Host 匹配存储桶,因此直接回源 files.example.net 会失败。
三种做法只启用一套。不要同时配置 Origin Rule、Snippet 与 Worker。
| 做法 | 套餐 | 原理 | 适用 |
|---|---|---|---|
| Origin Rule 改写 Host | 仅 Enterprise | 回源前把 Host / SNI 改成 files.example.net | 企业套餐,不想写代码 |
| Snippet 子请求 | Pro 及以上 | 用 fetch() 访问 files.example.net | 付费套餐,规则不够用 |
| Worker 绑定 R2 | 含免费套餐 | Worker 用存储桶绑定读对象,不依赖 Host | 免费套餐默认选择;也适合需要 Range / HEAD 的图床 |
Free、Pro、Business 的 Origin Rule 不能改写 Host header,也不能改写 SNI。以 Cloudflare 文档中 Origin Rules 的套餐表为准。控制台若没有「Host Header」或保存时报 entitlement 错误,改用 Worker。
公开图床只允许 GET 与 HEAD。不要在 Worker 中实现 PUT 或 DELETE。
3.1 Origin Rule(仅 Enterprise)
前置条件:区套餐为 Enterprise。
- 打开
example.net→ Rules → Origin Rules → Create rule。 - 规则名称填写
cdn-example-origin-host。 - 条件:Hostname equals
cdn.example.com。 - 操作:
- Host Header → Rewrite to
files.example.net - SNI →
files.example.net(有该选项时一并填写)
- Host Header → Rewrite to
- 部署规则。
预期结果:境外请求回源时,源站看到的 Host 为 files.example.net,R2 返回对象。
非 Enterprise 区不要使用本小节。
3.2 Snippet(Pro 及以上)
前置条件:区套餐为 Pro、Business 或 Enterprise。免费套餐没有 Snippets。
Snippet 不能改写原始请求的 Host。需要构造发往 files.example.net 的子请求。fetch() 使用 URL 主机名作为 Host,只修改请求头无效。
- 打开 Rules → Snippets → Create Snippet。
- 名称填写
cdn-example-origin-host。 - 匹配表达式填写
(http.host eq "cdn.example.com")。不要匹配files.example.net,否则子请求会再次进入 Snippet。 - 粘贴下面的代码并部署。
const ORIGIN_HOST = "files.example.net";
export default { async fetch(request) { const incoming = new URL(request.url); if (incoming.hostname === ORIGIN_HOST) { return fetch(request); }
const url = new URL(request.url); url.hostname = ORIGIN_HOST; url.protocol = "https:";
const headers = new Headers(request.headers); headers.delete("host");
return fetch( new Request(url.toString(), { method: request.method, headers, body: request.body, redirect: "manual", }), ); },};3.3 Worker 绑定 R2(推荐,免费套餐可用)
Worker 通过存储桶绑定读取对象,不经过 R2 自定义域的 Host 校验。SaaS 自定义主机名只要把流量引进区,Worker 路由匹配 cdn.example.com/* 即可出对象。
创建 Worker 并绑定存储桶
- 打开 Workers & Pages → Create → Worker。
- 名称填写
cdn-example-r2。 - 用下面的模块 Worker 替换默认代码,保存并部署。
- 打开该 Worker 的 Settings → Bindings → 添加 R2 Bucket:
- Variable name:
MY_BUCKET - R2 bucket:选择实际存储桶
- Variable name:
export default { async fetch(request, env) { if (request.method !== "GET" && request.method !== "HEAD") { return new Response("Method Not Allowed", { status: 405, headers: { Allow: "GET, HEAD" }, }); }
const url = new URL(request.url); const key = decodeURIComponent(url.pathname.replace(/^\/+/, "")); if (!key) { return new Response("Not Found", { status: 404 }); }
const object = await env.MY_BUCKET.get(key, { onlyIf: request.headers, range: request.headers, });
if (object === null) { return new Response("Object Not Found", { status: 404 }); }
const headers = new Headers(); object.writeHttpMetadata(headers); headers.set("etag", object.httpEtag); headers.set("Accept-Ranges", "bytes");
const hasBody = request.method === "GET" && "body" in object; return new Response(hasBody ? object.body : undefined, { status: hasBody || request.method === "HEAD" ? 200 : 412, headers, }); },};range 与 onlyIf 把客户端的 Range、If-None-Match 传给 R2,便于大文件分段下载与缓存再验证。
使用 Wrangler 时,等价绑定如下:
name = "cdn-example-r2"main = "src/index.js"compatibility_date = "2026-08-14"
[[r2_buckets]]binding = "MY_BUCKET"bucket_name = "example-assets"将 example-assets 换成实际桶名。
添加 Worker 路由
路由必须写对外主机名,不要写对象源。
- 打开
example.net→ Workers Routes → Add route。 - 填写:
| 项 | 值 |
|---|---|
| Route | cdn.example.com/* |
| Worker | cdn-example-r2 |
不要填写 files.example.net/*。对象源本身已能通过 R2 自定义域访问;再绑同一 Worker 容易造成循环或重复计费。
自定义主机名未 Active 时,该路由不会匹配到生产流量。
使用 Worker 时,回退源仍保持 files.example.net。请求在回源之前被 Worker 接管,不再依赖 Host 改写。
3.4 可选:Worker 代理 Backblaze B2
对象不在 R2、而在 B2 时,不能使用存储桶绑定。需要在 Worker 内用 S3 兼容接口签名后回源。
前置条件:
- 已创建 B2 存储桶,并生成 Application Key
- 记录该桶的 S3 Endpoint,形式为
s3.<region>.backblazeb2.com
回退源 DNS
在 example.net 增加一条记录,指向 B2 的 S3 Endpoint,而不是 Friendly URL:
| 类型 | 名称 | 内容 | 代理状态 |
|---|---|---|---|
| CNAME | b2 | s3.us-west-004.backblazeb2.com | 已代理 |
将 us-west-004 换成该桶实际区域。Custom Hostnames 的回退源改为 b2.example.net。
Worker 环境变量
| 变量名 | 含义 | 示例 |
|---|---|---|
B2_APPLICATION_KEY_ID | 应用密钥 ID | 控制台生成 |
B2_APPLICATION_KEY | 应用密钥 | 控制台生成,按 Secret 保存 |
B2_ENDPOINT | S3 Endpoint 主机名 | s3.us-west-004.backblazeb2.com |
B2_REGION | Endpoint 中的区域 | us-west-004 |
BUCKET_NAME | 存储桶名 | example-assets |
不要把密钥写入 Worker 源码。
Worker 代码
依赖 aws4fetch。在 Worker 设置中添加该依赖,或使用 Wrangler 安装后部署。
import { AwsClient } from "aws4fetch";
const UNSIGNED_HEADERS = new Set([ "authorization", "connection", "content-length", "expect", "host", "range", "user-agent", "x-amzn-trace-id", "x-forwarded-proto", "x-real-ip",]);
function filterHeaders(headers) { const next = new Headers(); for (const [name, value] of headers.entries()) { const lower = name.toLowerCase(); if (UNSIGNED_HEADERS.has(lower) || lower.startsWith("cf-")) { continue; } next.set(name, value); } return next;}
export default { async fetch(request, env) { if (request.method !== "GET" && request.method !== "HEAD") { return new Response("Method Not Allowed", { status: 405, headers: { Allow: "GET, HEAD" }, }); }
const url = new URL(request.url); url.hostname = `${env.BUCKET_NAME}.${env.B2_ENDPOINT}`; url.protocol = "https:";
const client = new AwsClient({ accessKeyId: env.B2_APPLICATION_KEY_ID, secretAccessKey: env.B2_APPLICATION_KEY, service: "s3", region: env.B2_REGION, });
const signed = await client.sign(url.toString(), { method: request.method, headers: filterHeaders(request.headers), });
const outbound = new Request(signed); const range = request.headers.get("Range"); if (range) { outbound.headers.set("Range", range); }
return fetch(outbound); },};完整签名与重试逻辑见 Backblaze 文档 Integrate Cloudflare Workers with Backblaze B2。
B2 的两条路由
B2 与 R2 不同,回退源本身不能直接按自定义 Host 出对象。需要两条路由:
| Route | Worker |
|---|---|
cdn.example.com/* | cdn-example-b2 |
b2.example.net/* | cdn-example-b2 |
第一条服务对外主机名。第二条覆盖回退源,避免未匹配自定义主机名时的 1014 或空响应。
步骤 4:配置 EdgeOne 源站
加速域名使用对外主机名 cdn.example.com。源站填写对象源,不要填写接入名或源站 IP。
| 配置项 | 值 |
|---|---|
| 加速域名 | cdn.example.com |
| 源站类型 | 源站域名 |
| 源站地址 | files.example.net |
| 回源协议 | HTTPS |
| 回源端口 | 443 |
| 回源 Host | files.example.net |
| 回源 SNI | files.example.net |
回源 Host 仍为 cdn.example.com 时,R2 无法按自定义域匹配存储桶,源站返回 4xx 或 1014。
回源 SNI 必须为 files.example.net,TLS 才会进入 example.net 区。
EdgeOne 回源被源站 WAF 拦截时,边缘状态码常为 403,响应头可能出现 eo-cache-status: MISS。需要为 EdgeOne 回源放行,或为回源请求增加固定头部并在 Cloudflare 跳过对应规则。不要把该 403 解释为边缘节点延迟高。
使用 R2 作为对象源时,EdgeOne 回源 Host 与 SNI 仍必须是 files.example.net。不要把 EdgeOne 源站填成接入名。
步骤 5:配置分线路 CNAME
未开通企业版流量调度时,用 DNS 分线路完成境内 / 境外切分。已开通流量调度时,见步骤 6:DNS 可以只保留指向 EdgeOne 的一条 CNAME。
仅在 Certificate 为 Active 之后修改 CNAME。同一解析线路只保留一条 CNAME。
| 主机记录 | 类型 | 线路 | 记录值 |
|---|---|---|---|
cdn | CNAME | 默认 | cdn.example.com.eo.dnse0.com |
cdn | CNAME | 境外 | customers.example.net |
效果:
- 中国大陆运营商,以及未命中「境外」的解析,指向 EdgeOne。
- 境外解析指向 Cloudflare for SaaS。
也可以改为「默认 → customers.example.net,境内 → EdgeOne CNAME」。两种写法都有效。默认指向 EdgeOne 时,未携带 EDNS Client Subnet 的境内递归解析器更不容易误指向 Cloudflare。
不要同时配置:
- 同一线路上的两条 CNAME
- 境外目标为
files.example.net或其它 R2 自定义域
EdgeOne 要求的域名归属 TXT(主机记录通常为 _dnsauth.cdn)保留,线路选择默认。
步骤 6:企业版流量调度(可选)
DNS 分线路通常只能区分「境内 / 境外」或「电信 / 联通 / 移动」。EdgeOne 企业版的「流量调度管理」在请求已经打到 EdgeOne 接入 CNAME 之后,再按更细的地理位置与运营商选择服务商。
官方前提:已购买 EdgeOne 企业版,并且站点使用 CNAME 模式接入。免费版与个人版没有该功能。
相对 DNS 分线路,流量调度可以指定:
- 国家或地区
- 中国大陆运营商
- 中国大陆省份
- 省份加运营商(例如某一省的电信)
- 美国各州
- 印度各邦
- 按比例分配(同一线路上多个服务商设置权重)
细粒度规则优先于粗粒度规则。官方示例:北京走源站,中国大陆其它地区走服务商 A,默认线路走服务商 B。未匹配到的请求走默认策略。默认策略不可删除,未修改时全部流量走 EdgeOne。
6.1 与 DNS 分线路如何配合
流量调度下发的 CNAME 与加速域名默认 CNAME 相同。DNS 已指向 cdn.example.com.eo.dnse0.com 时,提交策略后立即生效,不必再改解析。
推荐写法:
| DNS 记录 | 值 |
|---|---|
cdn CNAME(默认,可不再拆境外) | cdn.example.com.eo.dnse0.com |
然后在流量调度里把中国大陆指到 EdgeOne,把默认或指定境外区域指到 Cloudflare 接入名。
不要同时在 DNS 境外线路指向 customers.example.net、又在流量调度里把同一批地区指到 Cloudflare。两套规则叠在一起,排障时无法判断是解析切走了,还是调度切走了。选定一层作为生产策略。
停用流量调度后,全部流量改由 EdgeOne 服务。删除策略前必须先停用。已被策略引用的服务商不能删除。修改已被引用的服务商 CNAME 会立即作用于策略。
6.2 添加服务商与策略
- 打开 EdgeOne 控制台 → 目标站点 → 域名服务 → 流量调度管理。
- 选择加速域名
cdn.example.com,创建调度策略。 - 添加服务商。默认服务商 EdgeOne 不可修改、不可删除。新增一项,名称例如
Cloudflare,CNAME 填写 Cloudflare 接入名customers.example.net。不要填写对象源files.example.net。 - 添加策略。先改默认策略,再加细粒度线路。
示例:默认走 Cloudflare,中国大陆走 EdgeOne,并单独列出若干美国州与印度邦(便于以后改权重或切回 EdgeOne):
| 线路 / 区域 | 服务商 | 权重 |
|---|---|---|
| 默认 | Cloudflare | 100 |
| 中国大陆 | EdgeOne | 100 |
| 美国特定州,例如加利福尼亚、华盛顿、得克萨斯、弗吉尼亚 | Cloudflare | 100 |
| 印度特定邦,例如卡纳塔克邦 | Cloudflare | 100 |
默认已经是 Cloudflare、权重为 100 时,美国各州与印度邦的单独条目与默认结果相同。需要这些地区与默认不同时,再改该行的服务商或权重。
同一线路可以选择多个服务商并设置权重,用于灰度。权重之和按控制台规则分配,不要假设未写出的比例。


Cloudflare 一侧仍须完成自定义主机名与步骤 3 的回源 Host 处理。流量调度只决定请求先进入哪家 CDN,不会替 R2 改写 Host。
6.3 验收差异
启用流量调度后,境内与境外解析到的 CNAME 往往都是 cdn.example.com.eo.dnse0.com。不要再用「境外 CNAME 是否为 customers.example.net」判断分流是否生效。
改为检查 HTTPS 响应头:
| 客户端位置 | 预期 |
|---|---|
| 中国大陆 | eo-log-uuid 或 eo-cache-status;证书 SAN 为 cdn.example.com |
| 默认境外,或策略中指向 Cloudflare 的州邦 | cf-ray;server 为 cloudflare;证书 SAN 为 cdn.example.com |
中国大陆某一省若单独配置了省份或省份加运营商策略,以该条为准,不以「中国大陆」整区为准。
验收
证书为 Active、解析生效后执行以下检查。仅使用步骤 5、未启用流量调度时,CNAME 预期如下。
dig @1.1.1.1 cdn.example.com CNAMEdig @223.5.5.5 cdn.example.com CNAME| 查询来源 | 预期 CNAME |
|---|---|
境外公共解析器,例如 1.1.1.1 | customers.example.net(仅 DNS 分线路时) |
境内公共解析器,例如 223.5.5.5 | cdn.example.com.eo.dnse0.com(受线路与 ECS 影响,以权威应答为准) |
启用步骤 6 后,境外解析也可以是 cdn.example.com.eo.dnse0.com。此时以响应头区分服务商,见 6.3。
权威应答不得在两次查询之间切换目标:
dig @ns1.example.com cdn.example.com CNAMEdig @ns2.example.com cdn.example.com CNAME将 ns1.example.com / ns2.example.com 换成 example.com 的权威 NS。
请求同一对象:
curl -sI "https://cdn.example.com/path/to/object.webp"| 观察点 | 预期 |
|---|---|
| 境外客户端 | 响应头包含 cf-ray;server 为 cloudflare;证书 SAN 为 cdn.example.com |
| 境内客户端 | 响应头包含 eo-log-uuid 或 eo-cache-status;证书 SAN 同样为 cdn.example.com |
| 对象源对照 | https://files.example.net/path/to/object.webp 返回 200;ETag 与 Content-Length 与对外主机名一致 |
不要用 https://customers.example.net/ 判断对象是否可访问。接入名是空源记录,不提供内容。
完成效果
以下为配置完成后的一次 ITDOG 多点拨测截图,约 260 个监测点。数字只反映该次测试,不是长期统计,也不能外推到未出现在图中的对象体积或时间段。
企业版:中国大陆
地图各省份落在「小于或等于 0.5 s」档。全部节点平均约 0.193 s。电信 / 联通 / 移动平均分别约 0.158 s、0.241 s、0.192 s。

企业版分流后:境外走 Cloudflare
境外监测点状态码均为 200。响应 IP 为 Cloudflare Anycast(例如 104.26.x.x、172.67.x.x),说明流量调度或 DNS 境外策略已把这些地区交给 Cloudflare,而不是继续留在 EdgeOne。
香港、台湾总耗时多在 0.03 s 至 0.06 s。可见列表中较慢的点包括印度孟买(约 1.73 s,其中下载约 1.60 s)。其余多数城市落在约 0.17 s 至 0.9 s。

对照:同一拨测口径下的免费版 EdgeOne
免费版在相同类型的 ITDOG 中国大陆测试中,全国平均约 1.477 s。电信 / 联通 / 移动平均分别约 1.297 s、2.032 s、1.334 s。该次最慢点为福建厦门联通,约 7.212 s。地图上出现较多 0.5 s 至 3 s 的省份,尾部还有数秒级节点。

与免费版相比,企业版在中国大陆节点就近和尾部延迟上差距很大。该次全国平均从约 1.48 s 降到约 0.19 s,最慢点从约 7.2 s 降到约 2.4 s。差距主要来自可用 PoP 与运营商覆盖。