起因
用 Cloudflare CDN 的都知道,虽然免费香,但国内访问经常抽风。每次都要手动测速、找最快的 IP、然后改 DNS,太麻烦了。
于是就整了这么个脚本,自动帮你搞定这事儿。
能干啥?
- 定时跑 CloudflareSpeedTest 测速
- 自动把最快的 IP 通过 API 更新到域名 DNS
- 支持多域名、IPv4/IPv6
- 有变化才更新,不瞎折腾
- 可以推送通知到手机(Bark/Telegram)
快速上手
Docker 三步走(推荐):
# 1. 下载配置
mkdir -p cfst-ddns/data && cd cfst-ddns
curl -O https://raw.githubusercontent.com/lonelyman0108/cfst-ddns/main/docker-compose.yml
curl -o data/config.sh https://raw.githubusercontent.com/lonelyman0108/cfst-ddns/main/config.example.sh
# 2. 改配置(填你的 Cloudflare Token 和域名)
vim data/config.sh
# 3. 起飞
docker-compose up -d
默认每 6 小时跑一次,想改频率就改 docker-compose.yml 里的 CRON_SCHEDULE。
或者本地跑:
git clone https://github.com/lonelyman0108/cfst-ddns.git
cd cfst-ddns
./install.sh # 自动下载测速工具
cp config.example.sh config.sh
vim config.sh # 填配置
./cfst_ddns.sh # 跑一次试试
配置示例
# ========== DNS 提供商选择 ==========
DNS_PROVIDER="cloudflare"
# ========== 要更新的域名列表 ==========
DNS_RECORD_NAMES="test1.example.com test2.example.com"
# ========== Cloudflare API 配置 ==========
# 方式一:使用 API Token(推荐)
CF_API_TOKEN="your_api_token_here"
CF_ZONE_ID="your_zone_id_here"
# 方式二:使用 Global API Key
# CF_API_EMAIL="[email protected]"
# CF_API_KEY="your_global_api_key"
# CF_ZONE_ID="your_zone_id_here"
# ========== DNSPod API 配置 ==========
# 格式:ID,Token(例如:12345,1234567890abcdef1234567890abcdef)
DNSPOD_TOKEN="your_id,your_token"
# 可选:测速参数
CFST_PARAMS="-n 200 -t 4 -sl 5" # 默认就挺好
# 可选:通知
ENABLE_BARK="true"
BARK_KEY="your_key"
亮点
- 智能更新:IP 没变就不动,省 API 调用
- 调试友好:可以跳过测速直接用上次结果(调试神器)
- 多架构镜像:x86/ARM64/ARMv7 都能跑,树莓派也 OK
- 日志清晰:每次执行完都给你个表格汇总,一目了然
适合谁用?
- 自建服务套了 CF CDN,想优化国内访问速度
- 懒得手动测速改 DNS
- 有树莓派/NAS/VPS 想挂个长期任务
- 管理多个域名的 DDNS
链接
- GitHub: GitHub - lonelyman0108/cfst-ddns: Cloudflare优选IP的DDNS工具
- Docker Hub:
lonelyman0108/cfst-ddns:latest
最后
基于 XIU2 大佬的 CloudflareSpeedTest ,感谢原作者 ![]()
觉得有用就给个 Star 呗,有问题欢迎提 Issue~