Volver a la página principal
miércoles 23 octubre 2024
276

Qué es Ngrok y para qué sirve

Ngrok es una herramienta muy útil para los desarrolladores que permite exponer servicios locales a Internet de manera sencilla y segura. En esencia, Ngrok crea un túnel seguro desde tu máquina local hacia una URL pública, lo que facilita acceder a aplicaciones que se ejecutan en tu entorno de desarrollo local desde cualquier lugar del mundo, sin necesidad de configurar servidores o modificar tu red.

¿Cómo funciona Ngrok?

Cuando trabajamos en un proyecto de desarrollo local, a menudo necesitamos compartir el trabajo con otros, hacer demostraciones o recibir feedback en tiempo real. Si bien podemos configurar un servidor, abrir puertos y lidiar con la configuración de red, esto puede ser complicado, especialmente si no tienes conocimientos avanzados de redes. Aquí es donde Ngrok brilla. La herramienta se encarga de toda la complejidad al crear un túnel que conecta tu máquina local con una dirección pública, todo de manera automática y segura.

Por ejemplo, si estás desarrollando una API en tu computadora local en el puerto 3000, Ngrok permite exponer esa API a una URL pública. De esta manera, cualquier persona con esa URL puede hacer peticiones a tu API sin necesidad de estar en tu misma red.

Ventajas de Ngrok

Existen varias razones por las que Ngrok es una herramienta favorita entre los desarrolladores. A continuación, te menciono algunas de las ventajas principales:

1. Facilidad de uso

Ngrok es increíblemente fácil de usar. Una vez que lo instalas, puedes crear un túnel con un simple comando en la terminal. Por ejemplo:

ngrok http 3000

Este comando expone el servicio que se ejecuta en el puerto 3000 a través de una URL pública generada automáticamente. Simple y rápido. 😊

2. Túneles seguros

Ngrok no solo te permite exponer tu servicio local, sino que lo hace de manera segura. La conexión está protegida con HTTPS, lo que garantiza que los datos que viajan entre tu máquina y la red están cifrados. Este es un punto crítico, especialmente si trabajas con datos sensibles o si deseas probar configuraciones de producción reales.

3. Útil para el desarrollo de webhooks

Si alguna vez has trabajado con webhooks, sabrás que pueden ser difíciles de probar en tu entorno local, ya que requieren que un servidor esté accesible desde Internet. Ngrok resuelve este problema proporcionando una URL pública que los proveedores de servicios externos pueden usar para enviar solicitudes a tu máquina local.

4. Inspección de tráfico en tiempo real

Ngrok también te permite inspeccionar el tráfico que pasa a través de tus túneles. Esto es especialmente útil para depurar problemas o ver exactamente qué solicitudes llegan a tu aplicación. Ngrok proporciona una interfaz web donde puedes ver todas las peticiones HTTP que llegan, los parámetros, las cabeceras, e incluso las respuestas generadas por tu aplicación.

5. Soporte para varios protocolos

Aunque es muy popular para exponer aplicaciones web (HTTP y HTTPS), Ngrok también soporta otros protocolos como TCP, lo que lo hace bastante flexible para otros tipos de aplicaciones o servicios que no necesariamente funcionen bajo el protocolo HTTP.

¿Cómo instalar y usar Ngrok?

La instalación de Ngrok es bastante sencilla. Sigue estos pasos para tenerlo funcionando en tu entorno de desarrollo local.

1. Descargar e instalar Ngrok

Lo primero que debes hacer es descargar Ngrok desde su sitio web oficial. Está disponible para múltiples plataformas como Windows, macOS y Linux. Una vez descargado, simplemente descomprime el archivo y coloca el ejecutable en un directorio accesible desde tu terminal.

2. Autenticación

Para acceder a todas las características de Ngrok, es recomendable crear una cuenta gratuita en el sitio web de Ngrok. Una vez que te registres, te proporcionarán un token de autenticación, el cual debes añadir a Ngrok ejecutando el siguiente comando:

ngrok authtoken <tu_token>

Esto te permitirá usar características avanzadas, como túneles persistentes y la posibilidad de elegir subdominios.

3. Exponer tu aplicación local

Ahora, con Ngrok configurado, puedes exponer tu aplicación local fácilmente. Por ejemplo, si tu aplicación corre en el puerto 3000, solo tienes que ejecutar el siguiente comando:

ngrok http 3000

Ngrok generará una URL pública (como http://abcd1234.ngrok.io) que cualquiera puede usar para acceder a tu aplicación.

Ejemplos de uso común

Ngrok es muy versátil, y aquí te dejo algunos ejemplos de casos en los que es especialmente útil:

1. Desarrollo y pruebas de webhooks

Si estás integrando un servicio que utiliza webhooks (por ejemplo, Stripe, Slack o GitHub), Ngrok te permite recibir esos webhooks directamente en tu entorno de desarrollo. Esto es extremadamente útil para depurar y probar integraciones que, de otra manera, requerirían que desplegaras tu aplicación en un servidor público.

2. Demostraciones en vivo

Si necesitas mostrar el progreso de tu proyecto a un cliente o a tu equipo, puedes hacerlo directamente desde tu máquina local. No es necesario subir cambios a un servidor de pruebas, simplemente puedes ejecutar tu aplicación localmente y compartir el enlace Ngrok con ellos para que accedan.

3. Acceso remoto a aplicaciones locales

Si quieres acceder a una aplicación o servicio que se ejecuta en tu máquina local desde otro lugar, puedes utilizar Ngrok para exponer el servicio y conectarte desde cualquier dispositivo. Esta funcionalidad es perfecta para gestionar servidores locales de manera remota.

¿Qué versiones y planes ofrece Ngrok?

Ngrok tiene varios planes de precios que van desde una versión gratuita hasta planes de pago con características avanzadas. La versión gratuita es bastante completa, pero tiene algunas limitaciones, como:

  • Túneles expiran cada pocas horas.
  • Las URL generadas son aleatorias, no puedes elegir un subdominio personalizado.

Sin embargo, los planes de pago ofrecen características como:

  • Túneles permanentes.
  • Subdominios personalizados.
  • Mayor ancho de banda.

Conclusión

Ngrok es una herramienta indispensable para cualquier desarrollador que necesite compartir aplicaciones locales, depurar webhooks o realizar demostraciones en vivo sin complicarse con la configuración de servidores o redes. Su facilidad de uso, junto con sus características avanzadas como la inspección de tráfico en tiempo real y la seguridad mediante HTTPS, hacen de Ngrok una solución ideal para agilizar muchos aspectos del desarrollo web y de software. ¿Te animas a probarlo? 🚀

Etiquetas:
hacking
Compartir:
Creado por:
Author photo

Jorge García

Fullstack developer