Actualizar la dirección IP de un dominio alojado en OVH

última modificación:

Cuando tenemos un dominio registrado en OVH y el equipo al que apunta tiene una dirección IP dinámica, podemos usar la función DynHost de OVH para mantener el DNS actualizado sin tener que acceder al panel de control cada vez que cambia la IP.

Desde el manager de OVH, en la sección Zone DNS del dominio, creamos un registro DynHost para el subdominio que queramos (por ejemplo, www.example.com). Durante la creación asignamos un identificador y una contraseña propios (distintos de los del manager). El identificador sigue el formato dominio.tld-SUFIJO (por ejemplo, example.com-abc123xyz).

Una vez configurado, actualizamos la IP desde la consola con wget:

wget -O- "https://DYNHOST_ID:DYNHOST_PASSWORD@www.ovh.com/nic/update?system=dyndns&hostname=www.example.com&myip=NUEVA_IP"

Para automatizarlo podemos crear un script que compruebe si la IP ha cambiado y solo actualice en caso necesario, evitando llamadas innecesarias a la API de OVH. Para obtener la IP pública del equipo usamos wget tal como se describe en Dirección IP pública desde la consola:

#!/bin/bash

HOST="www.example.com"
USER="example.com-abc123xyz"
PASS="tu_contraseña"

FILE="/tmp/dynhost_ip"
MYIP=$(wget -qO- http://icanhazip.com)

if [ -f "$FILE" ]; then
    IP=$(cat "$FILE")
else
    IP=""
fi

if [ "$IP" != "$MYIP" ]; then
    wget -qO- "https://$USER:$PASS@www.ovh.com/nic/update?system=dyndns&hostname=$HOST&myip=$MYIP"
    echo "$MYIP" > "$FILE"
fi

Guardamos el script (por ejemplo en /usr/local/bin/dynhost.sh), le damos permisos de ejecución con chmod +x dynhost.sh y lo añadimos al cron del usuario con crontab -e:

*/5 * * * * /usr/local/bin/dynhost.sh

Esto ejecuta el script cada 5 minutos. Si la IP no ha cambiado, el script termina sin hacer nada.