
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:404Reemplaza 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:
- Regístrate en una cuenta de SyncMyIP
- Agrega tu dominio a SyncMyIP
- 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.