获取账号Global API Key

个人简介 -> 配置文件 -> API令牌 -> Global API Key
获得一串密钥33e****************62f

获得域名zone_Id

在域名概述下方获得zone_Id
04b***********3fde

获得record_Id

1
curl -s -X GET "https://api.cloudflare.com/client/v4/zones?name= {域名}" -H "X-Auth-Email:{邮箱}" -H "X-Auth-Key:{Global API Key} " -H "Content-Type: application/json"

输出

1
{"result":[{"id":"{record_id}","name":"{域名}","type":"A","content":"{默认IP}","proxiable":false,"proxied":false,"ttl":1,"settings":{},"meta":{},"comment":null,"tags":[],"created_on":"2025-12-13T10:34:46.54388Z","modified_on":"2025-12-13T10:34:46.54388Z"}],"success":true,"errors":[],"messages":[],"result_info":{"page":1,"per_page":100,"count":1,"total_count":1,"total_pages":1}}

DDNS脚本

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
#!/bin/bash

auth_email="{邮箱}"
auth_key="{Global API Key}"
zone_id="{zone_Id}"
record_id="{record_Id}"
zone_name="{根域名}"
record_name="{子域名}"

ip=$(curl -s http://ipv4.icanhazip.com)

curl -X PUT "https://api.cloudflare.com/client/v4/zones/$zone_id/dns_records/$record_id" \
-H "X-Auth-Email: $auth_email" \
-H "X-Auth-Key: $auth_key" \
-H "Content-Type: application/json" \
--data '{"type":"A","name":"'$record_name'","content":"'$ip'","ttl":120,"proxied":false}'

自动执行

1
crontab -e

插入下面

1
*/5 * * * * /root/cf_ddns_script.sh >/dev/null 2>&1