共计 998 个字符,预计需要花费 3 分钟才能阅读完成。
使用 CloudflareSpeedTest 工具优选 IP 后自动 DDNS 到 Cloudflare
推荐放到软路由上面。系统 openwrt
开启定时脚本,每天自动优选 ip 解析到域名。
这里使用开源脚本
1. 下载并解压脚本(载体可以是 openwrt,或其他 linux)
注意,如果没下载测速程序,还得去下载核心文件。
地址:CloudflareSpeedTest
我是树莓派系统是 arm 的,所以下载的是这个文件:CloudflareST_linux_arm64.tar.gz。解压以后放入脚本 cf_ddns 文件夹里面。
2. 填写 config.conf
配置文件
vi config.conf
3. 运行脚本
bash start.sh
定时更新
在脚本的目录,再自己写一个脚本,创建 cron.sh 文件
#!/bin/bash
# cron 定时使用
# 首先进入脚本目录
cd /root/CloudflareSpeedTestDDNS
# 执行脚本,并输出日志
source ./start.sh > nohup.out
在使用 crontab 调度
crontab -e
新建一个定时
34 21 * * * 代表的意思是每天晚上 21:34 运行 cron.sh 脚本。
cron 文件语法:
1. 每隔 n 分钟运行一次脚本
*/n * * * * /path/test.sh
2. 每天凌晨 n 点运行脚本
0 n * * * /path/test.sh
3. 每月第 n 天的早上 6 点 30 分运行脚本
30 6 n * * /path/test.sh
4. 每天的 3 点,12 点,18 点运行脚本
0 3,12,18 * * * /path/test.sh
最终效果
查看文件,便可以看见日志
说明一下,配置文件中的 CFST_DN 属性,也代表了 cf 解析 ip 的数量
#-- 下载测速数量 --
# 延迟测速并排序后,从最低延迟起下载测速的数量;(默认 10 个)
CFST_DN=2
其他配置,自行看注释说明。
Docker 运行
https://hub.docker.com/r/lee1080/cfstddns
原理
使用 Cloudflare 的 API,将 CloudflareSpeedTest 工具优选到的最快 IP,自动更新到指定域名上。
存在问题
.tk .ml .ga .cf .gq 这几个域名可能存在无法调用 CloudflareAPI。
番外
还有个带 ui 的 openwrt 开源插件,附上链接有兴趣的自行了解。