利用 CloudFlare Api 实现 DDNS
CloudFlare Token
首先,获取你的 Token 博主偷懒直接选择了使用全局 Token…
进入 Overview
界面,可以在右下角找到 Get your API token
的链接
点击 Global API Key
的 View
输入密码和验证码,即可获得 你的 Token
CloudFlare Api
有了 Token
首先先获取下基本信息
livescript
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
使用以下脚本
livescript
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 记录
julia
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
ebnf
1 | crontab -e |
添加一行
*/1 * * * * /root/setDNS.sh
一分钟执行一次 setDNS.sh (将后方的路径修改为自己的)
本博客所有文章除特别声明外,均采用 CC BY-NC-SA 4.0 许可协议。转载请注明来自 Hyper Tech!
评论