Configura tu Raspberry Pi para acceder remotamente usando No-IP

Bueno, poco a poco el Raspberry Pi va teniendo más funciones a su cargo. Luego de convertirse en cámara IP, y servidor de Airplay, y luego de instalar apache y mysql (algo tan trivial como poner sudo apt-get install apache2 y sudo apt-get install mysql), llegó la hora de darle acceso al PI al mundo exterior.

Primero, debemos tomar en cuenta, que la mayoría de nosotros, tenemos una conexión casera de internet, que no tiene una dirección IP estática. Por esta razón, necesitamos alguna manera de conocer la dirección IP de nuestro modem de banda ancha, para tener una dirección de acceso a nuestra red.

Existe el servicio de www.no-ip.com, que nos permite crear un dominio virtual (o si tenemos un nombre de dominio libre, lo pueden configurar también ahí), y este dominio virtual, asignarlo a una dirección IP donde esté conectado nuestro servidor (el PI en este caso). Entonces, el primer paso obligado, es ingresar en www.no-ip.com y crear una cuenta nueva, para escoger un subdominio de los varios que se tienen disponibles en dicho servicio.

Una vez que hemos creado y configurado la cuenta, vamos a trabajar en nuestro Raspberry Pi. La idea es que periódicamente, el PI detecte la dirección IP pública a la que está conectado el modem, y la envíe al servicio no-ip para actualizar el dominio virtual. Para esto, debemos instalar el paquete no-ip en nuestro Raspberry, usando los siguientes comandos:

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

Al empezar la instalación, nos solicitará nuestros datos de la cuenta de no-ip, verificará el dominio virtual creado y nos preguntará el tiempo de actualización de la dirección ip externa. Podemos dejar todos los valores por defecto tal cual, y continuar hasta finalizar la instalación.

Podemos iniciar el servicio ejecutando “sudo /usr/local/bin/noip2” pero lo ideal sería que inicie automáticamente en el arranque del PI. Para esto debemos crear el archivo /etc/init.d/noip2 con el comando

sudo nano /etc/init.d/noip2

y colocamos esto dentro del contenido del mismo

#! /bin/bash
### BEGIN INIT INFO
# Provides: Servicio No-IP
# Required-Start: $syslog
# Required-Stop: $syslog
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: arranque automatico para no-ip
# Description:
#
### END INIT INFO
sudo /usr/local/bin/noip2

Guardamos el archivo, y finalmente damos permisos de ejecución, y lo colocamos en la cola de arranque

sudo chmod +x /etc/init.d/noip2
sudo update-rc.d noip2 defaults

Así garantizamos que el dominio virtual creado en no-ip tenga siempre asignada nuestra dirección IP externa de nuestro modem. Ahora si podemos configurar nuestros servidores virtuales en nuestro router y listo! acceso externo a nuestro PI.

En mi caso, tengo un modem Huawei, y configurar los servidores virtuales no es ninguna ciencia. Se crea el nombre del servicio, se asignan los rangos de puertos y la IP interna a la que se redireccionará el servicio y listo.

rpi_ports

Con esto, tengo acceso VNC, SSH y HTTP a mi Raspberry Pi. Cero seguridad (no se recomienda nunca abrir un SSH, pero bueno, esto se hizo para probar) pero cualquier cosa que pase con mi Pi la puedo revisar desde la oficina o desde mi teléfono celular

 

14 comentarios en “Configura tu Raspberry Pi para acceder remotamente usando No-IP

  1. Es super útil, yo me conecto casi todo el tiempo via ssh a mi raspberry desde el telefono o desde mi oficina, para ver como van las cosas en casa 🙂

  2. He seguido los pasos que comentas y me dice que la web no esta disponible cuando yo intento acceder a la RPI desde el exterior. Yo creo que porque no le he especificado a cual de los dispositivos conectados a mi router tiene que acceder.

    Mi duda es: cuando yo escribo http://www.xxxxx.dds.net (que es mi host de NO IP) ¿como selecciono a cual de los puertos de la direccion interna de mi RPI quiero acceder?. Yo he abierto en mi router los puertos 22 (para SSH) y 8000 (para webiopi) asociados a la IP interna 192.168.1.38 que es la de la RPi.

    Gracias

  3. Yo en mi router (si, me puede caer el diablo por hacer esto) pero dejé abiertos todos los puertos para el raspberry, toda peticion que se haga desde fuera caerá hacia en pi, en todos los puertos. Que marca y modelo es tu router para ver si puedo ayudarte con algun dato adicional.

  4. El router es el de la marca comtrend que instala movistar cuando tienes contratada fibra optica. Este tema del router creo que lo tengo bien. Mi problema es que no sé como tengo que hacer para decirle a mi router que quiero utilizar el puerto 8000 (y no el 22) cuando accedo a el desde fuera utilizando mi host de NO-IP

  5. Hola, he seguido todos los pasos y no me funciona, cuando voy ha hacer update, pues le pongo el comando y no have nada, hace un intro y me pone para escribir otro comando, ya llevo 2 dias intentando buscar el error, pero no se donde esta, espero que me puedas decir donde esta y asi corregirlo, gracias.

    Miguel B.G.

  6. Hola Miguel

    Sabes que yo volví a instalar todo mi raspberry porque le cambié la tarjeta sd. Voy a probar nuevamente los pasos y si encuentro el problema que mencionas te aviso

  7. Como abro los puertos en un Huawei HG658d, ya tengo conectada mi pi con dos cámaras Logitech y he usado Motion Eye, pero no consigo abrir los puertos para que yo pueda acceder a el desde otra sin hacerlo en mi red local

  8. Hola buenas tardes,he leído tu tutorial, ya tengo mi cuenta de noip, y el cliente en la paspberry, pero no puedo hacer el mapeo desde mi router, oodrias ayudarme, mi router es un huawei hg658d

  9. Sabes que este último tiempo, he comprado un nuevo router TP-Link, y esta marca incluye dentro de su firmware la conexión directa hacia No-IP para la redireción de puertos. Quizás sonbre la raspberry podrías probar los scripts de DuckDns, que es otro servicio de DNS gratuito

    https://www.duckdns.org/install.jsp

Deja un comentario

Tu dirección de correo electrónico no será publicada. Los campos obligatorios están marcados con *