abril 25

DNS dinámico en Linux: Conectar dominio con IP dinámica

Si tienes un servidor en casa o en una oficina con una dirección IP pública dinámica (que cambia cada cierto tiempo), acceder a él desde fuera puede ser un problema. La solución es el DNS dinámico (DDNS), un servicio que asocia un nombre de dominio fijo a tu IP cambiante. En esta guía te explico cómo configurar DNS dinámico en Linux paso a paso.

¿Qué es DNS dinámico?

El sistema DNS tradicional traduce nombres de dominio (como google.com) en direcciones IP. Cuando tu IP es estática (no cambia), esto funciona sin problemas. Pero si tu proveedor de Internet te asigna una IP dinámica (que puede cambiar cada horas o días), tu dominio dejaría de apuntar a tu servidor cada vez que la IP cambie.

El DNS dinámico resuelve esto: un cliente en tu servidor detecta los cambios de IP y actualiza automáticamente el registro DNS de tu dominio.

Proveedores de DNS dinámico gratuitos

  • DuckDNS (duckdns.org) — El más sencillo, gratuito, sin límites
  • No-IP (noip.com) — Gratuito con confirmación mensual
  • FreeDNS (freedns.afraid.org) — Múltiples dominios gratuitos
  • Cloudflare — Si ya usas Cloudflare para tu dominio
  • Afraid.org — Gran variedad de dominios gratuitos

Método 1: DuckDNS (recomendado para principiantes)

Paso 1: Crear una cuenta

  1. Ve a duckdns.org
  2. Inicia sesión con Google, GitHub o Reddit
  3. Crea un subdominio (por ejemplo, miservidor)
  4. Apunta el token que te asignan

Paso 2: Instalar el cliente

# Crear directorio
mkdir -p ~/duckdns
cd ~/duckdns

# Crear script de actualización
nano duck.sh

Añade:

#!/bin/bash
echo url="https://www.duckdns.org/update?domains=miservidor&token=TU_TOKEN&ip=" | curl -k -o ~/duckdns/duck.log -K -

Reemplaza miservidor con tu subdominio y TU_TOKEN con tu token.

# Hacer ejecutable
chmod +x duck.sh

# Probar
./duck.sh
cat duck.log

Deberías ver OK en el log.

Paso 3: Configurar cron para actualización automática

crontab -e

Añade esta línea para actualizar cada 5 minutos:

*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1

Método 2: Cliente DDNS genérico

Para otros proveedores, puedes usar un cliente DDNS universal:

# Instalar ddclient
sudo apt install ddclient -y

# Configurar
sudo nano /etc/ddclient.conf

Ejemplo para No-IP:

protocol=dyndns2
use=web, web=myip.dnsomatic.com
server=dynupdate.no-ip.com
login=tu_usuario
password=tu_contraseña
tudominio.ddns.net

Método 3: Con Cloudflare

Si tu dominio usa Cloudflare, puedes usar su API para actualizar registros DNS:

#!/bin/bash
# Script DDNS para Cloudflare
API_KEY="tu_api_key"
EMAIL="tu@email.com"
ZONE_ID="tu_zone_id"
RECORD_ID="tu_record_id"
DOMAIN="tudominio.com"

IP=$(curl -s https://api.ipify.org)
curl -X PUT "https://api.cloudflare.com/client/v4/zones/$ZONE_ID/dns_records/$RECORD_ID"   -H "X-Auth-Email: $EMAIL"   -H "X-Auth-Key: $API_KEY"   -H "Content-Type: application/json"   --data "{"type":"A","name":"$DOMAIN","content":"$IP","ttl":120}"

Verificar que funciona

# Comprobar tu IP pública
curl https://api.ipify.org

# Verificar que el DNS apunta correctamente
dig miservidor.duckdns.org +short
nslookup miservidor.duckdns.org

Conclusión

El DNS dinámico es la solución perfecta para acceder a tu servidor con IP dinámica desde cualquier lugar. Con herramientas como DuckDNS, la configuración toma menos de 10 minutos y es completamente gratuita. Una vez configurado, tu dominio siempre apuntará a tu servidor sin importar cuánto cambie tu IP.



Copyright 2020. www.garcalia.com

Publicado 25 de abril de 2020 por Titogus in category "Linux", "Seguridad