tunnl.gg: la alternativa gratuita a ngrok que expone tu localhost con un solo comando

Descubre tunnl.gg, una alternativa gratuita y open source a ngrok que permite publicar tu localhost con HTTPS usando un solo comando SSH, sin instalar programas ni crear una cuenta.

Compartir Facebook X WhatsApp LinkedIn Telegram
tunnl.gg: la alternativa gratuita a ngrok que expone tu localhost con un solo comando

Si alguna vez necesitaste mostrar una aplicación que estás desarrollando en tu computadora, probar un webhook o conectar un servicio externo con una API que todavía funciona únicamente en localhost, probablemente hayas utilizado ngrok.

Ahora existe otra herramienta que vale la pena conocer: tunnl.gg.

Su propuesta es bastante sencilla: convertir una aplicación que se está ejecutando en tu computadora en una dirección HTTPS pública utilizando únicamente SSH.

No necesitas instalar un agente específico, crear una cuenta ni configurar un token.

Al 2 de octubre de 2026, la documentación oficial de tunnl.gg confirma que el servicio continúa disponible gratuitamente bajo límites de uso razonable y que su servidor es además open source.

¿Qué es tunnl.gg?

tunnl.gg es un servicio de reverse tunneling que conecta una aplicación ejecutándose en tu equipo con una dirección pública accesible desde Internet.

Imagina que tienes una API funcionando en:

http://localhost:8000

Normalmente esa dirección solamente puede abrirse desde tu computadora.

Con tunnl.gg puedes ejecutar:

ssh -t -R 80:localhost:8000 proxy.tunnl.gg

y recibir una dirección pública similar a:

https://happy-tiger-a1b2c3d4.tunnl.gg

Cualquier petición enviada a esa URL será redirigida hacia tu aplicación local mientras mantengas abierta la conexión SSH.

Esto permite probar aplicaciones sin tener que desplegarlas previamente en un hosting o servidor.

Entonces... ¿tunnl.gg es como ngrok?

Sí.

Ambas herramientas solucionan uno de los problemas más habituales durante el desarrollo: hacer accesible desde Internet una aplicación que solamente está disponible en localhost.

La diferencia está principalmente en la forma de hacerlo.

Característica tunnl.gg ngrok
Exponer localhost Sí Sí
HTTPS automático Sí Sí
WebSockets Sí Sí
Crear cuenta No Sí
Instalar un agente No Sí
Token de autenticación No Sí
URL estable Sí, usando SSH Key Disponible con cuenta
Elegir subdominio No Disponible según plan
TCP sin procesar No Sí
Inspector avanzado de peticiones Limitado Sí
Open source para autoalojar Sí No

La propia documentación de tunnl.gg reconoce que ngrok continúa siendo más apropiado cuando se necesitan características avanzadas como túneles TCP, dominios personalizados, políticas de tráfico o herramientas integradas de inspección.

Para pruebas rápidas de APIs, demos y webhooks, tunnl.gg apuesta principalmente por la simplicidad.

¿Por qué resulta interesante?

La parte más llamativa de tunnl.gg es que prácticamente elimina el proceso de configuración.

Si utilizas Windows 10 o superior, Linux o macOS, normalmente ya tienes disponible un cliente SSH.

Por tanto, en muchos casos simplemente necesitas abrir PowerShell o una terminal y ejecutar:

ssh -t -R 80:localhost:8000 proxy.tunnl.gg

No necesitas descargar otro programa.

No necesitas registrar un usuario.

No necesitas copiar ningún token.

El parámetro:

-R

indica a SSH que realizará un remote port forwarding.

En este ejemplo:

80:localhost:8000

el tráfico recibido por tunnl.gg será enviado hacia el puerto 8000 de nuestra computadora.

El parámetro:

-t

también es importante porque tunnl.gg lo utiliza para mostrar en la terminal la URL pública y un código QR.

Ejemplo práctico con Laravel

Supongamos que estamos desarrollando una API con Laravel.

Primero iniciamos nuestro servidor:

php artisan serve

Laravel normalmente quedará disponible en:

http://127.0.0.1:8000

Abrimos una segunda terminal y ejecutamos:

ssh -t -R 80:localhost:8000 proxy.tunnl.gg

Después de aceptar la conexión SSH la primera vez, tunnl.gg mostrará nuestra dirección pública.

Podríamos recibir algo parecido a:

https://happy-tiger-a1b2c3d4.tunnl.gg

Ahora una ruta local como:

http://localhost:8000/api/users

podría consultarse mediante:

https://happy-tiger-a1b2c3d4.tunnl.gg/api/users

Esto resulta especialmente útil si estamos desarrollando una aplicación móvil o necesitamos que un servicio externo pueda comunicarse temporalmente con nuestra API.

Usarlo con Node.js o Next.js

Si nuestra aplicación está trabajando en el puerto 3000:

http://localhost:3000

utilizamos:

ssh -t -R 80:localhost:3000 proxy.tunnl.gg

La documentación oficial utiliza precisamente el puerto 3000 como uno de sus ejemplos habituales.

Usarlo con React o Vite

Vite normalmente utiliza:

http://localhost:5173

Por tanto:

ssh -t -R 80:localhost:5173 proxy.tunnl.gg

Existe aquí un detalle importante.

Herramientas como Vite, Next.js, webpack, Rails o Django pueden bloquear dominios externos desconocidos como medida de seguridad.

Si aparece un mensaje similar a:

Blocked request

o:

Invalid Host header

será necesario permitir el dominio .tunnl.gg dentro de la configuración del servidor de desarrollo. La documentación oficial dispone de instrucciones específicas para estos frameworks.

Usarlo con Flask

Si Flask está ejecutándose en el puerto 5000:

ssh -t -R 80:localhost:5000 proxy.tunnl.gg

Y listo.

Nuestra aplicación Python podrá recibir peticiones desde Internet mientras el túnel continúe abierto.

Una función especialmente interesante: URL permanente

Aquí tunnl.gg tiene una característica bastante útil.

Cuando utilizamos:

ssh -t -R 80:localhost:3000 proxy.tunnl.gg

normalmente recibiremos una URL diferente cada vez que iniciemos una nueva conexión.

Pero podemos pedir una dirección estable utilizando:

ssh -t -R 80:localhost:3000 stable@proxy.tunnl.gg

En este caso la dirección se genera utilizando nuestra clave SSH.

Mientras utilicemos la misma clave, tunnl.gg devolverá la misma URL cada vez que nos conectemos. No necesitamos registrar previamente la clave ni crear una cuenta.

Esto resulta extremadamente útil para trabajar con webhooks.

Crear una llave SSH si todavía no tienes una

Si stable@ devuelve:

Permission denied (publickey)

podemos crear una llave SSH utilizando:

ssh-keygen -t ed25519

Después volvemos a ejecutar:

ssh -t -R 80:localhost:8000 stable@proxy.tunnl.gg

La documentación señala que cualquier llave SSH puede utilizarse para obtener una dirección estable.

Ideal para probar webhooks

Probablemente este sea uno de los escenarios donde herramientas como tunnl.gg o ngrok resultan más útiles.

Servicios como GitHub, Stripe, plataformas OAuth o APIs de mensajería necesitan enviar peticiones hacia una URL pública.

El problema aparece cuando nuestro backend todavía se encuentra en desarrollo.

Por ejemplo:

http://localhost:8000/webhook

Un servicio externo no puede conectarse directamente a esa dirección.

Podemos crear un túnel:

ssh -t -R 80:localhost:8000 stable@proxy.tunnl.gg

y configurar el webhook utilizando una URL como:

https://brave-fox-7c41e09b.tunnl.gg/webhook

Gracias a la modalidad estable, podremos continuar utilizando esa misma dirección cada vez que reiniciemos nuestro entorno de desarrollo.

Para quienes desarrollan integraciones con APIs, bots, sistemas de pagos o automatizaciones, esto puede ahorrar bastante tiempo.

También genera un código QR

Al iniciar el túnel, tunnl.gg puede mostrar un código QR directamente en la terminal.

Esto resulta práctico para probar una aplicación web desde un teléfono real.

Por ejemplo, podemos ejecutar:

ssh -t -R 80:localhost:5173 proxy.tunnl.gg

escanear el QR desde nuestro móvil y comprobar inmediatamente cómo funciona nuestra interfaz fuera del entorno local.

Esta función forma parte actualmente del proyecto oficial.

¿Tiene límites?

Sí.

Aunque tunnl.gg es gratuito, no significa que esté diseñado para funcionar como hosting permanente.

Actualmente el servicio establece, entre otros límites, hasta 3 túneles simultáneos por dirección IP, hasta 50 peticiones por segundo por túnel, un máximo de 24 horas por conexión y cierre por inactividad después de aproximadamente dos horas sin peticiones ni WebSockets abiertos.

Por tanto, su función principal es el desarrollo, pruebas y demostraciones temporales.

No debería entenderse como sustituto de un servidor de producción.

¿Por qué aparece una pantalla de advertencia?

Al abrir por primera vez una dirección tunnl.gg desde un navegador puede aparecer una pantalla informativa antes de mostrar la aplicación.

No es un error.

tunnl.gg incorpora esta pantalla como mecanismo contra campañas de phishing.

Según su documentación, aparece una vez al día por sitio para visitantes desde navegador.

Las peticiones realizadas mediante webhooks, SDK, curl y otros clientes que no sean navegadores pasan directamente hacia la aplicación.

Para clientes automatizados también existe el encabezado:

tunnl-skip-browser-warning

Por ejemplo:

curl -H "tunnl-skip-browser-warning: 1" https://tu-url.tunnl.gg

¿Es seguro?

Hay un punto importante que conviene entender antes de utilizar cualquier herramienta de tunneling.

Las conexiones públicas de tunnl.gg utilizan HTTPS y posteriormente el tráfico viaja hacia tu equipo dentro del túnel SSH.

Sin embargo, el TLS termina en los servidores de tunnl.gg. Por esa razón el propio servicio aclara que no debe considerarse cifrado de extremo a extremo.

Su política de privacidad señala también que no almacena permanentemente el contenido del tráfico, aunque puede conservar temporalmente registros técnicos como IP, fecha, ancho de banda y otros datos necesarios para seguridad y prevención de abuso; estos registros normalmente se eliminan en aproximadamente siete días.

Como regla general, nunca deberíamos publicar mediante un túnel paneles administrativos, bases de datos, credenciales o servicios sensibles sin las medidas de autenticación adecuadas.

Un detalle interesante: es open source

Otra característica que diferencia a tunnl.gg es que el servidor está disponible públicamente en GitHub bajo licencia MIT.

Eso significa que desarrolladores con conocimientos de infraestructura pueden estudiar cómo funciona e incluso desplegar su propia instancia.

El repositorio incluye configuraciones para Docker, compilación desde código fuente, certificados TLS y despliegue del servidor.

Esto convierte a tunnl.gg no solamente en una herramienta útil, sino también en un proyecto interesante para quienes quieran estudiar cómo funciona un servicio de reverse tunneling.

¿Deberías dejar de usar ngrok?

No necesariamente.

ngrok continúa ofreciendo características considerablemente más avanzadas para determinados proyectos.

Pero tunnl.gg tiene una propuesta muy atractiva para desarrolladores que simplemente necesitan:

probar rápidamente un webhook, compartir una demo, abrir una aplicación desde el teléfono o publicar temporalmente una API local.

En esos escenarios, poder ejecutar simplemente:

ssh -t -R 80:localhost:8000 proxy.tunnl.gg

y obtener inmediatamente una dirección HTTPS pública resulta extremadamente cómodo.

Conclusión

tunnl.gg demuestra que exponer temporalmente un servidor local a Internet no tiene por qué implicar instalar herramientas adicionales o configurar cuentas.

Con SSH, una terminal y un solo comando podemos tener nuestra aplicación disponible mediante HTTPS en cuestión de segundos.

No sustituye todas las posibilidades de ngrok y tampoco está pensado como infraestructura de producción, pero para pruebas, demos, desarrollo de APIs y especialmente webhooks puede convertirse en una herramienta muy práctica dentro del kit de cualquier desarrollador.

Y probablemente esa sea su mayor ventaja:

localhost → URL pública HTTPS con un solo comando.

Más información y documentación oficial:

tunnl.gg

Copy completo copiado