Cuando montamos un servidor en casa existe el inconveniente de que nuestra dirección IP pública cambia después de unos días, por lo que necesitamos actualizar el registro DNS asociado a nuestro servidor para que siga siendo accesible desde el exterior.
Requisitos
- Un servidor con GNU/Linux (utilizaré una Raspberry Pi como ejemplo)
- Una conexión a internet que permita abrir puertos para conexiones entrantes (de preferencia fibra óptica)
- Un nombre de dominio administrado mediante Cloudflare
- Una clave de acceso para poder modificar los registros DNS de nuestro dominio (consultar este enlace para más información)
Instalamos los paquetes necesarios
sudo apt install git python3-venv
Descargamos el código fuente del script requerido
git clone https://github.com/timothymiller/cloudflare-ddns.git
sudo mv cloudflare-ddns /opt
cd /opt/cloudflare-ddns
cp config-example.json config.json
cp requirements.txt ~
Modifcamos el archivo de configuración
nano config.json
Lo llenamos con los datos correspondientes y lo probamos
cd ~
/opt/cloudflare-ddns/start-sync.sh
Si funciona agregaremos una tarea programada para actualizar los registros DNS cada 15 minutos editando el archivo crontab de la siguiente forma
crontab -e
Agregaremos la siguiente línea
*/15 * * * * /opt/cloudflare-ddns/start-sync.sh
Referencias