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
I don't have ipv6 set up on my network (nor am I using Merlin anymore), but I would start with changing the following line to target the AAAA record instead of the A record:
`--data "{"type":"A","name":"${RECORDNAME}","content":"${IP}","ttl":${RECORDTTL},"proxied":false}"``
I think that should work with just the one change.