支持路由器的cloudflare动态域名ddns更新脚本
网上找到个脚本在树莓派上使用正常,但路由上更新失败。改进之后可以直接在路由上跑,顺便用更安全的API Token方式取代原来的全局API进行更新。
yulewang的脚本已经写得很好,但由于我的路由上grep的版本过旧,不支持-P
参数故获取id失败造成无法更新。用兼容性更好的-E
实现。
另外原脚本用的是全局API,权限太多了,故改为更安全的可定制权限的API Token方式,也省去了一个-u
的参数。
在路由器上部署
获取API Token
可在cloudflare的个人账户处创建Token,这个脚本需要Zone.Zone
的读权限和Zone.DNS
的写权限。
下载脚本
1 | curl https://raw.githubusercontent.com/mjysci/cloudflare-api-ddns/master/cf-ddns.sh > /root/cf-ddns.sh && chmod +x /root/cf-ddns.sh |
这里直接将脚本放在$HOME
目录,由于路由系统的特性,放其他目录可能重启后会被删。
设定定时任务
通过crontab -e
添加定时任务。
1 | */5 * * * * /root/cf-ddns.sh -k cloudflare-api-token -h host.example.com -z example.com -t A >/dev/null 2>&1 |
通过Docker部署
1 | docker run -d --name cloudflare-api-ddns --restart=always \ |
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 名实合为!
评论