CloudFlare Token

首先,获取你的 Token 博主偷懒直接选择了使用全局 Token…

进入 Overview 界面,可以在右下角找到 Get your API token 的链接

img

点击 Global API KeyView

img

输入密码和验证码,即可获得 你的Token

CloudFlare Api

https://api.cloudflare.com/#getting-started-requests

有了 Token 首先先获取下基本信息

1
2
3
4
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:example@example.com"

将其中的

  • X-Auth-Email的值换成登陆的邮箱
  • X-Auth-Key的值更换为Token
  • zone ID 换成查看到的zone ID

zone ID可以在上面 Global API Key 上方看到

执行此段shell脚本,可以看到账户的个人信息

设置DNS

点击DNS,关于绑定 Cloudflare nameservers 就不详细介绍了,在购买域名服务商处将NameServer/域名服务器

博主下面演示的是绑定IPv6地址的脚本和操作,IPv4自行更换几个地方就好

创建一个AAAA记录(这个是IPv6版本的A记录)

  • Name处填入自己想要的二级域名,若填@符号则设置的是根域名
  • address先随便填写一个

最后将Cloudflare的代理 Proxy 关闭 Save

img

使用API获取DNS记录的ID

使用以下脚本

1
2
3
4
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:example@example.com"

找到刚刚设置的域名ID

如果太过凌乱可以将域名修改为
https://api.cloudflare.com/client/v4/zones/$zone_ID/dns_records?type=AAAA&name=刚刚设置的域名(记得写全)

IPv4 type 修改为 A

自动更新DNS记录

1
2
3
4
5
6
$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:example@example.com" \
--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

1
crontab -e

添加一行

*/1 * * * * /root/setDNS.sh

一分钟执行一次 setDNS.sh (将后方的路径修改为自己的)