Cloudflare Tunnel: publica tus aplicaciones sin abrir un solo puerto
Hace un tiempo te conté cómo conectar todos tus dispositivos con Tailscale para acceder a tus aplicaciones desde cualquier lugar. Funciona de maravilla… siempre que quien entra seas tú, o alguien de tu red privada.
¿Pero qué pasa cuando quieres que tu aplicación la vea cualquiera, con tu propio dominio, y sigues sin querer abrir puertos en el router? Ahí es donde entra Cloudflare Tunnel. Y créeme, cuando le coges el truco, es de esas herramientas que no entiendes cómo has vivido sin ella.
¿Qué es Cloudflare Tunnel?
La idea es muy sencilla, y por eso es tan potente. En lugar de abrir un puerto en tu router para que internet entre a tu servidor, instalas un pequeño programa, cloudflared, al lado de tu aplicación. Ese programa abre él mismo una conexión saliente hacia Cloudflare y la mantiene abierta.
Cuando alguien visita app.tudominio.com, la petición llega a Cloudflare y viaja por ese túnel hasta tu aplicación. Es decir:
- No necesitas IP pública (funciona incluso detrás del CG-NAT de muchas operadoras o con una conexión móvil).
- No abres ningún puerto de entrada. Puedes bloquear todo el tráfico entrante en el firewall. Lo único que necesita
cloudflaredes salir hacia Cloudflare por el puerto 7844. - Tu aplicación queda detrás de la red de Cloudflare, con su CDN, su WAF y su protección contra DDoS aplicadas automáticamente.
- Cada instancia de
cloudflaredmantiene 4 conexiones con al menos 2 centros de datos de Cloudflare, así que si uno cae, el túnel sigue vivo.
¿Y cuánto cuesta? Nada. El túnel está disponible en todos los planes, incluido el gratuito. El único requisito es que tu dominio use las DNS de Cloudflare.
La forma rápida: un túnel en 30 segundos (y sin cuenta)
Si solo quieres enseñarle algo a alguien ahora mismo, tienes los Quick Tunnels. No necesitas ni cuenta ni dominio:
cloudflared tunnel --url http://localhost:8000
Te devuelve una URL aleatoria del tipo https://palabras-al-azar.trycloudflare.com. Desde octubre de 2026, además, puedes protegerla con un código por email para que solo entren las personas que tú digas:
cloudflared tunnel --url http://localhost:8000 --allowed-mail alguien@empresa.com
Eso sí, son solo para pruebas: la URL cambia cada vez, no hay garantía de disponibilidad y tienen límites (como un máximo de 200 peticiones simultáneas).
La forma recomendada: un túnel gestionado desde el panel
Para algo que se va a quedar, lo más cómodo es crear el túnel desde el panel de Cloudflare. Desde febrero de 2026 lo tienes en el panel principal, en Networking → Tunnels:
- Create a tunnel, le pones un nombre y eliges tu sistema operativo.
- El panel te da un comando con un token. Lo ejecutas en tu servidor:
sudo cloudflared service install <TOKEN>
O, si lo tuyo es Docker:
docker run -d --restart unless-stopped cloudflare/cloudflared:latest \
tunnel --no-autoupdate run --token <TOKEN>
- Cuando el túnel aparezca como Healthy, vas a la pestaña Routes → Add route → Published application, eliges el subdominio (por ejemplo,
app.tudominio.com) y le dices a qué servicio local apunta (http://localhost:8000).
Y ya está. Cloudflare crea el DNS, pone el certificado HTTPS y tu aplicación está publicada. Un consejo: trata el token como una contraseña. Quien lo tenga puede conectar su propio cloudflared a tu túnel.
Para los que preferimos todo en código: el túnel gestionado en local
Si te gusta tenerlo todo versionado (a mí sí), puedes gestionar el túnel con la línea de comandos y un fichero de configuración:
cloudflared tunnel login # te autentica en el navegador
cloudflared tunnel create mi-tunel # crea el túnel y sus credenciales
cloudflared tunnel route dns mi-tunel app.tudominio.com
cloudflared tunnel run mi-tunel
Y en ~/.cloudflared/config.yml defines qué se publica y dónde:
tunnel: <UUID>
credentials-file: /root/.cloudflared/<UUID>.json
ingress:
- hostname: app.tudominio.com
service: http://localhost:8000
- hostname: n8n.tudominio.com
service: http://localhost:5678
- service: http_status:404 # obligatoria: la regla final para todo lo demás
Con un solo túnel puedes publicar tantas aplicaciones como quieras. Antes de arrancarlo, cloudflared tunnel ingress validate te dice si la configuración está bien.
Lo que lo hace realmente potente: Cloudflare Access
Publicar está muy bien. Pero ¿y si no quieres que cualquiera entre? Imagina el editor de n8n, un Grafana o el panel de administración de algo.
Aquí entra Cloudflare Access: delante de tu aplicación pones una política de acceso, y Cloudflare pide identificarse antes de que la petición llegue siquiera a tu servidor. Puedes permitir:
- Emails concretos o dominios enteros (
*@tuempresa.com). - Usuarios de Google, GitHub, Microsoft Entra ID, Okta…
- O, la opción más simple, un código de un solo uso por email, válido durante 10 minutos.
¿Lo mejor? El plan gratuito de Zero Trust cubre hasta 50 usuarios. Para un equipo pequeño o para tus proyectos personales, es más que suficiente.
Y aún hay más…
- SSH, VNC o RDP desde el navegador: puedes publicar un acceso SSH a tu servidor y abrirlo desde el navegador, sin cliente, protegido con Access.
- Redes privadas: con
cloudflared tunnel route ip add 10.0.0.0/24 mi-tunely el cliente de Cloudflare One en tus dispositivos, accedes a toda una red interna. Aquí ya compite directamente con Tailscale. - Alta disponibilidad: puedes lanzar varias instancias de
cloudflaredcon el mismo token (en Kubernetes, por ejemplo, conreplicas: 2), y Cloudflare reparte y conmuta entre ellas. - Terraform: todo (túneles, rutas, políticas de Access) se puede gestionar como código.
Lo que tienes que saber antes de usarlo
No todo es perfecto, y prefiero contártelo:
- Cloudflare ve tu tráfico. El TLS termina en sus servidores, así que el tráfico se descifra en su red antes de llegar a ti. Para la mayoría de casos no es un problema, pero si manejas datos muy sensibles, tenlo en cuenta. Con Tailscale Funnel, en cambio, el TLS termina en tu propio dispositivo.
- No es para servir vídeo ni ficheros grandes. Los términos de servicio de los planes no Enterprise piden usar sus productos de pago (Stream, Images…) para eso.
- Límite de subida: las peticiones de más de 100 MB se rechazan en los planes Free y Pro.
- Dependes de un solo proveedor: DNS, certificados, autenticación y enrutamiento, todo en Cloudflare. Y cuando Cloudflare cae, como pasó el 18 de noviembre de 2025, lo notas (ese día fallaron los inicios de sesión de Access en medio mundo).
Cloudflare Tunnel, Tailscale o ngrok: ¿cuál uso?
| Cloudflare Tunnel | Tailscale (Serve / Funnel) | ngrok (gratis) | |
|---|---|---|---|
| Para quién | Cualquiera en internet (con Access, solo quien tú digas) | Serve: solo tu red privada. Funnel: público | Público |
| Tu propio dominio | Sí (con las DNS en Cloudflare) | No, solo *.ts.net | Solo en los planes de pago |
| Dónde se descifra el tráfico | En Cloudflare | En tu dispositivo | En ngrok |
| Extras | WAF, DDoS, CDN, SSO, redes privadas | VPN mesh, SSH, ACLs | Inspección de tráfico para desarrollo |
| Ideal para | Publicar aplicaciones autoalojadas en serio | Acceso privado a tus cosas | Webhooks y pruebas rápidas |
Yo lo uso así: Tailscale para todo lo que solo tengo que ver yo, y Cloudflare Tunnel para lo que tiene que ver otra gente. Y muchas veces, los dos a la vez.
La lección de siempre: no abras puertos
Después de los ciberataques a la refrigeración de los supermercados, creo que no hace falta insistir mucho. Miles de controladores con su panel de administración abierto a internet, visibles en Shodan, a la espera de que alguien probara una contraseña por defecto.
Con un túnel y una política de Access delante, ese panel no tiene un puerto abierto que encontrar, y para llegar a él hay que identificarse primero. Trabajando cada día con infraestructuras críticas en el sector del agua, te aseguro que esto no es una comodidad… es lo mínimo.
Cierro con una reflexión
Durante años, publicar algo desde casa o desde un servidor propio significaba pelearte con el router, la IP dinámica, los certificados y el miedo a dejar algo abierto. Hoy es un comando y un token.
Conclusión: la mejor puerta es la que no existe. Y Cloudflare Tunnel te permite publicar sin abrir ninguna.
Fuentes
- Cloudflare Docs: Cloudflare Tunnel, cómo funciona, crear un túnel desde el panel, túnel gestionado en local, fichero de configuración y Quick Tunnels
- Cloudflare Docs: código de un solo uso (One-time PIN) y SSH/VNC/RDP en el navegador
- Cloudflare: planes de Zero Trust, límites de peticiones y términos específicos de servicio
- Cloudflare Blog: Protected Quick Tunnels y la caída del 18 de noviembre de 2025
- Tailscale: Funnel · ngrok: límites del plan gratuito

