Comparison
9 min read
50 views

Tunnelmole vs ngrok: Una alternativa nativa en npm para desarrolladores de Node.js

IT
InstaTunnel Team
Published by the InstaTunnel team | Editorial policy

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 guide

Quick answer

ngrok vs Tunnelmole: La alternativa de código abierto y nativa en Node.js: quick answer

If free tunnel limits interrupt your workflow, compare session length, stable URLs, concurrent tunnels, and paid-plan pricing before choosing a localhost tunnel tool.

What free tunnel limits should developers check first?

Check session duration, URL stability, concurrent tunnels, custom subdomains, bandwidth or request limits, and whether webhook callbacks survive restarts.

How does InstaTunnel handle longer development sessions?

InstaTunnel Free is designed around 24-hour sessions, with Pro available for higher limits and MCP endpoint tunnel workflows.

Cada desarrollador que ejecuta un servidor local llega en algún momento a la misma situación: la app funciona bien en localhost:3000, pero un proveedor de webhooks, un teléfono físico o un cliente al otro lado del mundo no pueden acceder a ella. Durante años, ngrok ha sido la solución predeterminada. Tunnelmole es una opción más reciente, nativa en TypeScript, que ha ganado tracción específicamente entre desarrolladores de Node.js y JavaScript que prefieren no abandonar el ecosistema npm para obtener una URL pública.

Este artículo compara ambos: fricción en la instalación, licencias, autoalojamiento y las partes de la documentación de Tunnelmole que vale la pena leer antes de dirigir tráfico cercano a producción a través de él.

Por qué existen las herramientas de tunneling

Tu router y el firewall del sistema operativo bloquean el tráfico entrante por defecto — eso es una característica, no un error. Pero crea una fricción real durante el desarrollo:

  • Webhooks: Stripe, Twilio, GitHub y Discord necesitan una URL pública para hacer POST. No pueden acceder a localhost:3000.
  • Pruebas en móvil y multiplataforma: los teléfonos en la misma Wi-Fi a menudo están aislados de tu máquina de desarrollo por aislamiento del cliente, y escribir una IP LAN en un teléfono es incómodo de todos modos.
  • APIs del navegador solo HTTPS: Service Workers, la API Web Crypto, Geolocalización, notificaciones push y la instalación de PWA requieren un contexto seguro. Los certificados autofirmados en múltiples dispositivos son un problema para gestionar.
  • Demostración de trabajo en progreso: mostrar a un cliente o compañero algo que corre localmente, sin un despliegue completo.

Una herramienta de tunneling resuelve esto ejecutando un cliente ligero que abre una conexión saliente a un relay en la nube, que luego proporciona una URL pública y reenvía el tráfico de vuelta a esa conexión hacia tu puerto local. Como la conexión es iniciada desde dentro, atraviesa la mayoría de NATs y firewalls sin necesidad de configurar el router.

Dónde ngrok crea fricción para desarrolladores de JS

ngrok es un producto maduro y capaz, pero hay algunos aspectos que específicamente molestan a los desarrolladores que viven en el ecosistema npm:

Es un binario en Go, no un paquete en npm. El agente principal es un binario en Go de código cerrado y precompilado. Existen envoltorios para Node.js, pero funcionan lanzando ese binario como proceso hijo en lugar de comportarse como un módulo JS nativo.

Una cuenta y un authtoken son obligatorios. Esto no es un mito anticuado — la propia documentación de CLI de ngrok indica claramente que el servicio requiere que te registres para conectar un agente, y intentar ejecutar el agente sin una cuenta verificada y authtoken ahora falla directamente con un error ERR_NGROK_4018. Ya no hay inicio rápido anónimo y sin registro.

Es de código cerrado. No puedes auditar el código del agente, y los precios, nombres de planes y funciones de ngrok han cambiado varias veces en la historia del producto — algo importante si estás construyendo un flujo de trabajo que depende de límites específicos en la capa gratuita.

Entra Tunnelmole

Tunnelmole es una herramienta de tunneling de código abierto creada por el desarrollador Robbie Cahill, con ambas partes de la pila — el tunnelmole-client y el backend tunnelmole-service — escritos en TypeScript. La propuesta es sencilla: sin binario en Go, sin registro obligatorio para la capa gratuita y con una base de código que los desarrolladores de JS pueden leer.

Licencias (esto es un proyecto con doble licencia, no una)

Este detalle es importante, ya que afecta lo que puedes hacer legalmente con cada parte:

  • tunnelmole-client tiene licencia MIT — permisiva, fácil de integrar en tus propias herramientas.
  • tunnelmole-service (el relay backend) tiene licencia AGPLv3 — si lo modificas y lo pones a disposición en red, se aplica la cláusula de uso en red de la AGPL. El mantenedor de Tunnelmole también ofrece una licencia comercial separada para empresas que quieran más flexibilidad que la que permite la AGPL.

Instalación

Si tienes Node.js 16.10 o superior, la ruta con npm funciona:

npm install -g tunnelmole
tmole 3000

También puedes saltarte el requisito de versión de Node y obtener un binario precompilado con Node incluido:

curl -O https://install.tunnelmole.com/xD345/install  sudo bash install

Los usuarios de Windows pueden descargar directamente tmole.exe y agregarlo a su PATH.

De cualquier forma, ejecutar tmole <puerto> te da inmediatamente una URL HTTP y HTTPS, sin necesidad de cuenta para el servicio alojado por defecto:

$ tmole 8080
http://evgtkh-ip-49-145-166-122.tunnelmole.net está reenviando a localhost:8080
https://evgtkh-ip-49-145-166-122.tunnelmole.net está reenviando a localhost:8080

Uso programático

Tunnelmole también se distribuye como dependencia npm para usar dentro de código Node/TypeScript, soportando tanto ESM como CommonJS:

npm install --save tunnelmole
import { tunnelmole } from 'tunnelmole';
import express from 'express';

const app = express();
const PORT = 3000;

app.get('/', (req, res) => {
  res.send('Hola desde la web pública, enrutada a través de Tunnelmole!');
});

app.listen(PORT, async () => {
  console.log(`El servidor corre localmente en http://localhost:${PORT}`);
  const url = await tunnelmole({ port: PORT });
  console.log(`URL pública disponible en: ${url}`);
});

La función es asíncrona y no bloquea tu ciclo de eventos. Instalarla como dependencia también crea node_modules/.bin/tmole en tu proyecto, útil para integrarla en un script npm como "start-public": "npm run start && tmole 3000".

Dos cosas que la copia de marketing suele omitir

Estas no aparecen en la mayoría de las comparaciones, pero son importantes para quienes evalúan Tunnelmole para algo más que pruebas locales casuales.

Tu IP no está oculta en el servicio alojado. La FAQ de Tunnelmole es clara al respecto: el servicio solía ocultar las IPs de origen, pero eso fue explotado por operadores de phishing, así que ahora Tunnelmole añade un encabezado X-Forwarded-For con tu IP real en cada respuesta — y en subdominios generados aleatoriamente, la IP está incrustada en la URL. Si la privacidad de IP importa en tu caso, el autoalojamiento es la forma de eliminar ese comportamiento (tendrías que quitar el encabezado tú mismo), no el servicio alojado por defecto.

La telemetría está activada por defecto. El cliente recopila datos anónimos — tu versión de Node.js, sistema operativo y reportes de fallos con trazas — a menos que optes por desactivarlo configurando TUNNELMOLE_TELEMETRY=0 en tu entorno. Para una prueba puntual con tmole 3000 esto no es un problema; para flujos de trabajo que requieran cumplimiento, vale la pena desactivarlo explícitamente y documentarlo.

Autoalojamiento de Tunnelmole

Esta es una función que ngrok simplemente no ofrece a ningún precio. Como tanto el cliente como el servicio son de código abierto, puedes correr tu propia instancia en lugar de confiar en tunnelmole.com:

git clone git@github.com:robbie-cahill/tunnelmole-service.git
cd tunnelmole-service
npm install
cp config-instance.example.toml config-instance.toml
npm start

Configura tu tunnelmole-client para apuntar a tu propio endpoint WebSocket en lugar del servicio SaaS por defecto, y tendrás una configuración de tunneling completamente privada, sin terceros en el proceso, sin telemetría que no hayas añadido tú mismo y sin suscripción para subdominios personalizados (que cuesta extra en el servicio alojado).

Dos advertencias importantes antes de confiar en esto para algo real:

  • tunnelmole-service no soporta HTTPS nativo. La documentación del mantenedor es explícita: necesitas ponerlo detrás de Nginx (u otro similar) con un certificado Let’s Encrypt para HTTPS. El servicio en tunnelmole.com añade esta infraestructura encima del código abierto; una instancia autoalojada sin ello no la tendrá por defecto.
  • El servicio oficial alojado no es 100% idéntico al repositorio de código abierto. Según el mantenedor, tunnelmole.com ejecuta el mismo código abierto más la verificación de facturación/cerrada y la infraestructura HTTPS adicional — esa es la única capa propietaria, pero significa que “autoalojado” y “alojado” no corren el mismo software byte a byte.

Comparación de funciones

Atributo ngrok Tunnelmole
Agente principal Binario en Go, cerrado TypeScript, código abierto
Cuenta obligatoria para la capa gratuita Sí — cuenta verificada + authtoken No, para el servicio por defecto
Licencia Propietaria MIT (cliente) / AGPLv3 (servicio)
Autoalojable No
Uso programático en Node.js Wrapper sobre binario externo Módulo nativo ESM/CommonJS
IP oculta del destino N/A (infraestructura propia de ngrok) No — X-Forwarded-For + IP en URL en servicio alojado
Telemetría No es el foco Activada por defecto, opción de desactivar vía env
Subdominios personalizados, en plan gratuito Incluido (dominio ngrok) Requiere suscripción paga a menos que sea autoalojado

Dónde cada herramienta realmente cuesta dinero

Dado que los precios son algo que se vuelve obsoleto rápidamente en artículos así, aquí la estructura actual publicada de ngrok (verificada directamente en la página de precios, no en un agregador externo):

Plan Precio Incluye
Gratis $0 Crédito de uso único de $5 (válido un año, solo plan gratuito), hasta 3 endpoints en línea, 1GB transferencia, 20k solicitudes HTTP/S/mes, página de advertencia en endpoints
Hobbyist $8/mes facturado anualmente ($10 mes a mes) Crédito mensual de $10, 3 endpoints en línea, 5GB transferencia, 100k solicitudes incluidas, sin página de advertencia, dominios con marca ngrok
Pago por uso $20/mes + uso Endpoints ilimitados y transferencia, dominio propio, uso adicional fuera del crédito incluido
Enterprise Personalizado SSO/SAML, SCIM, HIPAA BAAs, informes SOC 2, SLA de soporte dedicado

El servicio alojado de Tunnelmole es gratuito para el caso de uso principal (subdominio aleatorio, HTTPS incluido); solo se necesita suscripción para un subdominio personalizado/reservado, y esa necesidad desaparece si se autoalojan.

Casos de uso en el mundo real

Desarrollo de webhooks. tmole 3000 te da una URL HTTPS pública estable para entregar a Stripe, Twilio o la configuración de webhook de GitHub, para que puedas poner puntos de interrupción y depurar eventos en vivo en lugar de escribir cargas útiles de prueba.

Pruebas en móvil y multiplataforma. Como el túnel es una conexión WebSocket saliente, evita las redes Wi-Fi aisladas que bloquearían a un teléfono de llegar directamente a tu máquina de desarrollo.

Funciones del navegador solo HTTPS. Service Workers, instalación de PWA y la API Web Crypto requieren un contexto seguro. Las URLs HTTPS de Tunnelmole evitan la necesidad de generar y confiar en certificados autofirmados en cada dispositivo de prueba.

Conclusión

ngrok sigue siendo una plataforma capaz y lista para empresas — pero su requisito de cuenta y el agente de código cerrado son restricciones actuales, no críticas anticuadas. La propuesta de Tunnelmole para desarrolladores de JavaScript es legítima: instalación nativa en npm, código TypeScript legible y un camino realmente gratuito y sin registro para el caso más común. Sin embargo, los compromisos también son reales — la telemetría está activada por defecto, tu IP es visible en el servicio alojado y el autoalojamiento para privacidad implica gestionar tu propio HTTPS. Nada de eso hace que Tunnelmole sea una mala opción; simplemente, “código abierto y autoalojable” no es lo mismo que “privacidad por defecto”, y es importante saber qué estás obteniendo antes de integrarlo en algo más que una demo local rápida.


Cambios recientes

  • Eliminado: marco promocional/SEO (“Entra Tunnelmole, la herramienta que ha viralizado recientemente”, “el máximo nivel”, “reclamando tu ecosistema” en encabezados) y relleno generado por IA en todo el contenido; lenguaje ajustado a un tono técnico y basado en hechos.
  • Corregido: el borrador original no mencionaba que ngrok ahora exige obligatoriamente registro y verificación de authtoken con un error específico (ERR_NGROK_4018) — añadido y referenciado en la documentación de CLI de ngrok y en un issue de GitHub que muestra la falla. (Fuente: ngrok Agent CLI docs, runatlantis/atlantis#4218)
  • Añadido: tabla exacta de precios actual de ngrok (Gratis/Hobbyist/Pago por uso/Enterprise), extraída directamente de la página de precios de ngrok, no de una afirmación general de “$0–$49/mes”. (Fuente: ngrok.com/pricing)
  • Añadido: confirmación y cita de la licencia dividida — MIT para tunnelmole-client, AGPLv3 para tunnelmole-service, además de la existencia de una licencia comercial. (Fuente: tunnelmole-service README)
  • Añadido: nueva sección “Dos cosas que la copia de marketing suele omitir” que cubre (1) que el servicio Tunnelmole alojado no oculta tu IP — añade un encabezado X-Forwarded-For y la IP en la URL generada — y (2) que la telemetría (versión de Node, sistema operativo, informes de fallos) se recopila por defecto con opción de desactivarla mediante env var. Ninguna de estas secciones aparecía en el borrador original. (Fuente: tunnelmole-client README/FAQ)
  • Añadido: aclaración de que tunnelmole-service no soporta HTTPS nativo y requiere configuración adicional con Nginx + Let’s Encrypt para HTTPS en autoalojamiento, además de que el servicio oficial combina código abierto con código cerrado de facturación y infraestructura HTTPS adicional — por lo que autoalojado y alojado no son software idéntico byte a byte. (Fuente: tunnelmole-service README)
  • Corregido: el borrador original implicaba que npm install -g tunnelmole no requiere consideración de versión de Node; en realidad, según la documentación del cliente, Node.js 16.10+ es obligatorio para esa ruta, mientras que el script de instalación/precompilado no tiene esa restricción ya que Node viene incluido. (Fuente: tunnelmole-client README)
  • Añadido: métodos alternativos de instalación mediante script y binario para Windows, que el borrador original omitió por completo. (Fuente: tunnelmole-client README)
  • Mantener, verificado: pasos de autoalojamiento (git clone, cp config-instance.example.toml config-instance.toml, npm start) coinciden exactamente con la documentación actual de tunnelmole-service. (Fuente: tunnelmole-service README)
  • Mantener, verificado: ejemplo de uso programático en ESM/CommonJS coincide con la API documentada en el README actual de tunnelmole-client. (Fuente: tunnelmole-client README)

Continue from this article into the most relevant product guides and workflows.

Related Topics

#ngrok vs tunnelmole, tunnelmole, ngrok alternative, tunnelmole vs ngrok, open source ngrok alternative, free ngrok alternative, node.js tunneling tool, javascript tunneling tool, typescript tunnel, native npm tunnel, npm install tunnelmole, tmole 3000, self hosted ngrok alternative, open source tunneling, local server to internet, bypass ngrok binary, react developer tools, node.js developer tools, share local server, expose localhost free, secure local tunnel, public url generator, webhook testing tool, npm tunnel tool, free cloud tunnel, self host tunnelmole backend, tmole command, js ecosystem tunneling, typescript alternative to ngrok, node.js localhost, public url for localhost, expose local api, javascript developer tools, ngrok alternatives 2026, test webhooks locally, local server preview, localhost sharing tool, local network tunnel, frontend developer tunneling, share react app, host local backend, local dev environment, zero config reverse proxy, instant public url, npm native reverse proxy, open source reverse proxy, node based tunnel, free https tunnel, developer productivity tools, open source reverse proxy tunnel, share localhost nodejs, typescript backend tunneling

Keep building with InstaTunnel

Read the docs for implementation details or compare plans before you ship.

Share this article

More InstaTunnel Insights

Discover more tutorials, tips, and updates to help you build better with localhost tunneling.

Browse All Articles