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 首先先获取下基本信息

livescript
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

使用以下脚本

livescript
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 记录

julia
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

ebnf
1
crontab -e

添加一行

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

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