Contents

ddns

cloudflare

config zone-key

具体配置可以参考如下链接

api

api tutor 这篇教程详细介绍了cloudflare域名相关api。有了这个背景,就方便调试openwrt 的ddns服务了。 其原理就是,先根据api查询域名对应的记录。之后在发现ip变更后,更新该域名对应的记录即可。

zone key

1
2
3
curl -X GET "https://api.cloudflare.com/client/v4/user/tokens/verify" \
 -H "Authorization: Bearer -zone key-" \
 -H "Content-Type:application/json"

zoneID

1
2
3
curl -X GET "https://api.cloudflare.com/client/v4/zones" \
    -H "Authorization: Bearer -zone key-" \
    -H "Content-Type:application/json"

recordID

  • -RecordID-
1
2
3
curl -s -X GET "https://api.cloudflare.com/client/v4/zones/-zoneId-/dns_records" \
    -H "Authorization: Bearer -zone key-" \
    -H "Content-Type:application/json"  | jq '.'

update record

1
2
3
4
curl -X PUT "https://api.cloudflare.com/client/v4/zones/-zoneId-/dns_records/-RecordID-" \
    -H "Authorization: Bearer -zone key-" \
    -H "Content-Type: application/json" \
    --data '{"type":"A","name":"zv-ddns.haaqu1s.lol","content":"192.168.1.1","ttl":120,"proxied":false}'

openwrt config

  • config 按照下图配置即可, 用户名 (Bearer)、 密码 (Zone-key)都是固定的填写方式。 看教程还有使用 emailglobal-key ,但我自己测试没有成功

  • issue

    • /usr/lib/ddns/update_cloudflare_com_v4.sh 安照上述配置后,若是请求还报错,在openwrt中查看具体的日志。如: Invalid format for X-Auth-Key header, 根据具体情况处理。我遇到的错误是需要在openwrt上修改其脚本,设置zone_id变量, zone_id由上面的api获得.

      修改如下图。

docs