Supongo que si has llegado hasta aquí es porque ya tienes funcionando tu Raspberry Pi con alguna aplicación y necesitas acceder a ella desde fuera de tu red. (desde el móvil, o desde la oficina…). Como nos ocurre a la mayoría, nuestro proveedor de Internet nos asigna la IP dinámicamente (salvo que contratemos una IP fija y la paguemos bien pagada). Esto quiere decir que nos la cambia cuando quiere.

 

La forma mas cómoda de solucionar este problema es registrarte en No-IP, que ofrece un servicio gratuito donde podemos asignar un dominio que apunte a nuestra IP dinámica. Para ello necesitas que algún dispositivo de tu red se encargue de ir actualizando periódicamente la IP a la que apunta el dominio, y ¿que mejor dispositivo para hacer esta labor que la Raspberry Pi?

Pasos:

1- Crear el dominio en No-IP:

Primero regístrate en  www.noip.com. Una vez registrado accede a la pestaña “Hosts/Redirects” y pulsa en  “Add Host”. Aqui puedes poner el nombre que quieras y elegir un dominio de los que da a elegir, por ejemplo:  mirraspberry.no-ip.org. Fijate bien que hay algunos dominios “free” y otros “enhaced”. Elige uno “free”. Lo demás déjalo como está.

 

2.- Ahora toca instalar No-Ip en la Raspberry Pi. Este es el programa que se va a encargar de enviar periódicamente la IP pública de tu red a los DNS de NO-IP. Para ello debemos iniciar una sesion SSH ¿Que de que estoy hablando? Pincha aquí.

 

Bueno, veo que ya sabes algo de linux, así que sigamos…

Vamos a descargar los fuentes del no-ip y compilarlos. Para ello tecleamos lo siguiente:

mkdir no-ip
cd no-ip
wget http://www.no-ip.com/client/linux/noip-duc-linux.tar.gz
tar -zxvf noip-duc-linux.tar.gz cd noip-2.1.9-1/
make sudo make install

Si todo ha ido bien, empezará a pedirte los datos de la cuenta de No-ip y podrás elegir el dominio que quieras asociar (si es que tienes más de uno). También puedes configurar el intervalo de tiempo entre actualizaciones.

 

Bueno, ya has instalado no-ip, pero ahora necesitas que se lance automáticamente cada vez que arranque la Raspberry. Para ello hay que crear un script como este…

#! /bin/sh
# /etc/init.d/noip2.sh
# Supplied by no-ip.com
# Modified for Debian GNU/Linux by Eivind L. Rygge <eivind@rygge.org>
# corrected 1-17-2004 by Alex Docauer <alex@docauer.net>
# . /etc/rc.d/init.d/functions  # uncomment/modify for your killproc
DAEMON=/usr/local/bin/noip2
NAME=noip2
test -x $DAEMON || exit 0
case "$1" in
start)
echo -n "Starting dynamic address update: "
start-stop-daemon --start --exec $DAEMON
echo "noip2."
;;
stop)
echo -n "Shutting down dynamic address update:"
start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
echo "noip2."
;;
restart)
echo -n "Restarting dynamic address update: "
start-stop-daemon --stop --oknodo --retry 30 --exec $DAEMON
start-stop-daemon --start --exec $DAEMON
echo "noip2."
;;
*)
echo "Usage: $0 {start|stop|restart}"
exit 1
esac
exit 0

Este script debe de estar en la carpeta /etc/init.d y tienes que darle permiso de ejecución de esta forma:

sudo chmod +x /etc/init.d/noip.sh

 

Por último,  para registrar el servicio en el arranque hay que introducir esta orden:

sudo update-rc.d noip.sh defaults

con esto ya deberías tener tu ip pública asignada a tu dominio, por lo que lo puedes usar para acceder a tu red, pero como lo que quieres es acceder a tu raspberry, aun te queda una tarea más; redirigir los puertos en el router hacia la Raspberry para los servicios o aplicaciones que quieras acceder… pero eso depende de cada router.