HectorziN - Domótica y Home Assistant
Blog de HectorziN
Curso Home Assistant

🔐 Cloudflare Tunnel en Home Assistant y Proxmox: Acceso Externo Seguro SIN Abrir Puertos

Quieres acceder a Home Assistant, Immich, Emby o cualquier servicio de tu casa desde fuera con HTTPS, de forma gratuita y, lo más importante, sin abrir ni un solo puerto en tu router? Hoy en día, exponer nuestros servicios al exterior puede dar un poco de miedo por la seguridad, pero gracias a los Cloudflare Tunnels, el proceso se ha vuelto no solo más seguro, sino increíblemente sencillo. Olvídate de configuraciones complicadas de Docker o de pelearte con certificados SSL. En este artículo te enseño las dos mejores formas de hacerlo: una integración casi automática desde Home Assistant y un método más robusto usando un contenedor LXC en Proxmox.

IntermedioInstalación10 minVídeo incluido·Acceso remotoHome Assistant

🌐 Paso 0: El Requisito del Dominio Propio

Para que Cloudflare pueda "enrutar" el tráfico hacia tu casa de forma segura, necesitas un dominio propio. Aunque el túnel es gratuito, el dominio es lo único que requiere una pequeña inversión (unos 10€ al año).

¿Por qué comprarlo directamente en Cloudflare? Si compras el dominio en Cloudflare, te ahorras configurar las zonas DNS. Todo queda integrado y la validación de los túneles es prácticamente automática. En el panel de Cloudflare, vas a Registration -> Register Domains, buscas uno que te guste (ej: micajita.com) y listo.

🏠 Método 1: Cloudflare Tunnel desde Home Assistant (Casi Automático)

Este método es ideal si eres principiante o si solo te interesa exponer Home Assistant. Ya no hace falta crear túneles a mano en la web de Cloudflare ni copiar tokens complicados.

1. Instalación de la App de Cloudflare

Desde tu instancia de Home Assistant, ve a la tienda de Add-ons (ahora llamadas Apps).

  • Haz clic en los tres puntos (superior derecha) -> Repositorios.
  • Añade la URL del repositorio de Cloudflare (tienes el enlace directo en la descripción de mi vídeo).
  • Busca "Cloudflare" e instálalo.

2. Configuración y Autorización

En la pestaña de Configuración de la App:

  • Introduce el subdominio que quieras (ej: ha.tudominio.com).
  • Puedes añadir servicios adicionales indicando su URL local y puerto (ej: http://192.168.1.50:8096 para Emby).
  • Dale a Iniciar y abre el Registro (Log).
  • Copia la URL de autenticación que aparecerá, pégala en tu navegador y autoriza a Home Assistant para que gestione el túnel por ti.

En segundos, verás en tu panel de Cloudflare un túnel marcado como "Healthy". ¡Ya puedes entrar desde fuera!

🖥️ Método 2: Cloudflare Tunnel en Proxmox (El Método "Pro")

Si tienes un Homelab con múltiples servicios, no es recomendable que todos dependan de Home Assistant. Si HA se reinicia o falla, perderías el acceso a todo lo demás. La solución es un Contenedor LXC dedicado.

1. Creación del LXC con Helper Scripts

Para simplificarlo al máximo, usamos los scripts de la comunidad en helper scripts: https://community-scripts.org/scripts/cloudflared

  1. Ve a la consola de Proxmox.
  2. Pega el script de Cloudflared (usa Shift+Insert para pegar en Proxmox).
  3. Selecciona la configuración avanzada si quieres personalizar la IP estática (recomendado) y los recursos (con 512MB de RAM y 1 CPU es más que suficiente).

2. Configuración del Túnel vía CLI

Dentro de la consola del nuevo contenedor LXC:

  • Ejecuta cloudflared tunnel login. Copia el enlace que sale y autorízalo en tu navegador.
  • Crea el túnel: cloudflared tunnel create nombre-de-tu-tunel.
  • Hazlo persistente: Para que el túnel arranque solo si el LXC se reinicia, usa el comando: cloudflared service install [TU_TOKEN_AQUÍ]

3. Enrutando servicios (Ejemplo: Immich)

Desde el panel de Cloudflare (Zero Trust -> Networks -> Tunnels), selecciona tu túnel de Proxmox y añade un Public Hostname:

  • Subdominio: fotos
  • Dominio: tudominio.com
  • Service: HTTP://IP_LOCAL_DE_IMMICH:PUERTO

🛡️ Máxima Seguridad: Cloudflare Access (Zero Trust)

¿Quieres que antes de entrar a tu servicio te pida un código por email? Esto es vital para servicios sensibles como Immich o Nextcloud.

  1. En el panel de Cloudflare, ve a Zero Trust -> Access -> Applications.
  2. Añade una "Self-hosted application".
  3. Configura la URL del servicio que quieres proteger.
  4. En Policies, indica qué correos electrónicos están autorizados.
  5. Ahora, al intentar acceder, Cloudflare interceptará la petición y enviará un código de un solo uso a tu email. ¡Seguridad total!

🦆 ¿Qué pasa con DuckDNS?

Como explico en el vídeo, Cloudflare Tunnel y DuckDNS pueden convivir. Yo mantengo DuckDNS como una "puerta trasera" de emergencia. Si alguna vez el túnel falla o hay problemas con el dominio, DuckDNS me permite seguir entrando a mi servidor local.

Resumen: ¿Cuál elegir?

  • Home Assistant App: Si buscas simplicidad absoluta y rapidez.
  • Proxmox LXC: Si quieres una infraestructura robusta, independiente y profesional para tu Homelab.

Si te has quedado con dudas sobre algún comando o quieres ver cómo autorizo las ventanas en tiempo real, tienes el tutorial detallado aquí: 🔐 Cloudflare Tunnel en Home Assistant y Proxmox.

¡Espero que esta guía te ayude a securizar tu casa inteligente! Si tienes dudas, déjamelas en los comentarios del video!

Continúa aprendiendo