DDNS dinámicas con duckdns en Raspberry Pi

Actualmente la mayoría de los proveedores de Internet asignan direcciones IP dinámicas a nuestro router, es decir, cada cierto tiempo esa dirección IP va cambiando.

Para solucionar ese problema y poder tener accesible nuestra red domestica desde el exterior, existen una serie de servicios gratuitos como DuckDNS, que mediante un nombre de dominio tipo micasa.duckdns.org nos permite acceder a nuestro router sin necesidad de saber su dirección IP.

Como paso previo a instalar un servidor VPN vamos a ver como instalar este servicio en nuestra rpi.

Registrar una cuenta

El primer paso, será ir a la página web del servicio DuckDNS y acceder con nuestra cuenta de facebook, gmail, twiteer o reddit

Elegimos un nombre de dominio que aún no haya sido dado de alta por otros usuarios, como ejemplo he elegido carlosrpi

Si todo ha ido bien deberías de tener una pantalla parecida a esta:

Podemos dar de alta hasta 5 nombres de dominio.

Script para actualizar la dirección IP

Una vez que ya tenemos nuestro nombre de domino, vamos a proceder a instalar un pequeño script que mediante el cron de nuestra rpi ira actualizando la dirección IP en el nombre de dominio elegido.

Seleccionamos Install

Seleccionamos el nombre de dominio para el que vamos a generar el script:

Y el sistema operativo, en nuestro caso, vamos a ejecutar el script bajo un cron en gnu/linux.

Bastará con conectarnos a la rpi y seguir la instrucciones que nos dan en la página web, en este caso:

Programar la ejecución del script

Tendremos que tener instalado cron y curl

 sudo apt-get install cron curl

Comprobamos si cron se esta ejecutando:

 ps -ef | grep cr[o]n
root       464     1  0 jun16 ?        00:00:01 /usr/sbin/cron -f

En el caso de que no devuelva nada puede ser debido a que no tengamos instalado cron o que todavia no hayamos programado ninguna acción.

Creamos la carpeta que va a contener el script

 mkdir duckdns
 cd duckdns

Creamos el fichero

 nano duck.sh

Y copiamos el texto que tienes en la pagina web con el token de tu nombre de dominio

 echo url="https://www.duckdns.org/update?domains=carlosrpi&token=tu_token" | curl -k -o ~/duckdns/duck.log -K -

Damos permisos de ejecución al fichero

 chmod 700 duck.sh

Editamos el servicio cron para hacer que el fichero se ejecute cada 5 minutos

 crontab -e

Y copiamos el siguiente texto

*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1

Para guardar el fichero pulsamos CTRL+x

Probamos que el script funciona

 ./duck.sh
  % Total    % Received % Xferd  Average Speed   Time    Time     Time  Current
                                 Dload  Upload   Total   Spent    Left  Speed
100     2    0     2    0     0      2      0 --:--:-- --:--:-- --:--:--     2

Esto creará un fichero llamado duck.log, el cual tendrá dos valores OK, si todo ha ido bien o bad KO si ha habido algún problema.

cat duck.log
OK

A partir de ahora., cada vez que se acceda al nombre de dominio carlosrpi.duckdns.org estaré accediendo al router de mi casa, concretamente al puerto 80 (puerto por defecto)

comentario powered by Disqus