DNS Dinámico

mi servidor web en casa para el mundo

Escrito por Davinson Castaño Cano el 6 de Noviembre de 2021 · 3 mins de lectura

Siempre me ha facinado la idea de tener un servidor web en mi propia casa, y lo conseguí finalmente. Con una raspberry pi y un código para actualizar dinámicamente el DNS de mi dominio, logré tener el servidor que de niño me imaginé.

Para lograr esta hazaña debemos hacer varias tareas.

Configurando el firewall de la red local

En mi hogar tengo un router ARRIS de un operador local de internet, en este router debemos realizar lo siguiente:

  1. Volver estática la IP de la raspberry pi.
  2. Conectar el firewall y comunicar el puerto 80 externo con el puerto 80 de la raspberry pi.

Para verificar que tenemos acceso a la raspberry pi desde internet, podemos realizarlo en 3 pasos:

  1. Conocer nuestra dirección IP, podemos usar el sitio ifconfig.
  2. Si ya tenemos el servidor NGINX funcionando, no es necesario este paso. Usar el commando python3 -m http.server 80 en el terminal de la raspberry. Es útil tener un archivo html llamado index.html en la carpeta donde ejecutes el comando, de esta forma, veras este archivo en el navegador.
  3. Usar un navegador y escribir la dirección IP.

Si todos salió bien, debes ver en el navegador tu sito web funcionando.

Configurando el DNS dinámico

Para configurar el DNS (Sistema de Nombre de Dominio) dinámico usaremos el servicio gratuito de cloudflare y adicional usaremos una Plantilla del código que automáticamente actualiza la IP de nuestra casa para que la dirección URL apunte a nuestra raspberry pi. Dentro del archivo sh en la parte de arriba, hay unos campos que deberemos completar con la información de nuestra cuenta de cloudflare. El procedimiento para lograr la automatización del DDNS es el siguiente:

  1. En la raspberry pi comenzamos una sesión como superuser en un terminal sudo su -.
  2. Una vez como superuser, creamos un archivo sh nano ddns.sh
  3. Copiamos la Plantilla en el archivo y actualizamos los campos con la información de Cloudflare.
  4. Guardamos el archivo y probamos que el script funciona bash ddns.sh.
  5. Si el archivo funciona, vamos a volverlo un ejecutable chmod +x ddns.sh.
  6. Luego, vamos a editar el crontab crontab -e.
  7. Al final del archivo, vamos a colocar la frecuencia con la que queremos que se actualice el registro DNS.

    */1 * * * * /bin/bash /root/ddns.sh

  8. Guardamos el archivo, y reiniciamos el servicio cron en la raspberry pi. Así se ejecutará con frecuencia la actualización.

    systemctl restart cron

Listo! de esta forma tendremos acceso a nuestro propio servidor web desde cualquier lugar del mundo.

Espero que haya sido de utilidad esta información, me encanta el desarrollo web, si también te gusta aprovechalo y aprende un montón en el camino. Si tienes algun problema configurando tu servidor en casa cuéntame por mis redes sociales para ayudarte a lograrlo, de antemano muchas gracias.