CloudflareIP 地址收集与测速工具搭建教程——每个人都可以有自己的优选IP池

CloudflareIP 地址收集与测速工具搭建教程——每个人都可以有自己的优选IP池

一、什么是优选IP?为什么要优选?

对于许多使用Cloudflare CDN服务的网站主和开发者来说,一个普遍的痛点就是访问速度问题。Cloudflare官方分配给用户的IP地址,尤其是在中国大陆访问时,延迟往往较高,甚至可能出现无法访问的情况。这主要是因为Cloudflare默认会为免费套餐用户分配成本较低的美国节点,而不会自动分配延迟更低的香港等亚太节点。37VPS主机评测

所谓“优选IP”,就是通过测试筛选出对特定地区(如中国大陆)用户连接速度较快、稳定性更高的Cloudflare节点IP,并手动指定域名解析到这些IP上,从而有效降低延迟、提升访问体验。对于搭建在Cloudflare上的网站或服务而言,优选IP已成为改善国内访问质量的必要手段。

然而,如何高效、自动地获取这些优质IP,一直是一个令人头疼的问题。手动测速筛选既耗时又低效,而许多已有的自动化方案往往依赖GitHub Actions等外部平台,维护成本较高,且容易因政策变化而失效。正是针对这一需求,CloudflareIP 地址收集与测速工具应运而生。

二、项目简介

CloudflareIP 地址收集与测速工具是一个基于Cloudflare Workers开发的优选Cloudflare IP地址收集与测速工具。该项目由开发者anjing-liu在GitHub上开源发布,核心特点是完全托管在Cloudflare生态内,无需额外服务器或第三方服务,即可自动从多个公开来源收集Cloudflare IP地址,并提供可视化的Web界面和测速功能。项目采用JavaScript编写,100%基于Cloudflare Workers运行时,利用Cloudflare KV作为数据存储,前端采用原生HTML/CSS/JavaScript构建,部署方式简洁高效。

三、核心功能特点

3.1 多源IP采集

该项目支持从不同的公开数据源自动采集Cloudflare IP地址,也支持自己后期手动添加采集源,系统采用批量并行请求策略,大幅提高采集效率,并能智能解析HTML、JSON、文本等多种数据格式。

3.2 智能IP信息提取

除了基础IP地址外,系统还能自动提取和补充多项关键信息:

  • 延迟:从来源提取或通过测测试获取延迟数据;

  • 带宽:提取带宽信息(MB/s);

  • 运营商:自动识别电信、联通、移动或其他运营商;

  • 数据源:记录IP来源,便于追溯。

3.3 智能排序与筛选

采集到的IP数据会按照一套科学规则进行处理:

  • 排序规则:带宽优先(降序)+ 延迟升序;

  • 优质IP筛选:每个运营商选取前4个,总计20个优质IP;

  • 运营商均衡:确保移动、电信、联通三大运营商都有覆盖。

3.4 批量测速功能

系统使用cdnjs.cloudflare.com进行真实测速,支持批量测试IP的延迟和带宽,用户可以自定义测试数量。测速结果会自动保存为优质IP列表,便于后续使用。

3.5 丰富的Web界面功能

部署后的Worker页面提供了一整套可视化操作功能:

功能 说明
立即更新 手动触发从所有来源重新采集IP
下载优质IP 下载纯文本格式的优质IP列表
开始测速 手动触发Worker对IP进行测速
ITDog测速 跳转到ITDog网站进行第三方测速
刷新状态 刷新页面数据
一键复制 支持一键复制单个或全部IP

IP展示面板会清晰显示IP地址、运营商、延迟和带宽信息,并按运营商分类统计,响应式设计也支持移动端访问。

3.6 API接口支持

除了Web界面,该项目还提供了丰富的API接口,方便与其他系统集成,同时也可以自己增减IP获取来源

  • GET / — 主页面

  • GET /ips 或 GET /ip.txt — 获取纯文本IP列表

  • GET /raw — 获取原始JSON数据

  • POST /update — 手动触发IP更新

  • GET /speedtest?ip= — 测试指定IP的速度

  • GET /itdog-data — 获取ITDog格式数据

3.7 定时自动更新

通过Cloudflare Workers的Cron触发器,系统可以定时自动执行IP采集和更新任务。推荐设置为每4小时更新一次(Cron表达式:0 */4 * * *),也可根据需要配置为每1小时、每3小时或每6小时一次。这意味着部署完成后,优质IP列表会自动保持更新,几乎无需人工干预。

四、快速部署指南

4.1 前置要求

  • 一个Cloudflare账户

  • Workers权限

  • KV命名空间(用于存储IP数据)

4.2 部署步骤

第一步:创建Worker

登录Cloudflare控制台(dash.cloudflare.com),进入“Workers和Pages”页面,点击“创建应用程序”→“从Hello World!开始”。

第二步:配置KV命名空间

在Cloudflare控制台(dash.cloudflare.com)左侧菜单进入“存储和数据库”→“Workers KV”,创建一个名为“IP_STORAGE”的命名空间。

第三步:绑定KV到Worker

返回“Workers和Pages”页面 → 选择刚刚创建的项目 → 点击 “绑定” → “添加绑定” → 找到 “KV 命名空间”,填入以下内容

变量名称:IP_STORAGE

KV 命名空间:选择刚创建的 IP_STORAGE

点击 “添加绑定”

第四步:部署代码

点击刚刚创建的项目,找到“编辑代码”,删除全部默认代码,将项目中的workers.js全部内容复制进去,点击“部署”即可。然后点击访问即可访问这个项目。

第五步(可选):配置定时任务

在Worker的设置页面中,进入“触发事件”添加Cron触发器,配置自动更新频率。

点击 “Workers 和 Pages”编辑页面,找到您刚刚创建的项目,点击 “设置” → “触发事件” → “添加” → “Cron 触发器” 选择执行 Worker 的频率,3小时或者6小时一次就差不多,然后点击“添加” 也可以选择“Cron 表达式”,然后填入时间,假如是每6小时执行一次自动更新就填入“0 */6 * * *” 以下是参考:

  • 每6小时:0 */6 * * *
  • 每3小时:0 */3 * * *
  • 每1小时:0 * * * *
  • 每天0点:0 0 * * *
  • 每30分钟:*/30 * * * *

推荐:0 */4 * * * (每4小时更新一次)

第六步(可选):绑定自定义域名

在“设置”→“域和路由”中添加自定义子域名,即可通过自己的域名访问该服务。

五、应用场景

5.1 网站加速

对于托管在Cloudflare上的个人博客、企业官网或跨境电商站点,通过优选IP可以显著改善中国大陆用户的访问速度,避免“赛博大善人”变成“赛博大减速器”。

5.2 代理服务优化

许多基于Cloudflare Workers搭建的代理服务(如vless+ws+tls、trojan+ws等),其连接质量高度依赖于所选IP节点的质量。该项目提供的优质IP列表可直接用于此类服务的节点配置,提升连接的稳定性和速度。

5.3 自动化运维集成

通过项目提供的API接口,可以将优选IP列表动态集成到DNS解析服务中,实现域名解析自动指向当前最优的IP节点,形成完整的优选IP自动化闭环。

六、同类工具对比

目前市面上主流的Cloudflare优选IP工具有以下几类:

  • CloudflareSpeedTest:经典的本地测速工具,需要在本地运行,无法自动更新IP列表。

  • better-cloudflare-ip:提供Linux和Windows平台的Shell脚本实现,功能全面但部署相对复杂。

  • cf-speed-dns:自动化DNS解析方案,持续识别最快边缘IP并动态解析。

相比之下,CloudflareIP 地址收集与测速工具的优势在于:

对比维度 CloudflareIP 地址收集与测速工具 同类工具
部署方式 一键部署到Cloudflare Workers 需本地运行或额外服务器
维护成本 自动定时更新,几乎零维护 需手动执行或维护CI任务
可视化界面 原生Web界面,移动端友好 多为命令行或无界面
数据源 多个公开源并行采集 通常单一来源或本地扫描
成本 Cloudflare免费额度内可用 需本地资源或付费服务器

七、进阶玩法

在这个项目中,修改获取IP的数量和接口的位置主要在 workers.js 文件中的以下几个关键部分:

7.1、修改数据源接口

位置workers.js 文件开头的 SOURCES 数组(约第15-30行)

javascript
const SOURCES = [
    { url: 'https://ip.164746.xyz/ip.txt', type: 'text' },
    { url: 'https://ip.haogege.xyz/ip.txt', type: 'text' },
    { url: 'https://api.uouin.com/ip.txt', type: 'text' },
    { url: 'https://cf.vvhan.com/ip.txt', type: 'text' },
    { url: 'https://wetest.vip/api/getIPS', type: 'json', path: 'data' },
    // ... 其他9个数据源
];

修改方法

  • 添加新接口:按格式添加 { url: '你的接口地址', type: 'text' 或 'json' }

  • 删除接口:直接删除对应行

  • 修改接口地址:更改 url 值

7.2、修改获取IP数量限制

最终输出的优质IP数量

位置updateIPs() 函数中的筛选逻辑(约第180-200行)

// 每个运营商选取的数量
const PER_OPERATOR_LIMIT = 4;  // ← 修改这个数值
// 总计优质IP数量
const TOTAL_LIMIT = 20;        // ← 修改这个数值
  • PER_OPERATOR_LIMIT = 4:每个运营商(电信、联通、移动)取前4个

  • TOTAL_LIMIT = 20:总共保存20个优质IP

示例:如果想每个运营商取5个,总共25个,改为:

const PER_OPERATOR_LIMIT = 5;
const TOTAL_LIMIT = 25;

7.3 测速时测试的IP数量

位置handleSpeedtest() 函数或前端测速逻辑(约第350-380行)

// 测速时默认测试的IP数量
const SPEEDTEST_LIMIT = 50;  // ← 修改这个数值

示例:如果想测试100个IP的数量
const SPEEDTEST_LIMIT = 100;

7.4 从每个数据源获取的最大IP数

位置parseIPsFromSource() 函数(约第120-150行)

// 每个数据源最多提取的IP数量
const MAX_IPS_PER_SOURCE = 100;  // ← 修改这个数值

示例:如果想获取300个IP的数量
const SPEEDTEST_LIMIT = 300;

7.5、修改去重和排序规则

位置processAndDeduplicateIPs() 函数(约第200-250行)

// 按带宽和延迟排序
ips.sort((a, b) => {
    // 带宽高的优先
    if (a.bandwidth !== b.bandwidth) {
        return (b.bandwidth || 0) - (a.bandwidth || 0);
    }
    // 延迟低的优先
    return (a.delay || 999) - (b.delay || 999);
});

可以修改排序权重,比如更看重延迟而非带宽。

7.6、完整修改示例

假设你想:

  • 只使用5个数据源

  • 每个运营商取10个IP

  • 总共保存50个优质IP

  • 每次测速测试100个IP

修改如下:

javascript
// 1. 精简数据源
const SOURCES = [
    { url: 'https://ip.164746.xyz/ip.txt', type: 'text' },
    { url: 'https://ip.haogege.xyz/ip.txt', type: 'text' },
    { url: 'https://api.uouin.com/ip.txt', type: 'text' },
    { url: 'https://cf.vvhan.com/ip.txt', type: 'text' },
    { url: 'https://wetest.vip/api/getIPS', type: 'json', path: 'data' }
];

// 2. 修改优质IP数量
const PER_OPERATOR_LIMIT = 10;  // 每个运营商10个
const TOTAL_LIMIT = 50;         // 总共50个

// 3. 修改测速数量
const SPEEDTEST_LIMIT = 100;    // 测速100个

7.7、注意事项

  1. 修改后需重新部署:在Cloudflare Workers编辑器中保存并重新部署

  2. KV存储容量:Cloudflare免费KV有1GB存储限制,IP数量过多可能占用较多空间

  3. 执行时间限制:Worker单个请求CPU执行时间不能超过10ms(免费套餐),处理过多IP可能导致超时

  4. API友好性:修改数据源时注意目标网站的robots.txt和使用条款

八、注意事项与免责声明

  1. IP稳定性:优选IP并非永久有效,Cloudflare的IP可能会变动,今日快的IP明日可能变慢或被墙,建议保持定时更新频率。

  2. 合规使用:项目仅供学习和研究目的,请勿用于商业用途或违反相关服务条款。

  3. 运营商差异:不同运营商(电信、联通、移动)的优选效果可能存在差异,部分运营商可能仍然绕路。

  4. 免费套餐限制:Cloudflare免费套餐对Workers有每日请求次数限制(10 万次请求),正常使用情况下足够,但高频采集场景需注意配额或者注意是否封号。

九、总结

CloudflareIP 地址收集与测速工具是一款设计精巧、部署简便的优选IP自动化工具。它将IP采集、信息提取、智能排序、测速验证和可视化展示整合在一个Cloudflare Worker中,实现了“一次部署,自动运行”的运维目标。对于需要优化Cloudflare国内访问体验的开发者和站长而言,这是一个值得尝试的开源解决方案。

如果你觉得这个项目有帮助,不妨去GitHub上给它一个⭐️支持一下开发者!

 

QQ交流群:1043787517(群内不定时发放服务器相关福利)

Leave a Comment

Comments

No comments yet. Why don’t you start the discussion?

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注