
再在左边列表选择 DNS - 记录

添加一个二级域名(或三级) 格式如下 类型: AAAA 名称: 自行填写 IPv6地址: ::1 记住关闭小黄云(与红色箭头处一致)

先点开右上角小人-选择配置文件

打码处为个人邮箱

再选择API 令牌 --> 查看 Global Api Key
信息收集完毕 开始做DDNS
ssh 进机器后 先安装jq
apt update && apt install -y jq
创建文件
nano cloudflare-ddns.sh
复制粘贴以下内容
#!/bin/bash
# basic info
api_email="CLOUDFLARE MAIL"
api_key="GLOBAL API KEYS"
zone_name="example.com"
record_name="diy.example.com"
# pull IPv6 从/64开抓而非只抓/128
v6Addr=$(ip -6 addr show scope global | awk '/inet6/ {print $2}' | cut -d/ -f1 | grep -v ^fd | head -n1)
echo "Using IPv6 address: $v6Addr"
# get zone id
zone_id=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name=$zone_name" \
-H "X-Auth-Email: $api_email" \
-H "X-Auth-Key: $api_key" \
-H "Content-Type: application/json" | jq -r .result[0].id )
echo "Zone $zone_name id is: $zone_id"
# get record id
record_id=$(curl -s -X GET "https://api.cloudflare.com/client/v4/zones/$zone_id/dns_records?type=AAAA&name=$record_name" \
-H "X-Auth-Email: $api_email" \
-H "X-Auth-Key: $api_key" \
-H "Content-Type: application/json" | jq -r .result[0].id )
echo "Record $record_name id is: $record_id"
# update record
result_json=$(curl -s -X PATCH "https://api.cloudflare.com/client/v4/zones/$zone_id/dns_records/$record_id" \
-H "X-Auth-Email: $api_email" \
-H "X-Auth-Key: $api_key" \
-H "Content-Type: application/json" \
--data "{\"type\":\"AAAA\",\"content\":\"$v6Addr\"}")
if [[ "$(echo $result_json | jq .success)" == "true" ]]; then
echo "Done!"
else
echo -e "Failed to update DDNS. CF API result: $result_json"
exit 1
fi友情提示 : 若需只抓/128的请将 pull IPv6 的第一行 修改为以下内容
v6Addr=$(ip -6 addr show scope global | grep /128 | awk -F '[ \t]+|/' '{print $3}' | grep -v ^fd7a)
启动DDNS配置文件
bash cloudflare-ddns.sh
设置定时任务crontab -e
每五分钟跑一次(带日志)*/5 * * * * /bin/bash /root/cloudflare-ddns.sh >/tmp/ddns.log 2>&1
每五分钟跑一次(不带日志)*/5 * * * * /bin/bash /root/cloudflare-ddns.sh >/dev/null 2>&1