Configurando ddclient con Cloudflare

Me ha pasado varias veces que intento encontrar una guía de configuración de IP dinámica para mi raspberry pi 5, por lo que decidí hacer mi propia guía.

Instalación ddclient

Para instalar es ejecutar:

sudo apt update
sudo apt install ddclient

Si tienes algún problema puedes ver la documentación oficial en:

GitHub - ddclient/ddclient: ddclient updates dynamic DNS entries for accounts on a wide range of dynamic DNS services.
ddclient updates dynamic DNS entries for accounts on a wide range of dynamic DNS services. - ddclient/ddclient

Actualizando configuración Cloudflare

Una vez instalado ddclient, pueden escoger cualquier opción de configuración y luego editar directamente el archivo ddclient.conf

# etc/ddclient.conf
protocol=cloudflare
use=web, web=checkip.dyndns.com/, web-skip='IP Address'
ssl=yes
server=api.cloudflare.com/client/v4
login=<correo>
password='<global api token>'
zone= domain
domain

Con esto debería estar funcionando, por lo que lo probamos ejecutando:

sudo ddclient -debug -verbose -noquiet

Si todo está bien en la respuesta debería obtener un 200 por parte del Dyndns de la ip:

CONNECT:  checkip.dyndns.com
CONNECTED:  using HTTP
SENDING:  GET / HTTP/1.1
SENDING:  Host: checkip.dyndns.com
SENDING:  User-Agent: ddclient/3.10.0
SENDING:  Connection: close
SENDING:  
RECEIVE:  HTTP/1.1 200 OK
RECEIVE:  Date: Sat, 25 Jan 2025 23:45:22 GMT
RECEIVE:  Content-Type: text/html
RECEIVE:  Content-Length: 106
RECEIVE:  Connection: close
RECEIVE:  Cache-Control: no-cache
RECEIVE:  Pragma: no-cache

Y por el lado de Cloudflare un success = true:

RECEIVE:  {"result":[ .... "success":true,"errors":[],"messages":[],"result_info":{"page":1,"per_page":100,"count":1,"total_count":1,"total_pages":1}}
RECEIVE:  0

Con esto ya tenemos funcionando nuestro ddclient