for Cloudflare as DDNS
using Cloudflare API v4
put ddns-start
at /jffs/scripts/
, setting values and set DDNS type to Custom at web Admin panel.
EMAIL
is your Cloudflare account
API
is your Cloudflare API Key. You can find at My Profile
-> API Tokens
-> Global API Key
-> View
TOKEN
is your Cloudflare API Token. You can create one at My Profile
-> API Tokens
-> Create Token
Only require API
OR TOKEN
. Use TOKEN
instead API
make more safe for your Cloudflare account.
ZONEID
can find by following command using Global Key
curl -X GET "https://api.cloudflare.com/client/v4/zones" \
-H "X-Auth-Email: $EMAIL" \
-H "X-Auth-Key: $API" \
-H "Content-Type: application/json"
or using API Tokens (require All zones permission for list)
curl -X GET "https://api.cloudflare.com/client/v4/zones" \
-H "X-Auth-Email: $EMAIL" \
-H "Authorization: Bearer $TOKEN" \
-H "Content-Type: application/json"
RECORDID
can find by following command using Global Key
curl -X GET "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records?page=1&per_page=1000&order=type&direction=asc" \
-H "Content-Type:application/json" \
-H "X-Auth-Key: $API" \
-H "X-Auth-Email: $EMAIL"
or using API Tokens (your token setting may has problem if fail)
curl -X GET "https://api.cloudflare.com/client/v4/zones/${ZONE}/dns_records?page=1&per_page=1000&order=type&direction=asc" \
-H "Content-Type:application/json" \
-H "Authorization: Bearer $TOKEN" \
-H "X-Auth-Email: $EMAIL"
RECORDNAME
is target domain name like ddns.dd-han.tw
RECORDTTL
is record TTL in second (1=auto, Must be between 120 and 2147483647)
if you don't want skip SSL check, run opkg install ca-certificates
and change command from curl -ks
to curl -s
Thanks, this is exactly what I'd been wanting to find since migrating to CF. As the commenter noted, though, you should avoid using your global API key in the script. I created a key with only the ability to edit DNS within the specific scope of the domain I'm updating. To use this key, change the "X-Auth-Key" header to be:
-H "Authorization: Bearer ${API}"