查找适合自己当前网络环境的优选 Cloudflare Anycast IP
本项目侧重于研究任播技术中丢包率与网速的相互关系,仅供学习使用
禁止使用范围准则如下
a) 相关机构提示网页有威胁的,有非法信息提示的网站。
b) 医院类型网站(流产,皮肤病,性病等医院),未获得卫生部资质的网站。
c) 网站主体内容含有色情(视频交友,一夜情交友)、违法(办假证,贩卖仿真枪)、封建迷信、游戏私服、游戏外挂、网赚、两性、美女贴图和动漫贴图(尺度过大)、赌博(含贩卖赌博工具。)、博彩等内容。
d) 网站存在恶意流氓广告(存在非法内容视频链接,非法网页内容链接)。
e) 网站存在任何破坏或试图破坏网络安全的行为,以病毒、木马、恶意代码、钓鱼等方式,试图对网站、网络相关软硬件进行恶意扫描、非法侵入系统、非法获取数据等内容。
f) 网站内容存在版权风险的网站(视频,小说,音乐等网站)。
g) 网站含有药品销售、保健品销售,但未取得资质的,或严重夸大药效事实。
h) 网站主要业务为向非法网站提供支付、交易平台、担保,代理外国金融理财(炒股,炒现货,炒黄金)等服务的网站。
i) 网站中大量存在影响社会和谐稳定的内容的网站(涉嫌攻击国家,攻击领导人,攻击人民,言论煽动性质网站)。
j) 网站内容含有国家相关法律法规不允许的其他内容。
k) 网站内容含有VPN,网络代理等内容。
l) 通过技术手段或非技术手段干扰 Cloudflare 所有产品正常运营的网站。
m) 网站内容为发布虚假不实消息行为,或侵害了他人的合法权益行为的网站。
n) 获取网站内容需要通过登录等方式,无法直接查看造成内容无法审核的网站。
o) 提供影视、软件和应用等下载服务的网站。
此版本不需要用户上传任何数据到服务器,服务器仅提供 IP 地址池维护以及下发!
- IPv4 优选 (TLS)
- IPv4 优选 (非 TLS)
- IPv6 优选 (TLS)
- IPv6 优选 (非 TLS)
- 单 IP 测速 (TLS)
- 单 IP 测速 (非 TLS)
- 清空缓存
- 更新数据
用户可自定义 ips-v4.txt 和 ips-v6.txt 的 IP 地址段,如果使用数据更新将会覆盖本地自定义的数据
自定义 ips-v4.txt 的内容格式为 x.x.x.x 或 x.x.x.x/x 的 CIDR 写法,自动识别前缀长度,保留前 3 段,最后一段随机生成
自定义 ips-v6.txt 的内容格式为 x:x:x:x:x:x:x:x 或 x:x:x:x:x:x:x:x/x 的 CIDR 写法,自动展开 :: 压缩,保留前 3 段,后 5 段随机生成
更多自定义玩法待用户自己发现
优选流程支持设置以下期望条件:
- 期望带宽:单位 Mbps,默认 1 Mbps。
- 期望延迟:单位毫秒,留空表示不限制。程序会在 RTT 测试后过滤超过该延迟的 IP。
- 期望数据中心位置:留空表示不限制。可输入 Cloudflare 数据中心三字码、城市名、区域名或国家/地区代码,例如
HKG、Hong Kong、Asia-Pacific、HK。 - 期望个数:默认 1,最大 100。程序会持续测试,直到找到指定数量的优选 IP。
- RTT 测试数量:默认 100。可输入数字指定每轮生成并测试的 IP 数量,输入
all表示每轮测试全部子网各随机生成的 1 个 IP。 - RTT 测试进程数:默认 50,最大 100,只控制 RTT 阶段的并发数量。
- RTT 超时:默认 250ms,最低 100ms。网络环境较差时建议使用默认值或更高值,否则可能测不出有效结果。
- RTT TLS SNI:TLS 模式默认使用
cloudflare-ech.com,也可在每次优选开始时输入自定义主机名;HTTP Host 会与 SNI 保持一致。 - 延迟替换:初次选满后可再输入一个更低的延迟阈值,程序会继续寻找符合该延迟的新 IP,并优先替换当前候选中延迟最高的 IP。
- 有效 IP 记录:每轮速度测试只要测出有效 IP,就立即更新
valid-ips.json和valid-ips.txt,按延迟升序、同延迟按速度降序排序。 - 速度显示:结果以 Mbps 为主,同时保留 kB/s 方便核对原始测速值。
- 超时控制:RTT 连接与单次请求默认压制到 250ms,可手动降低到最低 100ms;测速阶段设置了连接超时和 4 秒总超时,用于更快跳过不可用 IP。
- 测速方式:速度测试阶段保持单线程逐个下载,避免多个候选同时测速互相抢占带宽导致失真;每轮候选测完后按峰值速度降序选出最快的达标 IP。
当设置了多个期望条件时,优选 IP 需要同时满足带宽、延迟、数据中心位置和个数要求。
- 随机生成 IP — 从子网列表中随机抽样,IPv4 保留前 3 段末尾随机,IPv6 保留前 3 段后 5 段随机
- RTT 测试 — 并发 TCP 握手 + HTTP GET,验证 CF-RAY 头,记录 RTT 阶段数据中心,3 次取平均延迟,按延迟升序排序,并按期望延迟和期望数据中心提前过滤
- 速度测试 — 单线程逐个下载测速文件,每 1 秒滑动窗口计算瞬时峰值速度,同时再次匹配测速响应的数据中心位置,收集达到设定条件的 IP,并按峰值速度降序选择本轮最快结果
- 去重测试 — 同一轮优选中已生成测试过的 IP 不会重复测试,替换候选时也会跳过当前已选 IP
- 结果记录 — 每轮测出的有效 IP 会立即落盘并排序;达到期望个数后输出全部优选结果,可继续输入新的延迟阈值替换当前最高延迟候选
确保已安装 Go 1.22 及以上版本,然后执行:
本机 Native 优化构建 Windows exe:
powershell -ExecutionPolicy Bypass -File .\build-native.ps1脚本只构建当前 Windows 主机的 better-cloudflare-ip.exe。在 amd64 机器上会自动探测可运行的最高 GOAMD64 等级,也可以手动指定:
powershell -ExecutionPolicy Bypass -File .\build-native.ps1 -GOAMD64 v3脚本默认使用 Go PGO 的 auto 模式。目录中存在 default.pgo 时会自动用于优化;也可以手动指定或关闭:
powershell -ExecutionPolicy Bypass -File .\build-native.ps1 -PGO .\default.pgo
powershell -ExecutionPolicy Bypass -File .\build-native.ps1 -PGO off生成本项目可用的 PGO profile:
$env:BCFI_CPU_PROFILE = "default.pgo"
go run main.go
Remove-Item Env:\BCFI_CPU_PROFILE运行时按你的常用方式完成一次典型优选流程并从菜单退出,生成的 default.pgo 会在下一次 native 构建时自动生效。
通用构建:
go build -o better-cloudflare-ip main.go && ./better-cloudflare-ip或直接运行:
go run main.go对于 Cloudflare ASN https://bgp.he.net/AS13335 ,Cloudflare IP Ranges 来自 https://www.cloudflare.com/zh-cn/ips/