Backend
Configuración avanzada con
Configuración de túneles múltiples con
ngrok
``
- Backend
Descripción
- Herramienta para crear túneles seguros que exponen servidores locales a Internet mediante una URL pública.
- Ideal para desarrollo, pruebas y demos de aplicaciones web que necesitan ser accesibles externamente sin desplegar en un servidor público.
- Permite exponer HTTP, HTTPS y TCP de manera segura.
Casos de uso
- Desarrollo de APIs locales y pruebas con webhooks externos.
- Acceso remoto a servicios internos sin necesidad de abrir puertos en el router.
- Exposición de aplicaciones IoT o contenedores a Internet.
- Demos rápidas de aplicaciones sin necesidad de configurar DNS o certificados.
Características principales
- URLs públicas temporalmente disponibles para cada sesión.
- Soporta subdominios personalizados y URLs estáticas (en planes pagos).
- Integración con APIs y SDKs para automatizar la creación de túneles.
- Dashboard web para monitoreo y estadísticas de tráfico.
- Seguridad mediante autenticación básica y tokens para túneles privados.
- Compatibilidad multiplataforma: Windows, Linux, macOS, Docker.
Instalación
# Instalación vía Homebrew en macOS/Linux
brew install ngrok/ngrok/ngrok
# Instalación en Windows con PowerShell
winget install ngrok
`
Uso básico
# Exponer un servidor local en el puerto 8080 con HTTP
ngrok http 8080
# Exponer un servidor TCP en el puerto 22 (SSH)
ngrok tcp 22
# Autenticación con token de ngrok
ngrok config add-authtoken <TU_TOKEN>
Integraciones y avanzadas
- API Gateway: Integración para enrutar tráfico a servicios locales mediante ngrok.
- IoT Device Gateway: Permite que dispositivos IoT expongan servicios locales de manera segura.
- Secure Tunnels for Containers: Facilita la exposición de contenedores Docker sin necesidad de puertos públicos.
- Uso con frameworks como Laravel, Node.js, Django para pruebas externas rápidas.
Túneles persistentes y subdominios personalizados
- En planes pagos, ngrok permite asignar subdominios estáticos y URLs persistentes que no cambian entre sesiones.
- Útil para webhooks en producción, demos permanentes o integración con servicios externos que requieren URLs fijas.
Configuración avanzada con ngrok.yml
- Archivo de configuración en YAML que permite definir:
- Múltiples túneles con diferentes puertos y protocolos.
- Perfiles de usuario para separar entornos (desarrollo, staging, producción).
- Opciones de seguridad como auth, IP restrictions y region.
tunnels:
web:
proto: http
addr: 8080
subdomain: myapp
auth: "user:password"
ssh:
proto: tcp
addr: 22
`
Inspección de tráfico y depuración
- Dashboard web para revisar logs, solicitudes y respuestas en tiempo real.
- Permite replay de requests para pruebas rápidas de APIs.
- Integración con la API de ngrok para automatizar análisis y monitorización.
Seguridad avanzada
- Soporte HTTPS para todos los túneles.
- Autenticación básica configurable por túnel.
- Restricción de IPs y dominios permitidos.
- Tokens de acceso para manejar túneles privados.
Automatización y CI/CD
- Scripts para iniciar túneles automáticamente durante despliegues.
- Integración con pipelines para pruebas externas de APIs o microservicios.
- Posibilidad de levantar túneles temporales en contenedores o máquinas virtuales sin intervención manual.
Comparativa con alternativas
- LocalTunnel: simple, sin registro, pero menos estable y sin subdominios persistentes.
- Serveo: requiere SSH, sin cliente instalado, ideal para casos rápidos.
- Ventaja de ngrok: estabilidad, control avanzado, subdominios persistentes, dashboard y monitoreo.
Limitaciones y consideraciones
- Conexión temporal en plan gratuito, URLs cambian cada sesión.
- Ancho de banda limitado en free tier.
- Dependencia de un servicio externo; para producción crítica se recomienda configuración redundante o VPN.
- Posible latencia adicional por el túnel.
ngrok — Casos de uso con ejemplos de código
Exponer un servidor HTTP local
- Escenario: Tienes un servidor web local corriendo en el puerto 3000 y quieres que sea accesible públicamente.
# Inicia un túnel HTTP en el puerto 3000
ngrok http 3000
`
- Esto genera una URL pública como
https://abc123.ngrok.ioque puedes compartir. - Útil para pruebas de APIs, demos o integración con webhooks.
Exponer un servidor TCP (SSH)
- Escenario: Necesitas acceso remoto a un servidor local vía SSH.
# Inicia un túnel TCP para SSH en el puerto 22
ngrok tcp 22
- ngrok te proporcionará una dirección como
tcp://0.tcp.ngrok.io:12345. - Puedes conectarte desde cualquier máquina:
ssh usuario@0.tcp.ngrok.io -p 12345
Configuración de túneles múltiples con ngrok.yml
- Escenario: Quieres exponer un servidor web y un SSH al mismo tiempo, con autenticación básica en el HTTP.
authtoken: <TU_TOKEN>
tunnels:
web:
proto: http
addr: 3000
subdomain: miapp
auth: "admin:secret"
ssh:
proto: tcp
addr: 22
- Comando para iniciar todos los túneles:
ngrok start --all
Uso con webhooks
- Escenario: Integrar un servicio externo (GitHub, Stripe, Twilio) con un webhook en tu servidor local.
ngrok http 5000
- GitHub webhook URL:
https://abc123.ngrok.io/webhook
- Tu servidor local recibirá las solicitudes externas directamente para pruebas y desarrollo.
Uso en contenedores Docker
- Escenario: Tienes un contenedor corriendo una aplicación y quieres exponerla sin abrir puertos.
docker run -d -p 8080:8080 miapp
ngrok http 8080
- Genera una URL pública para que clientes externos puedan acceder al contenedor.
Inspección y replay de requests
- Inicia ngrok y accede al dashboard web en
http://127.0.0.1:4040. - Revisa solicitudes entrantes y su payload.
- Replay para pruebas automáticas:
curl -X POST http://127.0.0.1:4040/api/requests/<ID>/replay
Automatización con scripts
- Escenario: Levantar túneles automáticamente al iniciar tu entorno de desarrollo.
#!/bin/bash
# start-tunnel.sh
ngrok start --all &
echo "Túneles iniciados..."
- Puedes integrar este script en tu pipeline de CI/CD para exponer APIs temporales durante pruebas automáticas.
Seguridad avanzada
- Autenticación en túnel HTTP:
ngrok http 3000 --auth="user:password"
- Restricción de región:
ngrok http 3000 --region=eu
- Solo accesible desde la región europea, útil para cumplir políticas de latencia o privacidad.
ngrok 2025 — Nota Actualizada con Recursos y Contexto
Cambios recientes (2025)
- En 2025 ngrok sigue evolucionando con actualizaciones frecuentes del agente, nuevas APIs, mejoras de seguridad y soporte ampliado para configuraciones avanzadas.
- Se han agregado funciones como Secrets para Traffic Policy, mejoras en TLS/TCP y un HTTP API interno
/api/endpointsque facilita programar y manejar túneles desde scripts o aplicaciones.
Plataforma actual de ngrok
- ngrok ya no es solo un “túnel de desarrollo”: es una plataforma completa de Gateway para APIs, IoT, Kubernetes, y servicios empresariales con seguridad avanzada.
- Ofrece control de tráfico, autenticación de identidad, balanceo global y observabilidad integrada para aplicaciones modernas.
Seguridad y cumplimiento de estándares
- La seguridad es un pilar de ngrok: cifrado TLS por defecto, políticas de acceso, autenticación y capacidades auditables para revisiones de seguridad corporativa.
- Hay documentación y whitepapers disponibles para revisiones de compliance (SOC2, etc.).
Modelos de precios 2025
- El plan gratuito sigue siendo útil para desarrollo, pero con limitaciones en túneles simultáneos, ancho de banda y configuraciones avanzadas.
- Las capas pagas añaden:
- endpoints adicionales
- políticas de tráfico
- identidad/autenticación
- observabilidad
- dominios personalizados y SSO/RBAC en empresa.
Integraciones, SDKs y extensiones
- ngrok se integra con múltiples lenguajes y frameworks mediante SDKs oficiales (Python, Go, Rust, JavaScript, etc.).
- Por ejemplo,
pyngrokpermite usar ngrok desde Python con métodos programáticos para crear y controlar túneles.
Buenas prácticas de uso en 2025
- HTTPS por defecto y autenticación en túneles públicos para evitar exposición no autorizada.
- Cerrar túneles cuando no se usen para no generar tráfico no deseado.
- Revisar logs y usar replay de solicitudes para depurar integraciones (especialmente con webhooks).
- Mantener la herramienta actualizada con el agente v3.x dado que recibe mejoras continuas.
Limitaciones actuales (2025)
- El plan gratuito no ofrece subdominios estáticos ni branding de dominios sin pago.
- Algunas políticas de tráfico avanzadas o manipulación de headers requieren plan pago.
- La sesión gratuita puede desconectarse tras cierto periodo si no está configurada con cuenta.
Recursos oficiales (2025)
- Documentación principal de ngrok
- Dashboard y configuración de Tokens
- API Reference de ngrok
- Changelog y notas de versión
Consideraciones sobre alternativas
- Existen alternativas como InstaTunnel que promueven menos restricciones en la capa gratuita y ofrecen duración de sesiones más largas o túneles múltiples sin coste adicional.
- Para setups más controlados y autónomos, opciones self-hosted como zrok o túneles basados en software libre pueden ser exploradas.
¿Te gusta este contenido? Suscríbete vía RSS