Home Assistant acceso remoto sin abrir puertos: Configuración segura con Cloudflare Tunnel

Home Assistant acceso remoto sin abrir puertos: Configuración segura con Cloudflare Tunnel

Volver al Blog
Hero Image

Acceder a tu instancia de Home Assistant de forma remota puede ser un desafío, especialmente cuando se trata de direcciones IP dinámicas y preocupaciones de seguridad. Abrir puertos en tu router crea posibles vulnerabilidades de seguridad, mientras que las IPs dinámicas hacen que las soluciones DDNS tradicionales sean poco confiables. Afortunadamente, hay una mejor manera: usar Cloudflare Tunnel para acceso remoto seguro sin abrir ningún puerto.

¿Por qué evitar abrir puertos?

Abrir puertos en tu router expone tu instancia de Home Assistant directamente a internet, creando posibles puntos de entrada para atacantes. Además, la mayoría de las conexiones de internet residenciales usan direcciones IP dinámicas que cambian periódicamente, haciendo que los métodos tradicionales de acceso remoto sean poco confiables.

Lo que necesitarás

  • Una instalación de Home Assistant (Supervised, Container o Core)
  • Un nombre de dominio (puedes usar un subdominio gratuito de Cloudflare)
  • Cuenta de Cloudflare
  • Cuenta de SyncMyIP (opcional pero recomendada)

Configurando Cloudflare Tunnel

Paso 1: Instalar Cloudflared

Primero, instala el cliente de Cloudflare Tunnel (cloudflared) en tu servidor de Home Assistant:

curl -L https://bin.equinox.io/c/VdrWdbjqyF/cloudflared-stable-linux-amd64.deb -o cloudflared.deb
sudo dpkg -i cloudflared.deb

Paso 2: Autenticarte con Cloudflare

Inicia sesión en tu cuenta de Cloudflare:

cloudflared tunnel login

Esto abrirá una ventana del navegador donde te autenticarás con tus credenciales de Cloudflare.

Paso 3: Crear un túnel

Crea un nuevo túnel con un nombre descriptivo:

cloudflared tunnel create home-assistant-tunnel

Este comando genera un archivo JSON de credenciales en ~/.cloudflared/.

Paso 4: Configurar el túnel

Crea un archivo de configuración en ~/.cloudflared/config.yml:

 tunnel: home-assistant-tunnel
ingress:
  - hostname: tu-dominio.com
    service: http://localhost:8123
  - service: http_status:404

Reemplaza tu-dominio.com con tu dominio real.

Paso 5: Enrutar tu dominio

Asocia tu dominio con el túnel:

cloudflared tunnel route dns home-assistant-tunnel tu-dominio.com

Paso 6: Ejecutar el túnel

Inicia el servicio del túnel:

cloudflared tunnel run home-assistant-tunnel

Configurando SyncMyIP para DNS dinámico

Aunque Cloudflare Tunnel maneja la conexión, SyncMyIP puede ayudar a gestionar los registros DNS de tu dominio:

  1. Regístrate en una cuenta de SyncMyIP
  2. Agrega tu dominio a SyncMyIP
  3. Configura tu router o dispositivo para actualizar SyncMyIP con tu IP actual

Haciéndolo permanente

Para ejecutar Cloudflare Tunnel como servicio:

sudo cloudflared service install
sudo systemctl start cloudflared
sudo systemctl enable cloudflared

Beneficios de seguridad

  • No es necesario abrir puertos en tu router
  • Todo el tráfico está encriptado de extremo a extremo
  • La protección DDoS de Cloudflare se aplica automáticamente
  • Tu dirección IP doméstica permanece oculta

Consejos para solución de problemas

  • Asegúrate de que Home Assistant sea accesible localmente antes de configurar el túnel
  • Verifica que cloudflared tenga los permisos adecuados para ejecutarse como servicio
  • Comprueba la configuración DNS de tu dominio en Cloudflare
  • Monitorea el panel de Cloudflare para el estado de conexión del túnel

Con esta configuración de home assistant acceso remoto sin abrir puertos, tendrás acceso seguro a tu sistema de automatización desde cualquier lugar sin comprometer la seguridad de tu red.