Cómo instalar Cloudflare Ddns en Docker - DNS Dinámico automático en Docker

Cloudflare DDNS | Dynamic DNS | Docker

Cloudflare DDNS: DNS dinámico automático autohospedado en Docker

Actualiza automáticamente registros DNS en Cloudflare cuando tu IP cambia. Soporta IPv4 e IPv6, notificaciones, proxy Cloudflare. Ideal para acceso remoto a casa o servidor.

¿Qué es Cloudflare DDNS?


Cloudflare DDNS es un actualizador de DNS dinámico automático que detecta cambios en tu dirección IP pública y actualiza automáticamente tus registros DNS en Cloudflare. Si tu ISP asigna IPs dinámicas (cambio frecuente), necesitas DDNS para que tu dominio siempre apunte a tu dirección actual.

Casos de uso: Acceso remoto a tu servidor/NAS en casa con dominio personalizado, monitoreo de hogar, Plex/Jellyfin en línea, Minecraft privado, VPN casera. Ejecutándose en Docker, se actualiza automáticamente cada 5 minutos (configurable). Soporta IPv4 e IPv6. Integración nativa con Cloudflare API. Notificaciones en Discord/Telegram/Slack opcional.

Completamente gratuito: Cloudflare DDNS usa el DNS gratuito de Cloudflare. Sin cuotas mensuales, sin pagar por DDNS como en otros servicios.

Características principales

Actualización automática

Detecta cambios IP y actualiza registros automáticamente cada 5 minutos.

IPv4 e IPv6

Soporta registros A (IPv4) y AAAA (IPv6) simultáneamente.

Wildcard domains

Gestiona *.example.com además de dominios normales.

Proxy Cloudflare

Toggle proxy Cloudflare (nube naranja) por dominio.

API token seguro

Usa API tokens scoped en lugar de API keys globales.

Múltiples dominios

Gestiona decenas de dominios en una instancia.

Notificaciones integradas

Alertas en Discord, Slack, Telegram, Gotify, email.

Health checks

Integración con Healthchecks.io y Uptime Kuma.

Imagen ultra ligera

~1-3 MB de tamaño, usa ~3-5 MB de RAM.

Multi-arquitectura

Soporta amd64, arm64, ppc64le, ideal para Raspberry Pi.

Dry-run mode

Previsualiza cambios sin modificar registros.

Open Source

GPLv3. Código auditable en GitHub.

Requisitos del sistema

  • Docker instalado
  • 64 MB de RAM mínimo (típicamente 3-5 MB en uso)
  • 10 MB de espacio en disco
  • Cuenta Cloudflare con al menos un dominio
  • API Token de Cloudflare con permiso "Edit DNS"
  • Conexión a Internet (para detectar IP pública)
Importante: Necesitas un token API de Cloudflare, no la API key global. Los tokens son más seguros y pueden tener permisos limitados.

Instalación y configuración

Paso 1: Crear API Token en Cloudflare

  1. Abre https://dash.cloudflare.com/profile/api-tokens
  2. Click "Create Token"
  3. Busca "Edit zone DNS" y click "Use template"
  4. Zona específica: selecciona tu dominio
  5. Permisos: DNS:Edit (mínimo requerido)
  6. Click "Create Token"
  7. Copia el token (úsalo solo una vez, guárdalo seguro)

Opción 1: Docker Run (30 segundos)

docker run -d \ --name cloudflare-ddns \ --restart unless-stopped \ -e CLOUDFLARE_API_TOKEN=tu-api-token \ -e DOMAINS=example.com,www.example.com \ favonia/cloudflare-ddns:latest

Opción 2: Docker Compose (recomendado)

version: '3' services: cloudflare-ddns: image: favonia/cloudflare-ddns:latest container_name: cloudflare-ddns restart: unless-stopped security_opt: - no-new-privileges:true environment: - CLOUDFLARE_API_TOKEN=tu-api-token-aqui - DOMAINS=example.com,www.example.com,home.example.com - IP4_PROVIDER=ipify-ipv4 # Detección IPv4 - IP6_PROVIDER=ipify-ipv6 # Detección IPv6 (opcional) - PROXIED=true # Activar proxy Cloudflare - UPDATE_CRON=@every 5m # Cada 5 minutos - PUID=1000 - PGID=1000

Iniciar

docker compose up -d

Verificar que funciona

docker compose logs -f cloudflare-ddns

Deberías ver mensajes como "Updated example.com to 1.2.3.4" o "No changes needed".

Configuración avanzada

Solo IPv4 (sin IPv6)

IP6_PROVIDER=none

Notificaciones en Discord

NOTIFIER=shoutrrr SHOUTRRR_URLS=discord://token@channel

Health checks (Healthchecks.io)

HEALTHCHECKS=https://hc-ping.com/tu-uuid

Dry-run (previsualizar sin cambiar)

docker compose run cloudflare-ddns \ --api-token tu-token \ --domains example.com \ --dry-run

Detección de IP personalizada

IP4_PROVIDER=local # Usa IP local del host (para Docker bridge) network_mode: host # Requiere network_mode: host para IPv6

Primeros pasos

1. Verificar actualización de DNS

  1. Ejecuta Cloudflare DDNS
  2. Ve a Cloudflare dashboard → DNS
  3. Deberías ver tu IP actualizada en el registro A
  4. Comprueba con: nslookup example.com

2. Probar acceso remoto

  1. Desde otra red (móvil data, cafe wifi):
  2. Abre https://example.com
  3. Debería conectar a tu servidor/casa
  4. Si no funciona, revisa firewall/port-forward

3. Monitoreo continuo

  1. Cloudflare DDNS se ejecuta cada 5 minutos
  2. Si IP cambia, se actualiza automáticamente
  3. Revisa logs para confirmar: docker logs cloudflare-ddns
  4. Opcionalmente configura notificaciones Discord

4. Configurar acceso remoto Plex/Jellyfin

# En tu aplicación Plex/Jellyfin Remoto: https://example.com:34400 # (o puerto que hayas configurado en tu router)

Casos de uso

  • Acceso remoto a NAS/Servidor: Accede a tu storage desde cualquier lugar
  • Plex/Jellyfin remoto: Streaming de película desde casa
  • Minecraft privado: Servidor con dirección permanente
  • VPN casera: Conecta a tu red desde cualquier sitio
  • Home Assistant: Acceso web desde el teléfono
  • Monitoreo de seguridad: Cámaras/grabadores accesibles
  • Desarrollo web: Pruebas de servicios dinámicos

Recomendaciones de seguridad

API Token seguro

  • Crea token con solo permisos "DNS Edit"
  • Limita a una zona específica
  • No uses API key global
  • Rotaed token periódicamente

Firewall y Port Forwarding

  • Solo abre puertos que realmente necesitas
  • Usa puertos no-estándar si es posible
  • Habilita Cloudflare proxy (nube naranja) en DNS
  • Usa HTTPS y certificados Let's Encrypt

Monitoreo

  • Recibe notificaciones de cambios de IP
  • Revisa logs regularmente
  • Configura Health checks para alertas de fallos

Gestión y mantenimiento

Ver logs en tiempo real

docker compose logs -f cloudflare-ddns

Ver IP detectada actualmente

docker compose exec cloudflare-ddns curl -s https://ipify.org

Forzar actualización inmediata

docker compose restart cloudflare-ddns

Cambiar dominio sin reiniciar

Edita docker-compose.yml, variable DOMAINS, luego:

docker compose up -d

Actualizar a la última versión

docker compose pull docker compose up -d

Detener completamente

docker compose down

Comentarios

Entradas populares de este blog

Cómo Instalar y configurar SERVIDOR VPN WIREGUARD en MIKROTIK 🔐 #VPN #Wireguard #Mikrotik #RouterOS

Cómo instalar y configurar DSM SYNOLOGY 7.2.2 en PC | Guía completa, instalación, RAID 1, SMB

Cómo INSTALAR y CONFIGURAR OpenVPN en MIKROTIK. Guía completa paso a paso.