Ngrok, crea túneles seguros a tu servidor local

En Desarrollo, Software por

Hoy vamos a hablar de Ngrok, una herramienta que nos permite crear túneles seguros hacia un servidor local. A muchos esta explicación os dice muy poco o nada, pero seguid leyendo y estoy seguro de que encontrareis una herramienta muy útil en Ngrok.

Ngrok, crea túneles seguros a tu servidor local

Ngrok es una herramienta destinada desarrolladores y que simplificará la fase de pruebas de nuestro software. Ngrok es una herramienta «freemium», es decir, podemos usar parte de su funcionalidad de forma gratuita pero ciertas características requerirán la suscripción a un plan de pago. La versión gratuita nos sirve perfectamente para un proyecto personal.

¿Qué es Ngrok?

Para enterarnos de una vez de qué es Ngrok, vamos dejarnos de definiciones técnicas y pasamos a la explicación «entendible». Con Ngrok podemos crear un túnel accesible a través de un dominio que nos asigna la propia aplicación, para así acceder a un servidor local.

Cuando ejecutamos Ngrok con el comando ngrok http 80, veremos que este nos asigna un dominio aleatorio similar a http://cb04410f.ngrok.io. Cuando accedemos a ese dominio a través del navegador, es como si estuviésemos accediendo al servidor en localhost, porque Ngrok se encarga de redirigir el tráfico a través del túnel.

Ejemplo de uso de Ngrok para entender las posibilidades de esta herramienta.

Vamos a plantearnos una situación en la que tenemos un servidor XAMPP en localhost para desarrollar temas WordPress. Resulta que nuestro cliente quiere ver el tema en funcionamiento antes de pagar, así que tendremos que buscar una forma de enseñárselo.

Para poder dar acceso al cliente a nuestro servidor XAMPP en localhost, necesitaríamos abrir el puerto en el router y después facilitarle nuestra IP pública, además de tener configurado correctamente XAMPP para permitir esta conexión remota. Vemos que este proceso es bastante tedioso y lioso. Es aquí donde Ngrok sale al rescate y nos aligera la tarea.

Al ejecutar el comando ngrok http 80, nuestro cliente podrá acceder a nuestro servidor local empleando la URL que nos asigna (por ejemplo antes nos asignaron http://cb04410f.ngrok.io), sin necesidad de abrir puertos en el router y sin editar la configuración del servidor XAMPP.

ngrok consola

Esto nos evita recurrir a intrincadas soluciones mediante un VPN o servidores externos, consiguiendo mostrar al cliente nuestro producto. Con este ejemplo creo que ya ha quedado claro que es Ngrok y para qué sirve, pero no terminan aquí las sorpresas, Ngrok tiene más que ofrecernos, así que sigue leyendo.

Analizando las peticiones HTTP con Ngrok.

En el ejemplo anterior, cuando ejecutamos Ngrok con el comando ngrok http 80, además se crea una interfaz web desde la que inspeccionar todas las peticiones HTTP y así poder debuggear y encontrar fallos en la aplicación.

inspeccionar peticiones http con ngrok

La interfaz web es accesible desde el navegador y nos indican la dirección tras ejecutar el comando, que generalmente suele ser http://127.0.0.1:4040.

Además debes saber…

Ngrok es una aplicación multiplataforma y está disponible para Windows, Mac, ARM y Linux.

El plan gratuito tiene las siguientes limitaciones:

  • Los túneles se crean en dominios aleatorios.
  • Soporta 40 conexiones por minuto.
  • Sólo se permite un proceso de Ngrok, que a su vez permite la creación de 4 túneles.

Para conocer todos los posibles comandos y opciones que acepta Ngrok pásate por su página de documentación oficial (en inglés).