XIU2/CloudflareSpeedTest
运维与部署测试 Cloudflare 等 CDN 的 IP 段延迟与下载速度,筛出最快的 IPv4/IPv6 地址,供 hosts 或本地 DNS 优选使用。
项目介绍
Cloudflare 给访客分配的是 Anycast IP,在国内访问时经常遇到延迟高、丢包多、速度慢的问题。CFST 会读取一批 IP 段,先测 TCP 或 HTTP 延迟,再对延迟较低的 IP 做下载测速,最后按速度排序输出最快的 IP。默认运行会显示最快的 10 个 IP,并把完整结果写入当前目录的 result.csv;第一行就是下载速度最快且平均延迟最低的 IP。
它适合想给自己的 hosts、本地 DNS 或路由器挑一个可用 Cloudflare 节点的人。也支持其他 CDN 和解析到多个 IP 的网站,但下载测速地址需要自行准备。
快速使用
- 从 Releases 下载对应系统的压缩包并解压。Windows 可直接双击
cfst.exe运行。 - Linux/macOS 进入解压目录,赋予执行权限后运行:
chmod +x cfst
./cfst
- 等待测速结束,命令行显示最快的 10 个 IP;完整结果保存在
result.csv,可用记事本或表格软件打开。README 提示用微软 Excel 打开可能出现中文乱码,属于正常现象。
带参数运行可以调整筛选范围,例如 ./cfst -tl 200 -dn 20 表示平均延迟上限 200 ms、下载测速 20 个 IP。各参数含义见参数说明。如果只想测指定的几个 IP 或网段:
./cfst -ip 1.1.1.1,2.2.2.2/24,2606:4700::/32
使用约束
- 自带的
ip.txt和默认测速地址都是针对 Cloudflare 的。测其他 CDN 或其他网站时,需要用-url指定可直连下载、大小超过 200 MB 的测速地址。 - 默认是 TCP 延迟测速,端口为 443。HTTPing 模式(
-httping)能额外从响应头读取地区码,但要求测速地址匹配目标 CDN。 - 地区筛选
-cfcolo仅在 HTTPing 模式可用;Cloudflare、AWS CloudFront、Fastly 使用 IATA 三字机场码,CDN77、Bunny 使用二字国家码,Gcore 使用二字城市码。 - 测速时如果走了代理,或路由器本身开启了代理,结果会失真,README 明确要求先关闭代理再测。
- HTTPing 本质上属于网络扫描,在服务器上高并发(
-n)可能被商家或 CDN 临时限制,建议降低并发。 - 不支持给 UDP 协议的 Cloudflare WARP 优选 IP。
- 工具本身不修改路由,选出的 IP 仍需通过 hosts、本地 DNS 服务或路由器设置来使用。
- 许可证为 GPL-3.0。
结果解读
延迟测速进度条右侧的“可用”数量只代表没有超时的 IP,与延迟上下限、丢包条件无关。下载测速前的“队列”是过滤后剩下的 IP 数量,下载测速是单线程逐个进行。如果设置了 -sl 速度下限,但满足条件的 IP 少于 -dn,程序会一直测到队列耗尽;一个都没找到时不输出结果,加 -debug 才会输出全部结果。README 建议先不带条件测一遍,了解大致的延迟和速度范围。
HotRepo 点评
在 2026-11-01 的 Go 日榜中,该项目当日新增 22 Star,并排到当日 Go 日榜第 17 名。这只是单日记录,不足以判断长期增长趋势;提供的 Star 采样序列为空,也无法据此判断走势。项目长期价值在于它解决的是一个实际存在且不易绕开的问题:国内访问 Cloudflare Anycast IP 的路由分配不理想,而一个无需服务端、直接运行的 Go 二进制可以方便地放在路由器或旧电脑上。GPL-3.0 许可证和周边衍生项目(安卓应用、OpenWrt 插件、Rust 版本)也说明它已经形成可用的周边生态,而不是一次性脚本。
本文由 AI 根据项目 README 生成,更新于 ,以项目官方文档为准。