CloudFlare Token
首先,获取你的 Token 博主偷懒直接选择了使用全局 Token…
进入 Overview
界面,可以在右下角找到 Get your API token
的链接
点击 Global API Key
的 View
输入密码和验证码,即可获得 你的Token
CloudFlare Api
有了 Token
首先先获取下基本信息
curl -X GET "https://api.cloudflare.com/client/v4/zones/$zone_ID" \ -H "Content-Type:application/json" \ -H "X-Auth-Key:1234567893feefc5f0q5000bfo0c38d90bbeb" \ -H "X-Auth-Email:[email protected]"
将其中的
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
使用以下脚本
curl -X GET "https://api.cloudflare.com/client/v4/zones/$zone_ID/dns_records" \ -H "Content-Type:application/json" \ -H "X-Auth-Key:1234567893feefc5f0q5000bfo0c38d90bbeb" \ -H "X-Auth-Email:[email protected]"
找到刚刚设置的域名ID
如果太过凌乱可以将域名修改为
https://api.cloudflare.com/client/v4/zones/$zone_ID/dns_records?type=AAAA&name=刚刚设置的域名(记得写全)
IPv4
type
修改为A
自动更新DNS记录
$CURRENT_IP=$(curl -s ipv6.ip.sb)curl -X GET "https://api.cloudflare.com/client/v4/zones/$zone_ID/dns_records/$dns_ID" \ -H "Content-Type:application/json" \ -H "X-Auth-Key:1234567893feefc5f0q5000bfo0c38d90bbeb" \ -H "X-Auth-Email:[email protected]" --data '{"type":"AAAA","name":"'$DNS_RECORD'","content":"'$CURRENT_IP'","ttl":1,"proxied":false}'
- 将
$dns_ID
修改为自己的dns ID $DNS_RECORD
修改为自己的记录名称(写全/如:”test.hex.moe”)$CURRENT_IP
修改为自己想使用的IP
IPv4
type
修改为A
在上面的代码中,我用了 ipv6.ip.sb 来获取自己的IPv6地址
设置crontab
crontab -e
添加一行
*/1 * * * * /root/setDNS.sh
一分钟执行一次 setDNS.sh (将后方的路径修改为自己的)