- Python 100%
| Filename | Latest commit message | Latest commit date |
|---|---|---|
| configuracion.env | ||
| LICENSE | ||
| NOTICE | ||
| README.md | ||
| script_ovh.py | ||
🌐 Actualizador de DNS Dinámico en OVH
Este script permite actualizar automáticamente los registros DNS de tipo A y AAAA en OVH, asegurando que tu dominio o subdominio siempre apunte a la IP pública actual de tu servidor. Ideal para conexiones con IP dinámica.
📋 Requisitos Previos
Asegúrate de contar con los siguientes requisitos antes de comenzar:
- Servidor o equipo con Linux (probado en Debian/Ubuntu, pero debería funcionar en otras distribuciones).
- Python 3.x instalado.
- Acceso SSH al servidor.
- Credenciales API de OVH (
APP_KEY,APP_SECRETyCONSUMER_KEY). - Acceso al panel de OVH para gestionar la zona DNS de tu dominio.
🚀 Instalación de Dependencias
-
Instalar Python 3 y pip (si no los tienes):
sudo apt update sudo apt install python3 python3-pip -y -
Instalar la librería oficial de OVH para Python:
pip install ovh
-
Instalar otras librerias necesarias:
pip install requests pip install python-dotenv
🗂️ Crear Directorios Necesarios
-
Crear un directorio para almacenar el estado de las actualizaciones:
sudo mkdir -p /var/lib/ovh_dns_updater sudo chown <usuario>:<grupo> /var/lib/ovh_dns_updater sudo chmod 700 /var/lib/ovh_dns_updaterNota: Sustituye
<usuario>y<grupo>por el usuario que ejecutará el script.
🔧 Configuración del Archivo .env
-
Crear el archivo de configuración en
/etc/ovh-dns-updater.envcon el siguiente contenido:OVH_ENDPOINT=ovh-eu OVH_APP_KEY=xxxxxxxxxxxxxxxx OVH_APP_SECRET=xxxxxxxxxxxxxxxxxxxxxxxx OVH_CONSUMER_KEY=xxxxxxxxxxxxxxxxxxxxxxxx OVH_ZONE=midominio.com # OVH_SUBDOMAIN=casa # Descomentar si quieres un subdominio OVH_TTL=300 WANT_IPV6=0 FORCE_REMOTE_CHECK=0 IP_SERVICE_V4=https://api.ipify.org IP_SERVICE_V6=https://api6.ipify.org STATE_FILE=/var/lib/ovh_dns_updater/state.json -
Dar permisos seguros al archivo
.env:sudo chmod 600 /etc/ovh-dns-updater.env
⚡ Ejecución Manual del Script
-
Para probar que todo funciona correctamente, ejecuta el script manualmente:
OVH_ENV_FILE=/etc/ovh-dns-updater.env python3 /usr/local/bin/ovh_dns_update.pySi todo está bien, el script actualizará el registro A (y AAAA si
WANT_IPV6=1).
⏰ Automatización con Cron
-
Editar el cron del usuario que ejecutará el script:
crontab -e -
Añadir la siguiente línea para ejecutar el script cada 5 minutos:
*/5 * * * * OVH_ENV_FILE=/etc/ovh-dns-updater.env python3 /usr/local/bin/ovh_dns_update.py >> /var/log/ovh_dns_updater.log 2>&1Esto redirige la salida estándar y de errores a un archivo de log (
/var/log/ovh_dns_updater.log).
🔒 Seguridad
-
NO compartas el archivo
.envni lo subas a repositorios públicos. -
Asegúrate de que solo el usuario autorizado tenga acceso de lectura al archivo
.env:sudo chmod 600 /etc/ovh-dns-updater.env
✅ Verificación
-
Puedes comprobar tu IP pública utilizando:
curl https://api.ipify.org -
Verifica que la IP pública obtenida coincida con la configurada en tu registro DNS después de ejecutar el script.
📅 Autor
David C.G. (CodeForUsers)
📜 Licencia
Este proyecto está licenciado bajo la Apache License 2.0.
Ver el archivo LICENSE para más detalles.