Expón tu panel de forma segura: Cloudflare Tunnel vs Tailscale Funnel vs ngrok para Claude Code, Codex y OpenCode
Una comparación práctica de tres formas de acceder desde el móvil a un panel autoalojado, con sus contrapartidas (límites de confianza, autenticación, HTTPS y complejidad operativa).
- CLI
- 0.2.17
- Ref de preview
- a2c45c8
Si ejecutas Claude Code, Codex u OpenCode en una máquina que controlas, la siguiente tentación es evidente:
"Quiero revisarlo desde el móvil."
Y luego llega la idea peligrosa:
"Abro un puerto y listo."
Así es como acabas con un panel a medio autenticar en internet.
Esta guía trata de la versión segura de ese mismo deseo:
tener una URL HTTPS cómoda para el móvil sin abrir puertos de entrada.
Hay tres herramientas habituales:
- Cloudflare Tunnel
- Tailscale Funnel
- ngrok
Todas funcionan.
Pero tienen límites de confianza y formas de fallar muy distintos.
Resumen
- Si quieres "solo dentro de mi red privada", Tailscale Serve / Funnel suele ser sencillo de montar.
- Si quieres exponerlo a internet con un control de identidad fuerte, Cloudflare Tunnel + Cloudflare Access es un patrón habitual.
- Si quieres "una URL ya", ngrok sigue siendo la opción por defecto para muchos.
- Si el panel que expones es la interfaz web de Happier, recuerda la restricción criptográfica del navegador: el acceso remoto desde el móvil debe ser HTTPS (contexto seguro).
El problema
Quieres tres cosas a la vez:
- una URL que puedas abrir desde el móvil
- HTTPS (contexto seguro)
- ningún agujero de entrada en el cortafuegos
Lo difícil es que aquí "seguro" no es solo TLS.
También es:
- quién puede llegar a la URL
- cómo te autenticas
- qué pasa si se filtran las credenciales del túnel
Enfoques habituales y sus contrapartidas
- Abrir el puerto: rápido e imprudente.
- Acceso solo por LAN: seguro, pero no funciona con el móvil fuera de la red.
- Un túnel sin autenticación: algo mejor que abrir el puerto, pero sigue siendo imprudente.
Por eso ayuda tratar el "acceso desde el móvil" como un problema de identidad y de diseño de red.
Opción A: Cloudflare Tunnel
Cloudflare Tunnel solo usa conexiones salientes: un conector se conecta a Cloudflare.
Por qué gusta:
- sin puertos de entrada
- Cloudflare Access te da SSO, comprobación del estado del dispositivo y políticas
Contrapartidas:
- confías en Cloudflare como borde
- ahora gestionas DNS y políticas de Access
Opción B: Tailscale Funnel
Funnel publica un endpoint HTTPS a través de Tailscale.
Por qué gusta:
- integrado de forma nativa en la tailnet
- mantiene oculta la IP de origen
Contrapartidas:
- restricciones y requisitos de políticas
- es fácil confundir Funnel (público) con Serve (solo tailnet)
Opción C: ngrok
ngrok es una forma rápida de conseguir una URL.
Contrapartidas:
- los límites y el precio se convierten en la restricción
- los paneles casi de producción necesitan autenticación fuerte
Dónde encaja Happier (contexto seguro + Tailscale Serve)
Si lo que expones es en concreto la interfaz web de Happier, hay una restricción adicional:
Los navegadores modernos solo permiten ciertas funciones criptográficas en un contexto seguro.
http://localhost cuenta.
http://<lan-ip> y http://<tailscale-ip> no.
Así que necesitas HTTPS.
La vía de acceso remoto recomendada por Happier es Tailscale Serve para obtener una URL https://*.ts.net.