Actualizar DNS dinámicos con ddns-updater

2023-03-27

Ddns-updater es un servicio que nos va a permitir actualizar automáticamente y de forma periódica los registros A y/o AAAA en un servidor de DNS con la dirección IP de nuestro ordenador/servidor..

Esto hace posible ejecutar diferentes servicios (como un servidor web) en un ordenador con una dirección IP dinámica.

Cuando la dirección IP de nuestro ordenador cambia, permite enviar una notificación gracias a la utilización de la librería Shoutrrr

Soporta una lista muy amplia de proveedores de DNS:

  • Aliyun
  • AllInkl
  • Cloudflare
  • DD24
  • DDNSS.de
  • DigitalOcean
  • DonDominio
  • DNSOMatic
  • DNSPod
  • Dreamhost
  • DuckDNS
  • DynDNS
  • Dynu
  • FreeDNS
  • Gandi
  • GCP
  • GoDaddy
  • Google
  • He.net
  • Infomaniak
  • INWX
  • Linode
  • LuaDNS
  • Namecheap
  • NoIP
  • Njalla
  • OpenDNS
  • OVH
  • Porkbun
  • Selfhost.de
  • Servercow.de
  • Spdyn
  • Strato.de
  • Variomedia.de

La imagen del Docker pesa 11 MB y está basada en un binario estático escrito en Go

La configuración se realiza en un archivo JSON (update.json) además almacena direcciones IP antiguas en el fichero update.json y los tiempos de cada cambio.

Configuración

En el repositorio existen diferentes plantillas para cada proveedor soportado que vayamos a utilizar

config.json

Para poder configurar el fichero debes de acceder a la configuración del proveedor de DNS y obtener los token o password de cada zona.

Figura 1: token en Cloudflare

Figura 1: token en Cloudflare

Figura 2: Password en OVH

Figura 2: Password en OVH

Crear un fichero llamado config.json en la carpeta /data, por ejemplo, para actualizar la dirección IP en los servidores de Cloudflare y OVH utilizo la siguietne configuración.

{
  "settings": [
    {
      "provider": "ovh",
      "domain": "domain.com",
      "host": "@",
      "username": "username",
      "password": "password",
      "ip_version": "ipv4",
      "provider_ip": true
    },
    {
      "provider": "cloudflare",
      "zone_identifier": "some id",
      "domain": "domain.com",
      "host": "@",
      "ttl": 600,
      "token": "yourtoken",
      "ip_version": "ipv4"
      "proxied": true,
    }
  ]
}

docker-compose

Para la creación del contenedor voy a crear un stack en portainer con el siguiente código, cambia las rutas de los volumenes por los de tu odenador.

version: "3.7"
services:
  ddns-updater:
    image: qmcgaw/ddns-updater
    container_name: ddns-updater
    network_mode: bridge
    ports:
      - 8002:8000/tcp
    volumes:
      - /volume1/docker/ddns-updater/data:/updater/data
    environment:
      - CONFIG=
      - PERIOD=5m
      - UPDATE_COOLDOWN_PERIOD=5m
      - PUBLICIP_FETCHERS=all
      - PUBLICIP_HTTP_PROVIDERS=all
      - PUBLICIPV4_HTTP_PROVIDERS=all
      - PUBLICIPV6_HTTP_PROVIDERS=all
      - PUBLICIP_DNS_PROVIDERS=all
      - PUBLICIP_DNS_TIMEOUT=3s
      - HTTP_TIMEOUT=10s

      # Web UI
      - LISTENING_PORT=8000
      - ROOT_URL=/

      # Backup
      - BACKUP_PERIOD=0 # 0 to disable
      - BACKUP_DIRECTORY=/updater/data

      # Other
      - LOG_LEVEL=info
      - LOG_CALLER=hidden
      - SHOUTRRR_ADDRESSES=telegram://[email protected]/?channels=CHAT_ID
    restart: always

Si quieres mandar una notificación vía Telegram cada vez que ocurra una actualización puedes utilizar SHOUTRRR_ADDRESSES

SHOUTRRR_ADDRESSES=telegram://[email protected]/?channels=CHAT_ID
Figura 3: Interfaz web ddns-updater

Figura 3: Interfaz web ddns-updater

Espero que te haya gustado, pasa un gran día 🐧

Ingrese la dirección de su instancia


Más publicaciones como esta

OpenMediaVault: Jellyfin mediante docker

2019-07-22 | #docker #jellyfin

Jellyfin es un servidor multimedia, al estilo Plex o Emby, fork de Emby, totalmente gratuito y OpenSoure, no utiliza servidores de terceros, no tiene características premium ni licencias, ademas cuenta con clientes para diferentes plataformas (android, androidtv, amazon fire stick, etc).

Continuar leyendo 


ruTorrent y qBittorrent mediante docker

2022-12-12 | #docker

Como base para la próxima publicación de una serie de artículos, voy a explicar la forma de instalar los clientes torrent ruTorrent y qBittorrent mediante docker. Preparación Antes de proceder al despliegue de los contenedores vamos a crear una serie de carpetas donde guardar sus configuraciones y las descargas de los archivos .

Continuar leyendo 