Servidor Raspberry Pi con un router con IP dinámica

Para gestionar la IP dinámica de tu router, recomiendo utilizar dynu.com, la empresa más seria que he encontrado.
Además, la gestión de IP dinámica por medio del servicio DDNS (Dynamic DNS Service), es gratuita.

 

Configurar tu IP dinámica en 5 pasos:

  1. Tu nombre de dominio:
  2. Entrar en el panel de control de la empresa donde has comprado tu dominio, y en gestionar los DNS, utilizar los siguientes DNS:
    ns1.dynu.com
    ns2.dynu.com
    ns3.dynu.com
    ns4.dynu.com
    ns5.dynu.com
    ns6.dynu.com


    Aqui puedes ver un ejemplo con el registrador de nombres de dominio gandi.net:
  3. Darte de alta en dynu.com: https://www.dynu.com/en-US/ControlPanel/CreateAccount
  4. Añadir tu dominio a dynu.com: https://www.dynu.com/en-US/ControlPanel/AddDDNS

    Si tienes un dominio propio, Opción 2
    Si no tienes ningún dominio propio, Opción 1 (tendrás que utilizar un subdominio, por ejemplo luisgarcia.freeddns.org)
  5. Configurar tu raspberry Pi para que actualize tu IP cada cinco minutos en dynu.com   [+ info]
    1. Crear directorio:
      # mkdir /root/dynudns
    2. Crear/editar el script dynu.sh:
      # mcedit /root/dynudns/dynu.sh
    3. y copiar/pegar el siguiente contenido:
      #!/bin/bash
      echo url="https://api.dynu.com/nic/update?username=TU_NOMBRE_DE_USUARIO&password=TU_PASSWORD" | curl -k -o /root/dynudns/dynu.log -K -


      sustituyendo TU_NOMBRE_DE_USUARIO y TU_PASSWORD por lo que corresponda
      (recuerda que pegar en Linux es Mayúsculas Insert)
    4. Guardar (F2), y Salir (F10)
    5. Dar permisos de ejecución al script:
      # chmod 0700 /root/dynudns/dynu.sh
    6. Para configurar cron para que ejecute el script anterior cada 5 minutos, editar crontab:
      # crontab -e
    7. y copiar/pegar el siguiente contenido al final del archivo:
      */5 * * * * /root/dynudns/dynu.sh >/dev/null 2>&1
    8. Guardar (F2), y Salir (F10)
    9. Quizás valga la pena encriptar TU_PASSWORD, para que no vaya por las redes en abierto. Lo puedes hacer en MD5, en SHA256 o en SHA512 desde aquí:
      https://www.dynu.com/NetworkTools/Hash