Cloudflare 优选 IP 完全指南:原理、测速方法、自动化脚本与避坑清单

分类:测速指南 发布时间:2026-05-13

把博客、图床、独立站放在 Cloudflare 后面,是国内站长这几年最普遍的操作。但很多人接入 CF 后会发现一个尴尬的事实:三大运营商访问 Cloudflare 的速度差异巨大——电信 80ms、联通 150ms、移动直接 300ms 起跳并伴随大量丢包,体感比没上 CDN 还慢。

问题不在 Cloudflare 本身,而在它的默认调度。Cloudflare 在全球有 300+ 城市的边缘节点,但通过 Anycast + GeoDNS 给你分配的那个节点,未必是对你最快的那个。"Cloudflare 优选 IP",就是用工具找出对你这条网线最快的那个 CF 节点 IP,绕开默认调度,直接走过去。

这篇文章把优选 IP 的原理、三种实现方式、五步测速流程、自动化脚本,以及 12 个最常见的踩坑点全部讲清楚。看完之后你能独立完成从筛选到落地、再到长期维护的整条链路。


一、先搞清楚:什么是 Cloudflare 优选 IP

要理解优选 IP,先理解 Cloudflare 的网络结构。

Cloudflare 用的是 Anycast(任播)架构。简单说,它在全球 300 多个城市部署了边缘节点(PoP),所有节点都对外宣告同一组 IP 段。当你访问 example.com(接入了 CF 的域名),Cloudflare 的 DNS 会根据你 DNS 出口的位置,把你解析到"它认为离你最近"的那个 PoP 的 IP 上。

问题来了:

  • "DNS 出口的位置" ≠ "你的真实位置"。很多用户用了公共 DNS(114、阿里、Google 8.8.8.8),出口可能在另一个城市甚至另一个省。
  • "地理上最近" ≠ "网络上最快"。从国内访问 CF 的香港节点理论上最近,但中国移动到香港的链路可能比到日本还差。
  • 同一个 IP 段里的不同 IP,落地的 PoP 可能不一样。这是 Anycast 路由抖动的特性。

所谓"优选 IP",就是跳过 CF 的默认 DNS 调度,自己测一遍 CF 公开 IP 段里哪些 IP 对你这条线路最快,然后直接用那个 IP 去访问。

核心机制:Cloudflare 是基于 SNI 和 Host 头分发请求的。也就是说,只要你最终请求里带的 SNI / Host 是你的域名,无论你连到 CF 的哪个 IP,它都能正确把流量转给你的源站。这就是优选 IP 能成立的根本原因——你换 IP,但服务还是你的服务。


二、CF 默认调度为什么不够好

三大运营商在 CF 默认调度下的常见痛点,按经验大致是这样:

1. 电信:相对最稳,但西南、西北分区会绕

电信用户大概率被分到 CF 的洛杉矶、圣何塞或者香港节点,整体可用。但西南(成都、重庆)和西北用户,被调度到圣何塞的概率更高,回程经常走 163 普通网,晚高峰拥堵。

2. 联通:日韩好、欧美一般、香港随机

联通到 CF 的日本东京节点延迟通常很漂亮(50-80ms),但默认未必把你分过去。访问欧美内容时经常被分到圣何塞或者达拉斯,绕路且延迟拉满。

3. 移动:默认调度的最大受害者

中国移动到 CF 的链路一直是三网里最不稳定的。默认经常被分到圣何塞甚至阿姆斯特丹,跨太平洋一来一回 300ms+ 是常态,晚高峰丢包 10%+ 也不少见。优选 IP 对移动用户的提升最显著,从 300ms 优化到 80ms 的案例不在少数。

关于三网线路差异的底层原因,可以参考本站文章 《CN2、CMI、9929、CMIN2 等,一文讲透国内三大运营商所有线路名词》


三、优选 IP 的工作原理

用一个完整的请求链路把这件事彻底讲透。

正常访问 blog.example.com(接入了 CF)的流程:

  1. 浏览器 DNS 查询 blog.example.com
  2. CF 的权威 DNS 返回一个"它认为合适"的 IP,比如 104.16.x.x
  3. 浏览器建立 TCP 连接到这个 IP
  4. TLS 握手,客户端发送 SNI = blog.example.com
  5. CF 边缘节点根据 SNI 找到对应的 zone,拿到回源配置
  6. 从边缘节点回源到你的源站,拿数据返回

优选 IP 改变的是第 2 步——你不再让 CF DNS 给你 IP,而是自己指定一个 CF IP 用。最常见的实现是改本地 hosts:

104.16.123.45  blog.example.com

这样浏览器查 DNS 时直接拿到 104.16.123.45,跳过 CF 的 GeoDNS。后面的 SNI 还是 blog.example.com,CF 边缘节点照样能正确路由请求到你的源站。换 IP 但服务不变,这就是优选 IP 的全部魔法。


四、优选 IP 的三种实现方式

方式 实现难度 影响范围 适合场景
本地 hosts 文件 极低 仅当前设备 个人电脑/单机访问
路由器 hosts / 自建 DNS 整个内网 家庭网络、小办公室
Workers 反代 / 自建 CDN 入口 较高 所有访客 对外服务的网站,给用户加速

方式一:本地 hosts

Windows 位置:C:\Windows\System32\drivers\etc\hosts;macOS / Linux:/etc/hosts。直接追加一行:

104.16.123.45  blog.example.com www.example.com cdn.example.com

保存后浏览器刷新 DNS 缓存即可生效。优点是零成本,缺点是只对自己生效,对你网站的其他访客没用。

方式二:自建 DNS / DoH

在路由器上跑 AdGuardHome、SmartDNS、或者 dnsmasq,把目标域名的解析改写到优选 IP。整个家里的设备都会受益。SmartDNS 还能同时维护多个候选 IP,按延迟自动切换,是这一档的优选方案。

方式三:Cloudflare Workers 反代或自建 CDN 入口

这个方向略复杂,本质是把"换 IP 这件事从客户端搬到服务端":用一台国内可访问性好的服务器(或者用 Workers)做反向代理,对外发布一个独立的入口域名 / IP,所有访客访问这个入口,由它再去回源 CF。优点是对所有访客生效,适合面向用户的网站;缺点是要维护一台中转、成本不低。


五、实战:怎么找到适合自己的优选 IP

核心五步流程,所有工具组合都是为这五步服务的。

Step 1:拿到 Cloudflare 官方 IP 段

CF 公开了自己所有的 anycast 段,地址在 https://www.cloudflare.com/ips-v4。常见的几个段:

IP 段 常见特征
104.16.0.0/13CF 主力段,覆盖广
172.64.0.0/13较新的段,部分节点表现优秀
162.159.0.0/16较老段,部分国内回程较好
141.101.64.0/18欧洲方向常见
108.162.192.0/18北美方向常见
173.245.48.0/20北美方向常见

注意 CF 的 IP 段会增减,以官方公布的最新列表为准。

Step 2:批量存活与基础延迟扫描

整个 CIDR 段里有大量 IP,不可能手测。这一步用 BiuPing FindPing 做整段高并发扫描,快速筛掉不通的 IP 和延迟离谱的 IP,留下候选集(一般保留前 20-50 个)。

FindPing 的优势在于从国内多线路同时发起扫描,你不只能看到"通不通",还能看到"对电信/联通/移动分别通到什么程度"。这是单机命令行扫不出来的维度。

Step 3:多节点延迟测试

把候选 IP 拿到 BiuPing 多节点 Ping 跑一遍,看每个 IP 从全国不同省市、不同运营商出去的延迟和丢包。重点关注:

  • 平均延迟:越低越好,但不是唯一指标
  • 丢包率:必须接近 0,1% 以上的就直接淘汰
  • 抖动(Jitter):标准差大说明链路不稳,对视频、游戏、WebSocket 致命。关于抖动的影响可以看本站 《Ping 值很低游戏却卡顿?真正的元凶可能是网络抖动(Jitter)》
  • 三网均衡度:如果你的访客覆盖三网,要找三网都不差的 IP,而不是只对一家好

Step 4:HTTP 真实下载速度测试

这一步是最多人漏掉的,也是判定一个 IP 真正能不能用的关键。延迟低不代表带宽好——CF 给国内的某些节点会被限速到 500KB/s 以下,ping 再漂亮下载也是龟速。

BiuPing 网站测速 测一个真实的下载场景:

  • 用候选 IP 替换 DNS 解析(hosts 或工具配置)
  • 访问你站上的一个真实大文件(图片、JS、CSS、或者一个 1MB 测试文件)
  • 看完整瀑布流:DNS / TCP 握手 / TLS 握手 / TTFB / 下载耗时五段
  • 多节点同时测,看一致性

实战经验:一个延迟 80ms 但 TTFB 是 600ms、下载速度 200KB/s 的 IP,不如一个延迟 130ms 但 TTFB 180ms、下载速度 5MB/s 的 IP。

Step 5:长时间稳定性观察

CF 的 anycast 路由是动态的,同一个 IP 早上的归属 PoP 和晚上未必一样。光测一次就上线是大忌。建议候选 IP 选定后,连续 3 天、覆盖早中晚三个时段各跑一次完整测试,挑出"全时段都不差"的 IP,而不是"某一刻最快"的 IP。


六、自动化脚本:CloudflareSpeedTest 与替代方案

对追求效率的用户,社区有一个广泛使用的开源工具 CloudflareSpeedTest,能从本地一次性完成 IP 段扫描 + 延迟测试 + 下载测速,输出排序后的 TOP IP 列表。基本用法:

# 下载对应平台的二进制
# Linux 示例
./CloudflareST -n 200 -t 4 -dn 10 -tl 200 -tll 40 -tp 443

# 关键参数:
# -n 200    并发数
# -t 4      ping 测试次数
# -dn 10    保留前 10 个做下载测速
# -tl 200   延迟上限 200ms
# -tll 40   延迟下限 40ms(避免落地节点过近)
# -tp 443   测试端口 443

它有两个局限要注意:

  1. 从你本地一台机器测,只代表这台机器所在的线路。如果你的网站访客遍布三网,本地测出来的"最优 IP"对其他用户可能不适用。
  2. 下载测速默认走 CF 提供的测速文件,跟你站上的真实资源(受你回源配置、缓存命中率影响)会有差异。

所以推荐的玩法是:本地用 CloudflareSpeedTest 做粗筛 → BiuPing 多节点工具做精筛 → 真实业务回归验证。三步组合下来,找出来的 IP 才是真正"对你网站所有访客都不差"的 IP。


七、按运营商优选:电信 / 联通 / 移动的偏好规律

虽然 CF 是 anycast,每个 IP 落到哪个 PoP 随时间和路由变化,但长期观察下来三网对 CF 不同段确实存在统计意义上的偏好(仅供参考,以你实测为准):

运营商 表现较好的常见段 典型落地 PoP
电信 104.16 / 104.17 / 172.64 部分 洛杉矶、圣何塞、香港
联通 104.16 / 162.159 / 172.64 东京、香港、洛杉矶
移动 172.64 / 104.18 / 141.101 部分 东京、新加坡、阿姆斯特丹(偶尔)

重要提醒:上表只是经验性的"起点",不是固定结论。CF 的路由策略每几个月可能就会调整一次,真正的优选 IP 必须每次自己跑一遍测试,照搬别人的列表往往不准。


八、避坑清单:12 个最常见的误区

下面这些坑,是我和不少站长在做 CF 优选时都踩过的。一条一条对照检查,能省下大量返工时间。

1. 只测延迟不测下载速度

前面强调过:CF 部分节点对国内有带宽限制,延迟漂亮但下载慢。必须做 HTTP 下载测速,看完整瀑布流。

2. 用国外 VPS 测国内访客用的优选 IP

测速点必须和你的访客在同一张网。从美国 VPS 跑 CF IP 测出来的"最优",跟你电信用户实际访问没有半点关系。

3. 不区分三网,只测一家

很多人手头只有电信,测完直接全网推。结果联通、移动用户体验更差。一定要三网都覆盖。

4. 测完一次就当一劳永逸

CF 的 anycast 路由是动态的,一个月前最优的 IP 现在可能已经被分到很远的 PoP。建议每周复测一次,至少每月一次。

5. 把 CF 的某个 IP 当作"固定常量"硬编码

CF 偶尔会下线某个段或者调整宣告策略。脚本要有 fallback:优选 IP 不通时自动回退到 CF 默认解析。

6. SNI / Host 头没配对

用某些代理工具自定义 IP 时,如果忘了带正确的 SNI,CF 边缘节点会返回 HTTP 403 或者 SSL 错误。检查 TLS 客户端配置确认 SNI = 你的域名。

7. 在主路由上写死 hosts,影响家人

主路由上的 DNS 改写会影响所有设备。如果家人/同事访问你的目标域名时拿到了你优选的 IP,但他们用的是不同运营商,反而可能变慢。建议只在你自己的设备或子网做。

8. 错把非 CF 的 IP 当成 CF IP 用

CF 的官方 IP 段是公开的,但很多用户从论坛抄来的"优选 IP"实际是别人 Workers 反代出来的、或者干脆是某个住宅 IP。这种 IP 用上去:第一不稳定,第二可能涉及别人的服务被你蹭流量。认准 CF 官方 IP 段。

9. 测速时段过于单一

白天 14:00 测的 IP 是好的,到了晚 21:00 高峰可能丢包飙到 10%。必须覆盖早中晚三个时段。

10. 优选了 IP,但 TLS 证书域名对不上

这种情况通常发生在你优选 IP 后访问 https://104.16.x.x(直接用 IP 访问),证书是发给域名的,IP 访问当然校验失败。正确用法是改 hosts,让浏览器以为这个 IP 就是你的域名,用域名访问,不是用 IP 访问。

11. CF 节点禁用了非 443/80 端口

CF 部分 IP 出于 DDoS 防护,会禁用 8080 / 2052 等非标准端口。如果你跑 WS+TLS 之类的服务用了非标端口,优选 IP 之后可能完全打不通。优先用 443,要么换段。

12. 把 CF 优选 IP 当作"加速一切"

优选 IP 只能加速你站在 CF 上的资源。源站如果跨境(比如源站在美国),优选 IP 把你和 CF 之间的延迟降下来了,但 CF 回源到美国源站那一段你管不到。真正的加速要同时优化"客户端 → CF" 和 "CF → 源站" 两段。


九、动态维护:好 IP 会变,怎么做长期方案

一次性筛出 IP 写死,几周后效果就会衰减。成熟的玩法是把"优选 + 应用"做成自动化流水线:

1. 定时任务每天复测

cron 跑 CloudflareSpeedTest,输出排序后的 TOP 5 IP。把结果落到一个文件里供后续步骤消费。

# 每天凌晨 4 点跑一次
0 4 * * * /path/to/CloudflareST -dd -o /var/log/cf_best.csv

2. 自动更新 DNS 解析

如果你的域名 DNS 在 Cloudflare 上托管(很常见),那其实不需要你改 DNS 自己的 A 记录——你改了也没用,因为访客查 DNS 还是会经过 CF 调度。这种情况下你只能控制"你自己设备/服务器"侧的解析。

如果你的 DNS 在第三方托管(阿里、DNSPod、CF DNS only 模式等),可以用脚本通过 API 把昨晚测出来的最优 IP 写入 A 记录。注意 TTL 设短一点(60-300 秒),方便快速切换。

3. 客户端侧用 SmartDNS / mosdns 做动态切换

更优雅的方案是在路由器或者本地跑 SmartDNS / mosdns,维护一个 CF IP 候选池,由 DNS 服务自己实时测延迟选最快的返回。访客端啥都不用改,自动享受最优。

4. 监控 + 告警

给优选后的 IP 加一个外部监控,最优 IP 一旦丢包率超过阈值(比如 2%)或者延迟突增 50%,自动报警并触发重新筛选。


十、写在最后

把这一整套讲完,本质上就是一句话:

Cloudflare 优选 IP 的本质,是用工具补 CF 默认 GeoDNS 调度的盲区——你比它更了解你和你访客所处的真实链路。

这套方法不限于 Cloudflare。Fastly、Akamai、Bunny CDN、甚至自建 CDN 的入口选择,都可以套同样的流程:拿到入口段 → 多线路扫描 → 多节点测延迟 → 真实下载验证 → 长期监控复测。所谓 CDN 加速,从来不是"接上就完事",而是一套需要持续维护的工程。

BiuPing 的所有工具——多节点 Ping、TCPing、网站测速、路由追踪、FindPing 段扫描、DNS 查询——本质上都是为了把这套流程里的每一步从"靠运气"变成"靠数据"。如果你正在做 CF 优选或者更广义的 CDN 接入优化,可以把这几个工具收藏起来配合使用。

祝你的网站从此对三网都能跑出漂亮的数字。

← 返回测速指南列表 返回首页


📚 相关推荐

CN2、CMI、9929、CMIN2 等,一文讲透国内三大运营商所有线路名词  网站国外访问很慢?一文讲透跨境网络问题排查与优化方法  Ping 值很低游戏却卡顿?真正的元凶可能是网络抖动(Jitter)  丢包率多少算正常?网络丢包判定标准与排查完整指南

🔧 试试这些工具

📡 在线 Ping  🔌 在线 TCPing  🌐 网站测速  🗺️ 路由追踪  🔍 FindPing 段扫描  🏷️ IP 归属查询

← 返回测速指南列表 返回首页