利用CloudFlare Api实现DDNS
CloudFlare Token
首先,获取你的 Token 博主偷懒直接选择了使用全局 Token…
进入 Overview 界面,可以在右下角找到 Get your API token 的链接

点击 Global API Key 的 View

输入密码和验证码,即可获得 你的Token
CloudFlare Api
有了 Token 首先先获取下基本信息
1 | curl -X GET "https://api.cloudflare.com/client/v4/zones/$zone_ID" \ |
将其中的
X-Auth-Email的值换成登陆的邮箱X-Auth-Key的值更换为Tokenzone ID换成查看到的zone ID
zone ID可以在上面Global API Key上方看到
执行此段shell脚本,可以看到账户的个人信息
设置DNS
点击DNS,关于绑定 Cloudflare nameservers 就不详细介绍了,在购买域名服务商处将NameServer/域名服务器
博主下面演示的是绑定IPv6地址的脚本和操作,IPv4自行更换几个地方就好
创建一个AAAA记录(这个是IPv6版本的A记录)
- Name处填入自己想要的二级域名,若填
@符号则设置的是根域名 address先随便填写一个
最后将Cloudflare的代理 Proxy 关闭 Save

使用API获取DNS记录的ID
使用以下脚本
1 | curl -X GET "https://api.cloudflare.com/client/v4/zones/$zone_ID/dns_records" \ |
找到刚刚设置的域名ID
如果太过凌乱可以将域名修改为
https://api.cloudflare.com/client/v4/zones/$zone_ID/dns_records?type=AAAA&name=刚刚设置的域名(记得写全)
IPv4
type修改为A
自动更新DNS记录
1 | $CURRENT_IP=$(curl -s ipv6.ip.sb) |
- 将
$dns_ID修改为自己的dns ID $DNS_RECORD修改为自己的记录名称(写全/如:”test.hex.moe”)$CURRENT_IP修改为自己想使用的IP
IPv4
type修改为A
在上面的代码中,我用了 ipv6.ip.sb 来获取自己的IPv6地址
设置crontab
1 | crontab -e |
添加一行
*/1 * * * * /root/setDNS.sh
一分钟执行一次 setDNS.sh (将后方的路径修改为自己的)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hyper Tech!
评论