Tailscale como alternativa a ngrok: qué gana y qué pierde
En pocas palabras: Sí. Tailscale Funnel expone tu servidor local a internet vía WireGuard y te da un hostname fijo (tu-maquina.tu-tailnet.ts.net) que no cambia entre reinicios, a diferencia de la URL random del ngrok gratis. Su punto débil: no permite certificado TLS propio.
Si alguna vez necesitaste que un servicio de terceros hable con tu entorno local, seguro tiraste de ngrok. Pero hay otra opción que viene ganando terreno: Tailscale como alternativa a ngrok. Un desarrollador documentó cómo migró parte de ese trabajo a Tailscale Funnel, qué funcionó y qué se le rompió. Spoiler: el hostname estable es el argumento fuerte, y la falta de certificado propio, el talón de Aquiles.
Tailscale Funnel es la función de Tailscale que expone un servidor local a internet pública, equivalente a ngrok o Cloudflare Tunnel. Sirve para probar webhooks, callbacks de pagos o cualquier cosa que un tercero necesite alcanzar en tu máquina. Corre sobre WireGuard, arma una red mesh peer-to-peer y te da un hostname fijo con formato tu-maquina.tu-tailnet.ts.net que no cambia entre reinicios.
En 30 segundos
- Hostname estable: Tailscale Funnel te da una URL fija (
tu-maquina.tu-tailnet.ts.net), a diferencia de la URL random del plan gratuito de ngrok que cambia en cada reinicio. - Gratis de verdad para uso chico: el plan Personal cubre hasta 6 usuarios sin límite de dispositivos y no pide tarjeta.
- Cifrado WireGuard end-to-end: la conexión es peer-to-peer, no pasa por un servidor central que ve tu tráfico.
- La contra grande: no hay dominio propio con certificado válido. Quedás pegado al hostname
.ts.neto comés advertencia del navegador. - Ojo con el setup en Docker: detrás de Caddy + Symfony aparecen dos redirect loops que hay que desarmar a mano.
Cloudflare es una plataforma de infraestructura de Internet desarrollada por Cloudflare Inc., que proporciona servicios de red, seguridad y aceleración para sitios web, incluyendo CDN, protección DDoS, DNS y tunneling.
¿Qué es Tailscale Funnel y cómo funciona?
Tailscale Funnel es la función que hace público un servicio que corre en tu máquina, accesible desde cualquier lado de internet. Acá viene la parte que la gente confunde: Tailscale (la red privada mesh) y Funnel (la exposición pública) son dos cosas distintas. Tailscale te conecta tus propios dispositivos entre sí de forma privada. Funnel es lo que abre esa puerta al mundo.
Por debajo todo corre sobre WireGuard, el protocolo de VPN moderno. La conexión es peer-to-peer: tu máquina y el otro extremo hablan directo siempre que se pueda, sin rebotar por un relay central que meta latencia. El hostname que te asigna sigue el patrón tu-maquina.tu-tailnet.ts.net y queda atado a tu equipo. Levantás el túnel, lo bajás, lo volvés a levantar mañana y la URL sigue siendo la misma. Eso, para quien testea webhooks todo el día, no es un detalle menor. Sobre eso hablamos en gestionar secretos de forma segura.
¿Por qué usar Tailscale como alternativa a ngrok?
La razón número uno es el hostname estable. El plan gratuito de ngrok te da una URL aleatoria que cambia cada vez que reiniciás el proceso. ¿Y qué pasa cuando esa URL cambia? Exacto: tenés que ir a reconfigurar el webhook en Stripe, en GitHub, en el panel del banco, en donde sea. Con Tailscale Funnel la cargás una vez y listo.
Después está el tema plata. El plan Personal de Tailscale es gratis para uso individual o de equipos chicos, cubre hasta 6 usuarios y no tiene límite de dispositivos. No te pide tarjeta de crédito para arrancar. Y el cifrado WireGuard end-to-end viene de fábrica, así que el tráfico no queda expuesto a un intermediario. Para levantar un demo remoto rápido o dejar que un cliente vea algo corriendo en tu notebook, zafa perfecto.
Comparativa: Tailscale vs ngrok vs Cloudflare Tunnel
Las tres herramientas hacen el mismo trabajo de fondo (exponer tu localhost), pero cada una pega distinto según qué priorices. Esta tabla resume las diferencias que importan a la hora de elegir.
| Criterio | Tailscale Funnel | ngrok | Cloudflare Tunnel |
|---|---|---|---|
| Plan gratuito | Personal, hasta 6 usuarios, sin límite de dispositivos | Gratis pero limitado (URL random) | Gratuito, más acotado en features |
| URL / hostname | Estable (.ts.net) | Aleatoria en el tier free | Estable (dominio propio) |
| Dominio propio con cert válido | No | Sí | Sí |
| Arquitectura | Peer-to-peer (WireGuard) | Centralizada | Centralizada (red de Cloudflare) |
| Cifrado | WireGuard end-to-end | TLS | TLS |
| Tarjeta para arrancar | No | No (con límites) | No |

La lectura rápida: si querés dominio propio con certificado, ngrok o Cloudflare Tunnel te lo dan. Si lo tuyo es una URL fija gratis y sin fricción para desarrollo, Tailscale gana. Ninguna es “la mejor” en abstracto, depende de para qué la uses. Esto se conecta con lo que analizamos en funcionamiento de DNS autoritativo.
¿Cuál es la limitación principal de Tailscale Funnel?
La contra concreta, según el relato del desarrollador Chris Shennan, es que Tailscale Funnel no te da dominio personalizado con certificado válido. Quedás atado al hostname tu-maquina.tu-tailnet.ts.net, salvo que aceptes la advertencia de certificado del navegador. Esa “advertencia” roja que asusta a cualquiera que no sea desarrollador.
Para desarrollo y testing interno da igual: nadie se va a espantar por un warning en su propia máquina. El problema aparece si querés mostrarle algo a un cliente que no es técnico, o si el tercero que hace el callback valida certificados de forma estricta. Ahí Cloudflare Tunnel, que sí te deja poner un dominio con cert de verdad, te saca ventaja. Es el precio de la simplicidad.
Configuración de Tailscale Funnel con Docker (Caddy + Symfony)
Poner Funnel a andar detrás de Caddy y Symfony en Docker no fue plug and play. El relato es claro: hubo que arreglar dos redirect loops separados antes de que la cosa funcionara. Uno venía de Symfony y el otro del auto-HTTPS de Caddy peleándose entre ellos.
Ponele que levantás el stack, Tailscale ya termina el TLS por vos, pero Caddy no lo sabe y quiere forzar su propio HTTPS, entonces redirige, y Symfony ve una petición que cree insegura y redirige de nuevo, y el navegador entra en un loop infinito de 301 que no termina nunca. La solución fue decirle a Symfony que confíe en el proxy de forma explícita para que reconozca que la conexión ya venía cifrada. Si trabajás con contenedores, tené el ojo puesto ahí: casi todos los dolores de cabeza con túneles y proxies salen de un servicio que no confía en el header que le manda el de arriba.
¿Es totalmente gratuito Tailscale?
El plan Personal de Tailscale es gratuito, pensado para uso individual o equipos chicos, con hasta 6 usuarios y sin tope de dispositivos. Para el desarrollador solo o el proyecto de dos o tres personas, alcanza y sobra. Hay planes pagos (tipo Teams) con más funciones de administración y control, pero no los necesitás para exponer un localhost. En performance en infraestructura cloud profundizamos sobre esto.
En comparación, ngrok tiene un tier gratuito con la URL aleatoria que cambia en cada reinicio, y Cloudflare Tunnel es gratuito pero más acotado en features avanzadas. Ninguno te va a cobrar por probar. El tema es qué límites te frenan cuando el uso crece.
Casos de uso reales: webhooks, callbacks de pago y demos
El caso estrella es testear webhooks de terceros en local. Pensá en un webhook de Stripe que avisa cuando se cobró un pago, o uno de GitHub que dispara cuando alguien pushea, o el callback de Telegram para un bot. Todos necesitan una URL pública a la que golpear, y tu localhost no lo es.
- Callbacks de pago: el proveedor de pagos necesita una URL pública fija para notificarte. Con el hostname estable de Funnel la configurás una vez y no la tocás más.
- Webhooks de desarrollo: GitHub, Telegram o cualquier SaaS que dispare eventos hacia tu app mientras la desarrollás en tu máquina.
- Demos remotos: mostrarle a un colega o cliente algo corriendo en tu notebook sin desplegarlo a un servidor.
El flujo es simple: servidor local, Funnel lo publica, el tercero pega el callback a la URL pública. Comparado con abrir puertos en el router a mano (port forwarding tradicional), te ahorrás exponer tu IP, configurar el firewall y rezar para que el ISP no te tenga detrás de un CGNAT. Ahora, si el proyecto ya pasó la etapa de desarrollo y necesitás alojarlo en serio, ahí el próximo paso es un hosting o VPS de verdad, y para infraestructura web en Argentina tenés donweb.com. El túnel es para probar, no para producción.
Errores comunes al usar Tailscale Funnel
- Confundir Tailscale con Funnel: instalar Tailscale y esperar que tu servicio ya sea público. No lo es. Tailscale arma la red privada; Funnel es el comando que expone hacia afuera. Son pasos separados.
- No configurar el trust del proxy: si tenés Caddy, Nginx o Symfony delante, y no le decís que confíe en el proxy, vas a caer en redirect loops infinitos. Le pasó a quien documentó el setup.
- Esperar un certificado propio: asumir que vas a poner tu dominio con cert válido como en Cloudflare Tunnel. No se puede. Si eso es requisito duro, elegí otra herramienta desde el arranque.
Preguntas Frecuentes
¿Es Tailscale tan bueno como ngrok para desarrollo local?
Para desarrollo local Tailscale gana en URL estable: el hostname .ts.net no cambia entre reinicios, mientras el plan gratuito de ngrok te da una URL random cada vez. ngrok gana si necesitás un dominio propio con certificado válido, algo que Tailscale Funnel no ofrece.
¿Cómo expongo mi servidor local a internet sin ngrok?
Instalás Tailscale, levantás tu servicio local y activás Tailscale Funnel para publicarlo en la URL tu-maquina.tu-tailnet.ts.net. Todo corre sobre WireGuard cifrado y no requiere abrir puertos en el router ni configurar el firewall a mano. Complementá con alternativas de almacenamiento en cloud.
¿Tailscale Funnel tiene dominio personalizado?
No. Tailscale Funnel no ofrece dominio propio con certificado válido; quedás con el hostname .ts.net salvo que aceptes la advertencia de certificado del navegador. Si necesitás un dominio personalizado con cert de verdad, ngrok o Cloudflare Tunnel lo cubren.
¿Qué diferencia hay entre Tailscale y Cloudflare Tunnel?
La diferencia central es el dominio: Cloudflare Tunnel te deja usar tu dominio con certificado válido, Tailscale no. A cambio, Tailscale usa una arquitectura peer-to-peer sobre WireGuard y te da un hostname estable gratis en el plan Personal para hasta 6 usuarios.
¿Cuál es la mejor alternativa gratuita a ngrok?
Depende de qué priorices. Tailscale Funnel es la mejor si querés URL fija gratis sin tarjeta; Cloudflare Tunnel es mejor si necesitás dominio propio con certificado. Ambas son gratuitas para uso individual y evitan la URL cambiante del tier free de ngrok.
Conclusión
Tailscale Funnel no vino a matar a ngrok ni a Cloudflare Tunnel. Es otra herramienta que hace el mismo trabajo con un balance distinto: gana en URL estable y en ser gratis de verdad para uso chico, pierde en no darte un dominio propio con certificado válido. Si tu día a día es testear webhooks y callbacks en local, el hostname fijo te ahorra la ida y vuelta constante a reconfigurar servicios.
El consejo práctico: probalo con el plan Personal, que no te cuesta nada, y si trabajás con Docker y un reverse proxy adelante, prepará el trust del proxy antes de pelearte con los redirect loops. Para desarrollo, zafa. Para producción, seguís necesitando un servidor de verdad.






