Cloudflare Tunnels
Cloudflare Tunnels
Sección titulada «Cloudflare Tunnels»Cloudflare Tunnels permite exponer servicios de tu red local a Internet de forma segura, sin necesidad de abrir puertos en tu router.
🤔 ¿Por qué usar Tunnels?
Sección titulada «🤔 ¿Por qué usar Tunnels?»| Sin Tunnels | Con Tunnels |
|---|---|
| ❌ Requiere abrir puertos | ✅ No requiere puertos abiertos |
| ❌ IP pública expuesta | ✅ Tráfico encriptado vía Cloudflare |
| ❌ Configuración de firewall compleja | ✅ Configuración simple |
| ❌ Vulnerable a ataques directos | ✅ Protección DDoS incluida |
🚀 Instalación
Sección titulada «🚀 Instalación»-
Instala cloudflared en tu servidor:
Ventana de terminal # Debian/Ubuntucurl -L --output cloudflared.deb https://github.com/cloudflare/cloudflared/releases/latest/download/cloudflared-linux-amd64.debsudo dpkg -i cloudflared.deb -
Autentícate con tu cuenta de Cloudflare:
Ventana de terminal cloudflared tunnel login -
Crea un túnel:
Ventana de terminal cloudflared tunnel create mi-homelab -
Configura el túnel creando
~/.cloudflared/config.yml:tunnel: <TUNNEL_ID>credentials-file: /home/usuario/.cloudflared/<TUNNEL_ID>.jsoningress:- hostname: docs.herwingx.devservice: http://localhost:4321- hostname: app.herwingx.devservice: http://localhost:3000- service: http_status:404 -
Configura DNS en Cloudflare:
Ventana de terminal cloudflared tunnel route dns mi-homelab docs.herwingx.dev -
Inicia el túnel como servicio:
Ventana de terminal sudo cloudflared service installsudo systemctl start cloudflaredsudo systemctl enable cloudflared
🔐 SSH sobre Tunnels
Sección titulada «🔐 SSH sobre Tunnels»Para CI/CD con GitHub Actions, puedes exponer SSH de forma segura:
# En config.ymlingress: - hostname: ssh.herwingx.dev service: ssh://localhost:22📋 Comandos Útiles
Sección titulada «📋 Comandos Útiles»# Ver túnelescloudflared tunnel list
# Ver estadosystemctl status cloudflared
# Ver logsjournalctl -u cloudflared -f
# Ejecutar manualmente (debug)cloudflared tunnel run mi-homelab