lunes, 23 de marzo de 2015

Host Remoto con Raspberry pi

Los que usamos Raspberry Pi siempre nos encontramos con el mismo dilema: como poder ver o usar nuestras aplicaciones cuando estamos fuera.

Ya sea que desarrollaste un servidor de domótica, tienes un miniDLNA, una web o simplemente quieres entrar ssh, tenemos que buscar la manera a abrir puertos y hacer redirecciones para poder lograrlo.

Para evitar esto hoy hablaremos de ngrok




Básicamente ngrok nos crea un tunnel para nuestra localhost y pública el o los puertos que deseamos.

Los pasos para usar ngrok son:


  • Descargamos ngrok de su web https://ngrok.com/download en nuestro caso bajamos la version ARM para linux pero se puede usar en cualquier otro OS. en el caso del RPi usamos:
wget https://api.equinox.io/1/Applications/ap_pJSFC5wQYkAyI0FIVwKYs9h1hW/Updates/Asset/ngrok.zip?os=linux&arch=arm&channel=stable
  • una vez descargado, lo descomprimimos 
unzip ngrok.zip

el archivo ngrok va a quedar en la carpeta donde teníamos el zip  si quieres ponerlo como una aplicación de sistema y usarlo en cualquier parte copialo a la carpeta /usr/bin/ con el siguiente comando:
sudo cp ngrok /usr/bin/

Ya con el ngrok listo vamos a ejecutarlo, para eso vamos usar la siguiente sintaxis

ngrok [opciones] [puerto a compartir]

ejemplo 1: puerto 80
 ngrok 80
luego de ejecutar el comando nos devolvera algo como esto 


ngrok 
Tunnel Status online V
Version 1.3/1.3
Forwarding http://3a4bfceb.ngrok.com -> 127.0.0.1:80
Forwarding https://3a4bfceb.ngrok.com -> 127.0.0.1:80
Web Interface http://127.0.0.1:4040 # Conn 0 Avg Conn Time 0.00ms

 Donde http://3a4bfceb.ngrok.com será nuestra dirección pública.

ejemplo 2: con token

Si queremos identificarnos con el sistema podemos registrarnos que es gratuito y usar el token

ngrok -authtoken +xxxxxxxxxxxxxxxxxx 80

ejemplo 3: subdomain

un problema habitual es que el subdominio por defecto cambie esto puede ser problemático si queremos tener una dirección estática para controlar nuestro proyectos. Para eso podemos usar

ngrok -subdomain=example 8080
con esto para entrar a nuestro subdominio usaremos example.ngrok.com

Si desean ver mas opciones como la de abrir múltiples túneles pueden visitar la documentación en https://ngrok.com/docs

Espero sus comentarios y experiencias.