Skip to content

Repository files navigation

AutoCDN - Cloudflare 优选 IP 自动更新工具

AutoCDN 是一个强大的 Cloudflare CDN IP 优选工具,旨在帮助用户自动筛选最快、最稳定的 Cloudflare 边缘节点 IP,并自动更新到您的 DNS 解析记录中。

本项目同时提供 现代化图形界面 (GUI)命令行工具 (CLI),支持 Windows、Linux (AMD64/ARM64) 和 macOS 平台。

✨ 主要功能

  • 全自动测速:支持 TCP 延迟测速和下载速度测速,精准筛选优质 IP。
  • 自动 DNS 更新:测速完成后,自动将最优 IP 更新到 Cloudflare 的 DNS 记录(支持 IPv4 和 IPv6)。
  • 多平台支持
    • Windows: 提供原生 GUI 界面(基于 Wails + React)和 CLI 工具。
    • Linux: 提供 CLI 工具,支持 x86_64 和 ARM64 (树莓派/电视盒子/VPS)。
    • macOS: 提供 CLI 工具。
  • 灵活配置
    • 支持多配置文件管理。
    • CLI 模式支持通过命令行参数快速覆盖配置。
    • GUI 模式提供可视化配置编辑器。
  • IPv4 / IPv6 支持:自动识别 IP 文件类型并执行相应的测速和更新逻辑。

🚀 快速开始 (CLI 命令行版)

1. 准备工作

请确保您拥有 Cloudflare 的 API Key 和 Zone ID。

  • API Key: 在 Cloudflare "My Profile" -> "API Tokens" 中创建。
  • Zone ID: 在 Cloudflare 域名概览页面的右下角可以找到。

2. 下载与运行

下载对应平台的构建产物(在 build/bin/ 目录下),并准备 config.yaml 和 IP 库文件(如 ip.txt)。

基本用法:

# 运行并指定配置文件
./AutoCDN-CLI -c config.yaml

命令行参数说明:

参数 说明 默认值
-c 指定配置文件路径 config.yaml
-f 指定 IP 段文件路径 (覆盖配置) (空)
-n 延迟测速协程数量 200
-t 延迟测速次数 4
-tl 平均延迟上限 (ms) 9999
-tll 平均延迟下限 (ms) 0
-tlr 丢包率上限 (0-1) 1.0
-dn 下载测速数量 (取延迟最低的前N个) 10
-dt 下载测速时间 (秒) 10
-sl 下载速度下限 (MB/s) 0
-o 结果输出文件路径 (CSV) result.csv
-dd 禁用下载测速 (仅延迟测速) false
-allip 对所有 IP 进行测速 false

示例:

# 使用 my_config.yaml 配置,并强制指定 ip.txt 文件,仅测速延迟低于 200ms 的 IP
./AutoCDN-CLI -c my_config.yaml -f ip.txt -tl 200

🖥️ 图形界面 (Windows GUI)

直接运行 AutoCDN.exe

  1. 在左侧侧边栏选择或新建配置文件。
  2. 在右侧编辑器中填入 Cloudflare 信息和测速参数。
  3. 点击 "保存" 按钮。
  4. 点击主界面的 "开始测速" 按钮即可。

🛠️ 构建指南

如果您希望从源码自行构建,请确保已安装 Go 1.21+Node.js 16+

1. 克隆项目

git clone https://github.com/your-repo/AutoCDN.git
cd AutoCDN

2. 构建命令

我们提供了方便的 NPM 脚本来管理不同平台的构建:

平台 构建命令 不仅输出目录
Windows GUI npm run build:gui:windows build/bin/AutoCDN.exe
Windows CLI npm run build:cli:windows build/bin/AutoCDN-CLI.exe
Linux (AMD64) npm run build:cli:linux build/bin/AutoCDN-CLI-Linux-amd64
Linux (ARM64) npm run build:cli:linux:arm64 build/bin/AutoCDN-CLI-Linux-arm64
macOS (Intel) npm run build:cli:mac build/bin/AutoCDN-CLI-Mac
全部构建 npm run build:all build/bin/ 下所有文件

3. 开发模式

如果您正在开发 GUI 界面:

npm run dev

这将启动 Wails 开发服务器,支持热重载。


⚙️ 配置文件 (config.yaml)

cloudflare:
  api_key: "your_api_key"
  email: "your_email@example.com"
  zone_id: "your_zone_id"
  domains:
    - "cdn.example.com"
  domainipv6s: [] # IPv6 域名列表

speed_test:
  routines: 200 # 延迟测速并发数
  ping_times: 4 # 每次 Ping 次数
  test_count: 10 # 下载测速候选数量
  download_time: 10 # 下载测速持续时间(秒)
  tcp_port: 443 # 测速端口
  speed_test_url: "https://speed.cloudflare.com/__down?bytes=50000000" # 测速文件地址
  max_delay: 200 # 延迟上限 (ms)
  min_speed: 5 # 速度下限 (MB/s)
  ipv4_file: "ip.txt" # 默认 IPv4 库
  ipv6_file: "ipv6.txt" # 默认 IPv6 库

⚠️ 注意事项

  • 权限问题:在 Linux 上运行 CLI 工具前,请确保赋予可执行权限:chmod +x AutoCDN-CLI-Linux-*
  • 404 错误:如果运行通过但提示 "404 Not Found",请检查 zone_id 是否正确,且提供的 API Key 是否有权限操作该 Zone。
  • IPv6 测速:若要测速 IPv6,请确保您的网络环境支持 IPv6,并指定包含 IPv6 地址的文件。

Powered by Wails, React & Go.

About

用于优选cloud flare IP并修改dns解析记录

Resources

Stars

0 stars

Watchers

1 watching

Forks

Releases

Packages

Used by

Contributors

Languages