DDNS dinámicas con duckdns en Raspberry P i
2017-07-18
Índice
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)
Espero que te haya gustado, pasa un buen día. 🐧