一个适用于 Windows和linux 的 Cloudflare IP 自动测速工具。
它可以自动下载 IP 列表,批量测试 TCP 延迟和下载速度,筛选出更快的节点,并生成可直接用于订阅的 best_ips.txt。你也可以让它把结果自动上传到 GitHub 或 Cloudflare R2。
我的优选订阅仓库:https://github.com/HandsomeMJZ/cfip
运行测速期间,请不要使用 TUN 模式代理。
测速会产生大量连接和下载请求。如果开启 TUN 模式代理,流量可能会经过你的代理通道,导致 KV、流量或额度被快速消耗。
建议运行前确认:
- TUN 模式已关闭
- 系统代理不会接管测速流量
- 需要代理 GitHub 时,只配置
git_http_proxy/git_https_proxy
| 功能 | 说明 |
|---|---|
| 自动下载 IP 列表 | 从 input_url 下载最新节点,也支持本地 ips.txt |
| TCP 延迟测试 | 快速筛掉不可用或延迟过高的节点 |
| 下载测速 | 使用 Cloudflare 测速地址测试实际带宽 |
| 高速筛选 | 按 min_speed_mbps 自动生成优选结果 |
| 延迟显示 | 输出中可显示 45ms |
| 带宽显示 | 输出中可显示 28Mbps,精确到个位数 |
| GitHub 上传 | 可自动提交并推送结果文件 |
| R2 上传 | 可自动上传结果到 Cloudflare R2 |
| 文件 | 作用 |
|---|---|
cf_updater.exe |
主程序,双击或命令行运行 |
setting.config |
配置文件,开关、阈值、上传信息都在这里 |
ips.txt |
本地 IP 列表,关闭自动下载时使用 |
full_ips.txt |
所有测速成功节点 |
best_ips.txt |
达到高速阈值的优选节点,通常使用这个 |
README.MD |
说明文件,也可随结果一起上传 |
在当前目录打开 PowerShell:
.\cf_updater.exe也可以直接双击 cf_updater.exe。
程序会按顺序执行:
下载 IP 列表 -> TCP 延迟测试 -> 下载测速 -> 写入结果 -> 上传同步
运行完成后会生成:
full_ips.txt
best_ips.txt
新手一般只需要使用:
best_ips.txt
输出示例:
1.2.3.4:443#HK_1 [优选高速] [45ms 28Mbps]
第一次使用时,建议先不要开启上传,只在本地生成结果:
download_input=true
min_speed_mbps=12.0
show_latency=true
show_bandwidth=true
github_upload_enabled=false
r2_upload_enabled=false确认能正常生成 best_ips.txt 后,再考虑开启 GitHub 或 R2 上传。
自动下载在线列表:
download_input=true
input_url=https://zip.cm.edu.kg/all.txt使用本地 ips.txt:
download_input=false
input_file=ips.txtmin_speed_mbps=12.0含义:下载速度大于 12 Mbps 的节点会进入 best_ips.txt。
如果想更严格:
min_speed_mbps=30.0如果节点太少:
min_speed_mbps=5.0show_latency=true
show_bandwidth=true开启后会显示:
[45ms 28Mbps]
关闭带宽显示:
show_bandwidth=false关闭延迟显示:
show_latency=falsetop_per_region=8含义:每个地区先按 TCP 延迟选出前 8 个节点,再进入下载测速。
如果你想提高命中好节点的概率,可以适当调大,例如:
top_per_region=12开启 GitHub 上传:
github_upload_enabled=true
github_repo=https://github.com/你的用户名/你的仓库.git
github_branch=main
github_token_env=GITHUB_TOKEN推荐使用环境变量保存 Token,不要直接写进配置文件。
PowerShell 临时设置:
$env:GITHUB_TOKEN="你的 GitHub Token"
.\cf_updater.exe上传成功后,仓库会更新:
full_ips.txt
best_ips.txt
README.MD
临时关闭 GitHub 上传:
.\cf_updater.exe --no-upload开启 R2 上传:
r2_upload_enabled=true
r2_account_id=你的 Cloudflare Account ID
r2_bucket=你的 R2 存储桶名称
r2_access_key_env=R2_ACCESS_KEY_ID
r2_secret_key_env=R2_SECRET_ACCESS_KEYPowerShell 临时设置 R2 密钥:
$env:R2_ACCESS_KEY_ID="你的 R2 Access Key ID"
$env:R2_SECRET_ACCESS_KEY="你的 R2 Secret Access Key"
.\cf_updater.exe上传到 R2 指定目录:
r2_prefix=cfip上传后的对象路径:
cfip/full_ips.txt
cfip/best_ips.txt
cfip/README.MD
临时关闭 R2 上传:
.\cf_updater.exe --no-r2-upload| 命令 | 作用 |
|---|---|
.\cf_updater.exe |
正常测速并按配置上传 |
.\cf_updater.exe --help |
查看帮助 |
.\cf_updater.exe --setup |
重新运行配置向导 |
.\cf_updater.exe --push-only |
不重新测速,只推送已有结果 |
.\cf_updater.exe --upload |
本次运行强制开启 GitHub 上传 |
.\cf_updater.exe --no-upload |
本次运行关闭 GitHub 上传 |
.\cf_updater.exe --r2-upload |
本次运行强制开启 R2 上传 |
.\cf_updater.exe --no-r2-upload |
本次运行关闭 R2 上传 |
.\cf_updater.exe --no-bandwidth |
本次运行隐藏带宽 |
把高速阈值调低一点:
min_speed_mbps=5.0也可以增加每个地区进入测速的候选数量:
top_per_region=12请检查:
- 已安装 Git
github_repo地址正确github_branch分支存在GITHUB_TOKEN有仓库写入权限- 如网络访问 GitHub 较慢,可配置
git_https_proxy
请检查:
r2_account_id是否正确r2_bucket是否存在- R2 Access Key 是否有写入权限
R2_ACCESS_KEY_ID和R2_SECRET_ACCESS_KEY是否已设置
可以。程序支持行内注释:
show_bandwidth=true # 是否显示带宽也支持无注释:
show_bandwidth=true不要把下面这些内容提交到公开仓库:
- GitHub Token
- R2 Access Key
- R2 Secret Access Key
更推荐使用环境变量保存密钥,例如:
$env:GITHUB_TOKEN="你的 GitHub Token"
$env:R2_ACCESS_KEY_ID="你的 R2 Access Key ID"
$env:R2_SECRET_ACCESS_KEY="你的 R2 Secret Access Key"