ngrok es una herramienta de línea de comandos que crea un túnel seguro desde internet a un puerto en tu máquina local. En palabras simples, te permite exponer un servidor web que está corriendo en tu computadora a la web pública. Imagina que estás desarrollando un sitio web en tu computadora y quieres que un cliente o compañero lo vea sin tener que desplegarlo en un servidor real. Ngrok hace eso por ti. También te dejamos nuestro blog.
Aunque el uso simple como Ngrok http 3000 es muy útil, la herramienta tiene características más avanzadas, especialmente para usuarios registrados:

- Autenticación de usuario (
authtoken): Para acceder a las funciones avanzadas, debes registrarte en el sitio de ngrok y obtener un token de autenticación. Al ejecutarngrok authtoken <tu_token>, este se guarda en un archivo de configuración (ngrok.yml), lo que te permite usar características como subdominios personalizados y túneles persistentes. - Subdominios personalizados y persistentes: La versión gratuita asigna URLs aleatorias que cambian cada vez que reinicias el túnel. Con una cuenta de pago, puedes reservar un subdominio fijo (ej.
mi-app.ngrok.io), lo cual es ideal para integraciones con APIs o para que tus clientes no tengan que actualizar el enlace. - Múltiples túneles: Puedes ejecutar varios túneles simultáneamente desde un mismo proceso, exponiendo diferentes puertos de tu máquina local, como
ngrok start --all. - Inspección del tráfico: Como mencioné, ngrok tiene una interfaz web local en
http://localhost:4040que es una herramienta de depuración invaluable. Te permite ver las solicitudes y respuestas HTTP en tiempo real, incluyendo encabezados, cuerpos de las peticiones y respuestas, lo que facilita encontrar y solucionar problemas. - Seguridad adicional: Puedes agregar capas de seguridad a tu túnel. Por ejemplo, puedes requerir un nombre de usuario y contraseña para acceder (
--basic-auth) o restringir el acceso a ciertas direcciones IP (--cidr-allowy--cidr-deny).
Limitaciones de la versión gratuita y de uso en general
La versión gratuita de ngrok es fantástica, pero tiene algunas restricciones que pueden ser importantes para proyectos más serios:
- URL aleatoria: La dirección del túnel cambia con cada reinicio.
- Número de conexiones: Existe un límite de conexiones por minuto.
- Tiempo de duración: Los túneles gratuitos expiran después de algunas horas.
- No es para producción: Aunque es seguro, no está diseñado para ser un servidor de producción. Es una herramienta para desarrollo, pruebas y demostraciones.

Alternativas a ngrok
Si ngrok no se ajusta a tus necesidades o buscas una solución diferente, existen otras herramientas que cumplen una función similar, aunque con sus propias particularidades:
- Cloudflare Tunnel: Ofrece una forma segura de exponer aplicaciones web sin abrir puertos. Se integra con la red global de Cloudflare, lo que brinda seguridad adicional como protección contra DDoS.
- localtunnel: Una alternativa más simple y de código abierto. Es muy fácil de usar y no requiere una cuenta. Sin embargo, carece de las características de inspección de tráfico y seguridad avanzada de ngrok.
- Tailscale: Si bien no es un túnel público, crea una VPN segura entre tus dispositivos. Esto te permite acceder a tu localhost desde cualquier dispositivo en tu red Tailscale, lo que es ideal para trabajo en equipo y acceso remoto seguro.
¿Cómo funciona y para qué sirve?
Cuando ejecutas ngrok, este se conecta a la nube de ngrok y crea un túnel HTTP/HTTPS único y temporal. La URL de este túnel, como por ejemplo https://ejemplo-aleatorio.ngrok.io, se dirige directamente a tu servidor local.
Aquí tienes algunos usos prácticos:
- Pruebas de webhooks: . Muchas APIs, como Stripe o Twilio, usan webhooks para enviar notificaciones a tu aplicación. Con ngrok, puedes recibir estas notificaciones en tu servidor local sin necesidad de desplegar tu código.
- Demostraciones a clientes: Puedes mostrar el progreso de tu proyecto a clientes sin preocuparte por la configuración de un servidor de staging. Solo compartes el enlace de ngrok y ellos pueden ver tu trabajo en tiempo real.
- Compartir proyectos en desarrollo: Colabora con tu equipo. Un compañero puede acceder a tu trabajo en su propio navegador, lo que facilita las pruebas y la retroalimentación.
- Inspección del tráfico: ngrok tiene una interfaz web local (generalmente en
http://localhost:4040) que te permite inspeccionar todo el tráfico que pasa por el túnel. Puedes ver las cabeceras, las solicitudes y las respuestas, lo que es invaluable para depurar problemas.

Ejemplo de uso: Exponiendo un servidor en el puerto 3000
El comando más común es el que mencionaste: ngrok http 3000.
- Primero, asegúrate de que tienes un servidor web corriendo en tu máquina local en el puerto 3000.
- Abre tu terminal y escribe
ngrok http 3000. - Verás una pantalla en la terminal con información del túnel. ngrok te proporcionará una o dos URL públicas (una para HTTP y otra para HTTPS).
- Copia y comparte la URL que te da ngrok. ¡Cualquier persona en el mundo con ese enlace podrá ver tu servidor local!
Consejo: si necesitas exponer otro puerto, simplemente cambia el número, por ejemplo: ngrok http 8000.
En resumen, ngrok es una herramienta poderosa y versátil para desarrolladores. La versión gratuita es suficiente para la mayoría de los casos de uso personal, pero si necesitas más control y seguridad, sus planes de pago y las alternativas como Cloudflare Tunnel pueden ser una excelente opción. Igualmente te dejamos otra pagina. para que visites.
