Cómo evitar la página de advertencia intersticial de ngrok en 2026 (sin pagar $10/mes)

Current comparison
Looking for the main ngrok alternative guide?
We keep the latest ngrok alternative comparison, CLI commands, pricing notes, and webhook examples on one canonical page.
Open the InstaTunnel ngrok alternative guideQuick answer
Cómo evitar la página de advertencia intersticial de ngrok en 2026: quick comparison answer
Choose the tunnel tool based on the network model: public HTTPS URLs for webhooks and demos, private mesh access for internal apps, and managed infrastructure when policy controls matter most.
Which tunnel tool is best for public webhook testing?
Use a public HTTPS localhost tunnel with stable URLs. InstaTunnel focuses on webhook testing, demos, OAuth callbacks, and MCP endpoint workflows.
When should I choose a private network tool instead?
Choose a private mesh or Zero Trust tool when every user and service should stay inside a controlled private network.
Si has pasado tiempo creando túneles a un servidor local con ngrok, probablemente te hayas topado con la pantalla de advertencia intersticial: inicias un túnel para compartir tu localhost con un cliente o probar un webhook, y en lugar de tu app, ves una página de inicio que pide hacer clic en “Visit Site” antes de que cargue cualquier cosa.
Para un usuario que hace clic en un enlace, es una molestia menor. Para procesos automatizados, es una barrera. La página intersticial forzada por ngrok en solicitudes HTML en la capa gratuita interrumpe rutinariamente pruebas con navegadores sin cabeza, pruebas en apps móviles, servidores de desarrollo con recarga en caliente y cualquier proveedor de webhooks que no pueda hacer clic en una advertencia.
Esta guía cubre todas las formas prácticas de evitar la intersticial en 2026 — desde un encabezado de una línea hasta cambiar completamente de herramientas — y verifica el estado actual de las principales alternativas a ngrok, ya que mucho del contenido sobre “alternativas a ngrok” que circula ahora tiene errores en precios y funciones.
Por qué ngrok muestra la página intersticial
No es un error — es intencional. Las URLs gratuitas de ngrok ofrecen a cualquiera un endpoint HTTPS temporal y enmascarado, lo que hizo que la capa gratuita fuera un vehículo conveniente para phishing y distribución de malware. Para reducir ese abuso, ngrok muestra una página intersticial frente a todo el tráfico HTML en la capa gratuita, informando que el sitio es servido por ngrok. Una vez que un visitante hace clic, una cookie suprime la página para ese dominio durante 7 días — pero eso no ayuda a un proveedor de webhooks o a un runner de CI que nunca llega a hacer clic.
A veces los desarrolladores interpretan un segundo motivo: que la advertencia ayuda a impulsar a los usuarios gratuitos hacia un plan de pago. ngrok no lo dice públicamente, pero vale la pena tenerlo en cuenta: la intersticial no afecta a quienes acceden a los endpoints programáticamente o mediante un cliente API, solo al tráfico de navegadores HTML.
Dónde realmente rompe la advertencia las cosas
Navegadores headless y pruebas E2E. Playwright, Puppeteer y Cypress navegan a la URL de tu túnel esperando el DOM de tu app. En su lugar, ven la página de inicio de ngrok, no saben hacer clic en “Visit Site” y la prueba se agota.
Recarga en caliente. Vite, Next.js y Webpack Dev Server envían cambios en vivo por WebSockets. La intersticial interrumpe el apretón inicial, HMR falla silenciosamente y tienes que actualizar manualmente.
Webhooks de terceros. Stripe, GitHub y Twilio esperan un 200 inmediato con JSON. Si reciben HTML, falla el webhook y proveedores como Stripe reintentan agresivamente antes de desactivar el endpoint tras varios fallos.
Método 1: Evitarlo programáticamente
ngrok documenta dos métodos soportados que no requieren actualizar:
Enviar el encabezado skip-warning. Configura y envía un encabezado de solicitud ngrok-skip-browser-warning con cualquier valor, y la página intersticial no aparecerá.
curl -H "ngrok-skip-browser-warning: true" https://tu-url-aleatoria.ngrok-free.app/api/data
// Axios
axios.get('https://tu-url-aleatoria.ngrok-free.app/api/data', {
headers: { 'ngrok-skip-browser-warning': 'true' }
}).then(response => console.log(response.data));
import requests
response = requests.get(
"https://tu-url-aleatoria.ngrok-free.app/api/data",
headers={"ngrok-skip-browser-warning": "true"}
)
print(response.json())
Cambiar el User-Agent. Configurar un User-Agent no estándar también evita la advertencia, ya que la detección de ngrok apunta a firmas de navegador estándar:
// Puppeteer
const page = await browser.newPage();
await page.setUserAgent('MiScriptDePruebaAutomatizada/1.0');
await page.goto('https://tu-url-aleatoria.ngrok-free.app');
Para pruebas manuales en navegador, una extensión de inyección de encabezados como ModHeader funciona igual — agrega una regla que establezca ngrok-skip-browser-warning: true en solicitudes a *.ngrok-free.app.
El límite de este método: solo funciona cuando controlas el cliente. No puedes pedirle a Stripe o GitHub que añadan un encabezado personalizado en su payload de webhook, por lo que este método no ayuda con entregas de webhooks de terceros.
Método 2: Un proxy de reenvío autoalojado
Para webhooks que no puedes modificar, algunos desarrolladores colocan un pequeño proxy delante del túnel que inyecta el encabezado por ellos. Un ejemplo es igops/ngrok-skip-browser-warning, un proxy HTTPS basado en Nginx con soporte completo para SSL, WebSocket, SSE y CORS que añade automáticamente el encabezado skip-warning antes de reenviar a tu endpoint ngrok. Funciona, pero ahora alojas y mantienes una infraestructura adicional (normalmente en plataformas como Render o Vercel) solo para sortear la advertencia.
Método 3: Actualizar o cambiar de herramienta
La página intersticial no es un impuesto permanente en la capa gratuita — está vinculada al plan. Aquí la estructura de precios actual de ngrok a mediados de 2026, directamente de su página:
| Plan | Precio | Transferencia de datos | Página intersticial |
|---|---|---|---|
| Gratis | $0 | 1 GB/mes, 20k solicitudes HTTP | Sí, en endpoints HTTP/S |
| Hobbyist | $8/mes pagado anualmente ($10/mes mensual) | 5 GB incluidos, luego medido | No |
| Pago por uso | $20/mes base + uso | 5 GB incluidos, luego $0.10/GB | No |
| Empresarial | Personalizado | Personalizado | No |
El plan gratuito incluye $5 de uso único, hasta 3 endpoints en línea, hasta 1GB de transferencia y 20k solicitudes HTTP/S, con la página intersticial en endpoints HTTP/S. La opción Hobbyist cuesta $8/mes pagado anualmente o $10/mes mensual, incluye 5GB de transferencia y elimina la página intersticial en endpoints HTTP/S por defecto
. La solución más rápida, si estás satisfecho con ngrok, es el plan Hobbyist de $8–10/mes — sin necesidad de inyección de encabezados.Si prefieres dejar ngrok, aquí una revisión honesta de las principales alternativas, ajustadas a los precios y funciones actuales de cada proveedor.
Tunnelto — En realidad, dos proyectos diferentes
Aquí es donde mucha de la información de “alternativa a ngrok” en 2026 se confunde, así que conviene ser preciso: tunnelto.dev y tunnelto.me son productos no relacionados que comparten nombre.
- tunnelto.dev es el túnel open-source original en Rust, creado por el desarrollador agrinman. El repositorio en GitHub tiene actualmente 6.8k estrellas y 535 forks, licencia MIT, con su última versión cliente (0.1.18) en mayo de 2021. El README aún indica que tunnelto.dev es la versión activa, ejecutada en fly.io — no está abandonado, pero el CLI no ha añadido funciones en años y no soporta dominios personalizados ni autenticación.
- tunnelto.me es un servicio comercial separado, en activo, sin relación con el proyecto open-source. Su FAQ explica que tunnelto.me es un servicio de túneles gestionado, con dominios personalizados en todos los planes y autenticación integrada, mientras que tunnelto.dev es un proyecto open-source de agrinman, con última versión en 2021. Si una comparación afirma que “el servicio .me alojado domina el mercado” basándose en el crecimiento de estrellas en GitHub, está confundiendo los productos — el aumento de estrellas corresponde al repositorio open-source tunnelto.dev, no al servicio comercial tunnelto.me.
Lo que ofrece tunnelto.me, según su página de precios actual:
El plan gratuito incluye 1 túnel en tunnelto.me, 1 GB de ancho de banda mensual, túneles ilimitados de 1 hora en un dominio personalizado, límite de 100 solicitudes/min y velocidad de 5 Mbps, sin necesidad de tarjeta de crédito. El plan Hobbyist cuesta $2/mes y añade túneles persistentes ilimitados, autenticación por contraseña y token de portador. La opción “Más Popular” cuesta $10/mes con 10 GB de ancho de banda y 3 dominios personalizados, y Pro cuesta $20/mes con 20 GB de ancho de banda.
Dos aspectos importantes que la descripción “sin ataduras” suele omitir:- Los túneles gratuitos expiran tras una hora. Los túneles gratuitos expiran tras 1 hora y deben ser recreados, mientras que los túneles Hobbyist son persistentes y permanecen tras reinicios y pausas nocturnas — no es un problema para sesiones activas, pero sí para un webhook que quieres dejar en marcha sin supervisión.
- El ancho de banda está limitado a 1 GB/mes en ambos planes, Free y Hobbyist — el mismo límite que ngrok en su capa gratuita. Para eliminar esa restricción, hay que pasar al plan Plus de $10/mes.
Nada en el sitio de tunnelto.me promete “nunca mostrará una página de advertencia” — la intersticial simplemente no aparece en sus funciones, precios o FAQ, lo cual es un proxy razonable para “no tiene una”, pero no es una garantía documentada como la eliminación de la intersticial en ngrok.
Instalación de tunnelto.me (el CLI correcto para el servicio .me, diferente del cliente antiguo de agrinman):
# macOS / Linux
curl -sf https://app.tunnelto.me/install.sh | sh
# Windows (Scoop)
scoop bucket add tunnelto https://github.com/asabi/scoop-tunnelto
scoop install tunnelto
# Apunta un subdominio a un puerto local
tunnelto add api 8080
# O usa tu propio dominio
tunnelto add api.tudominio.com 8080
LocalXpose — Plan gratuito ilimitado, multi-protocolo
El plan Starter gratuito de LocalXpose incluye 2 túneles HTTP/HTTPS activos con cifrado SSL/TLS y subdominios únicos, pero con límites de tiempo y advertencias intersticiales — por lo que no resuelve el problema de “gratis y sin página de advertencia” como indica la mayoría de comparaciones.
El plan Pro cuesta $8/mes si se paga anualmente ($96/año) e incluye 10 túneles, soporte para HTTP/HTTPS/TCP/TLS/UDP, dominios personalizados, túneles comodín, certificados automáticos, disponibilidad 24⁄7 y ancho de banda ilimitado según la política de uso aceptable de LocalXpose. La compatibilidad con UDP es el verdadero diferenciador — ni ngrok ni tunnelto.me soportan UDP, importante para servidores de juegos, VoIP o dispositivos IoT con CoAP/DTLS.
Tunnelmole — Software totalmente open source y autoalojable
Tunnelmole es software gratuito y open source: el cliente tiene licencia MIT y el servicio es AGPLv3. Utiliza el servicio alojado en tunnelmole.com por defecto, y también puede autoalojarse, lo que ofrece la mayor privacidad si no quieres que tu tráfico pase por infraestructura gestionada. Es una herramienta nativa en Node.js (16.10+), se instala con npm install -g tunnelmole, y no muestra pantalla de inicio en el servicio alojado.
Pinggy — Sin instalación de cliente, basado en SSH
La propuesta de Pinggy es que no necesita nada más que un cliente SSH estándar. La sintaxis actual es:
ssh -p 443 -R0:localhost:3000 free@a.pinggy.io
El -p 443 mantiene viva la conexión en redes que bloquean el puerto 22, y R0 indica que el servidor asigne un puerto dinámico; Pinggy responde con una URL HTTPS pública que enruta a tu puerto local.
El nivel gratuito es realmente gratuito para siempre, pero tiene una limitación importante que la descripción “gratis y sin límites” suele omitir: los túneles expiran tras 60 minutos y la URL cambia en cada reinicio, ya que las direcciones persistentes requieren el plan Pro de pago. Pro cuesta aproximadamente $3/mes si se paga mensualmente o unos $2.37–$2.50/mes si se paga anualmente, e incluye túneles persistentes, dominios personalizados, puertos TCP/UDP persistentes y gestión de equipos. Modo Cloudflare Tunnel — Dos modos muy diferentesEste es el mayor error a corregir: Cloudflare Tunnel no requiere que tengas un dominio propio. Hay dos modos distintos:
- Túneles rápidos (TryCloudflare): Permiten experimentar con Cloudflare Tunnel sin añadir un sitio a DNS de Cloudflare — genera un subdominio aleatorio en trycloudflare.com y proxy las solicitudes a tu servidor local. No requiere cuenta ni configuración, solo un comando (
cloudflared tunnel --url http://localhost:8000) y listo. La diferencia: Cloudflare no garantiza SLA ni uptime en estos, ya que son solo para pruebas, y la URL es aleatoria y cambia cada ejecución — similar a ngrok en su capa gratuita, sin la página intersticial. - Túneles nombrados: la versión persistente y de producción sí requiere una cuenta en Cloudflare y un dominio con DNS apuntando a Cloudflare, para ofrecer un endpoint estable con controles de acceso Zero Trust.
Por lo tanto: para un enlace de demo rápido, sin página de advertencia y sin dominio, los Túneles rápidos son perfectos. Para algo que quieras mantener a largo plazo en tu propio dominio, usa Túneles nombrados y el dominio propio.
Migrando de ngrok a tunnelto.me: paso a paso
Si quieres un túnel persistente con dominio personalizado sin la intersticial de ngrok, este es el flujo actual:
1. Instala el CLI
curl -sf https://app.tunnelto.me/install.sh | sh
2. Inicia tu servidor local como siempre — por ejemplo, un servidor de desarrollo React en el puerto 3000:
npm run start
3. Crea el túnel. En lugar de ngrok http 3000:
tunnelto add api 3000
O usa tu propio dominio:
tunnelto add api.tudominio.com 3000
Recuerda: en el plan gratuito, este túnel expira tras una hora, así que para dejarlo en marcha sin supervisión — receptor de webhooks, callback OAuth — necesitas el plan Hobbyist de $2/mes para persistencia.
4. Apunta tu webhook o prueba a la URL HTTPS resultante. Sin página intersticial, sin inyección de encabezados, sin lógica de bypass.
Conclusión
La página intersticial no desaparecerá en la capa gratuita de ngrok — es una medida anti-phishing deliberada, no un error, y ngrok deja claro que sus propios métodos soportados (el encabezado skip-warning, un User-Agent personalizado o el plan Hobbyist de $8/mes) son las vías oficiales para evitarla. La mejor opción depende de qué esté fallando: la inyección de encabezados funciona para tus scripts y CI, un proxy reenvía webhooks que no puedes modificar, y cambiar a Tunnelmole, Pinggy, Cloudflare Quick Tunnels o un plan de tunnelto.me/LocalXpose de pago lo resuelve estructuralmente si prefieres no construir alrededor de la página de advertencia.
Registro de cambios
Correcciones
- Estructura de precios de ngrok — Reemplazado el marco vago de “$8 a $10/mes” por la estructura actual (Gratis $0, Hobbyist $8/mes anual o $10/mes mensual, Pago por uso $20/mes + uso, Empresarial personalizado), y se señala que el plan Hobbyist elimina la intersticial por defecto. Fuente: página de precios de ngrok.
- Afirmación “Tunnelto domina el mercado” — Se aclaró que son productos diferentes: tunnelto.dev (proyecto open-source en Rust, 6.8k estrellas en GitHub, última versión en 2021) y tunnelto.me (servicio comercial activo, sin relación).
- Precios de tunnelto — Se corrigió “solo $2/mes” por la estructura completa: Gratis $0, Hobbyist $2/mes, Plus $10/mes, Pro $20/mes.
- Sintaxis del CLI de tunnelto — Se actualizó a la sintaxis correcta de tunnelto.me:
tunnelto add <dominio> <puerto>. - Requisito de dominio en Cloudflare Tunnel — La afirmación original de que requiere un dominio propio solo aplica a Túneles nombrados. Los Túneles rápidos (TryCloudflare) no requieren dominio ni cuenta, generando una URL aleatoria. Ambos modos ahora descritos.
- Comando SSH de Pinggy — Actualizado a la sintaxis actual:
ssh -p 443 -R0:localhost:3000 free@a.pinggy.io.
Adiciones
- Se añadieron los límites exactos del plan gratuito de ngrok (1GB/mes, 20k solicitudes, 3 endpoints en línea) verificados en la documentación oficial.
- Se añadió que tunnelto.me en su plan gratuito tiene un límite de 1 hora por túnel y 1GB/mes, igual que ngrok, no mencionado en la descripción original.
- Se añadió que Pinggy en su nivel gratuito expira en 60 minutos, lo cual no se mencionaba.
- Se confirmó que el plan gratuito de LocalXpose tiene advertencias intersticiales y límites de tiempo, según su página.
- Se añadió nota sobre la licencia de Tunnelmole (cliente MIT, servidor AGPLv3) y opción de autoalojamiento.
Nota sobre fuentes: Todos los datos de precios y funciones fueron verificados en las páginas oficiales de cada proveedor a principios de agosto de 2026. Los precios de Tunneltool cambian con frecuencia, conviene verificar antes de publicar si esto está en cola más allá de unas semanas.
Related InstaTunnel pages
Continue from this article into the most relevant product guides and workflows.
Related Topics
Keep building with InstaTunnel
Read the docs for implementation details or compare plans before you ship.