Cuando instalamos Home Assistant en nuestro hogar para controlar de manera centralizada toda la domótica, debemos pensar también en cómo acceder de forma remota para usar la aplicación móvil e interactuar con todas las opciones. La forma más sencilla pero insegura es abrir un puerto en el router hacia la IP de HAOS, pero existen otras opciones que sí son mucho más seguras como usar una VPN para acceder a casa, usar un proxy inverso como Traefik o NGINX, e incluso usar Cloudflare Tunnels para acceder de forma remota y segura. Hoy en RedesZone os vamos a enseñar cómo instalar y configurar Cloudflare Tunnels en Home Assistant, para acceder de forma local y remota usando siempre un nombre de dominio.
Proteger adecuadamente el acceso web a nuestro sistema de domótica es fundamental, sobre todo si tenemos integrados relés WiFi para abrir la puerta del garaje, cerraduras inteligentes para la puerta de la calle, o directamente nuestra alarma doméstica para vigilar nuestro hogar desde cualquier lugar. Por este motivo, es muy importante pensar bien cómo acceder de forma remota pero segura, además, también hay que tener en cuenta que, en muchas ocasiones, nuestra conexión a Internet de casa está detrás de CG-NAT por lo que no podremos abrir puertos. En RedesZone os hemos explicado en detalle qué es Cloudflare Tunnel, cómo funciona, su instalación y configuración en diferentes equipos. Antes de continuar con este tutorial paso a paso de cómo configurarlo en Home Assistant, os recomendamos leer el otro tutorial donde os explicamos en detalle cómo añadir una seguridad adicional a los túneles que podemos crear, ya que podemos limitar el acceso por dirección IP de origen, rango de IP, países y muchas más opciones que tenemos en la sección de «Applications».
¿Por qué integrar Cloudflare Tunnel en Home Assistant?
Hay una gran cantidad de motivos para instalar Cloudflare Tunnel en Home Assistant, no obstante, debes tener en cuenta que, también podríamos instalarlo en un contenedor Docker, en nuestro NAS o en cualquier otro dispositivo, tal y como os hemos explicado en el otro tutorial. Los motivos para instalar y configurar este tipo de túneles son:
- Acceso local y remoto a través de un dominio a nuestra instancia del sistema de domótica. La seguridad es máxima ya que este subdominio solo lo conoceremos nosotros, usaremos HTTPS y tenemos la posibilidad de añadir filtros avanzados e incluso el firewall de la red de Cloudflare. Todo el tráfico va a pasar por Cloudflare, por lo que en caso de incidencia en su red, lógicamente nosotros también nos veríamos afectados y no podremos acceder a la instancia del sistema de domótica, no obstante, esto pocas veces sucede a lo largo del año. Como plan B, puedes montar un servidor VPN WireGuard en el sistema de domótica, y acceder con las direcciones IP locales, de esta forma, no será necesario que uses el servicio.
- No tenemos que abrir puertos en nuestro router, algo que no es nada seguro, ya que estaríamos exponiendo la interfaz gráfica de configuración a Internet. Esto es el punto fuerte de esta solución, no tenemos que abrir ningún puerto ya que se basa en conexiones inversas, perfecto para tener la máxima seguridad posible en nuestra red local doméstica. En el caso de que tengas algún tipo de servidor VPN instalado, entonces sí tendrás que abrir un puerto pero solamente hacia este servicio y nada más.
- Funciona si tu conexión utiliza CG-NAT y no puedes abrir puertos, de esta forma, podremos acceder al sistema de domótica sin problemas ya que la conexión se realizará con la infraestructura de Cloudflare. Operadores como Grupo Masmovil o DIGI entre otros, proporcionan por defecto a todos sus clientes una conexión a Internet bajo CG-NAT, por lo que no podremos acceder a servicios que tengamos en la red local desde Internet. Gracias a esta solución tan elegante, sí podremos hacerlo sin realizar complicadas configuraciones.
- No tenemos que instalar y configurar un servidor VPN, como WireGuard, OpenVPN o IPsec. No solamente no tendremos que realizar configuraciones complejas, sino que no tendremos que conectarnos a la VPN para posteriormente entrar en el sistema de domótica, simplemente con la app oficial de Home Assistant podremos acceder poniendo el dominio, y nuestras credenciales.
- No tenemos que instalar un proxy inverso como Traefik o Nginx para acceder a través de un subdominio, además, en este caso tendríamos que realizar complejas configuraciones, añadir filtros avanzados y abrir el puerto 443 en nuestro router hacia al servidor de proxy inverso. Esto es similar, pero nos lo da todo Cloudflare y no tendremos que hacer complejas configuraciones. Hay que tener en cuenta que la configuración de Traefik puede ser bastante compleja, aunque en RedesZone disponemos de tutoriales paso a paso para realizar esto muy fácilmente, pero eso sí, os recomendamos generar un certificado Wildcard para todos los subdominios y no uno específico por cada dominio, ya que entonces sí se podría filtrar el subdominio que estamos usando.
Como podéis ver, todo son ventajas si decidimos instalar un túnel de Cloudflare, además, tendremos redundancia ya que el túnel se conectará tanto a los servidores de Madrid como de Barcelona, por si en algún momento hay problemas en dichos servidores y no están disponibles. El único hándicap que tenemos al usar este servicio, es que la latencia de la conexión es algo más elevada que si tuviéramos una conexión directa a nuestro hogar vía proxy inverso alojado en casa, no obstante, lo cierto es que ha mejorado mucho a lo largo de los meses en comparación con las versiones antiguas. Si probaste hace un año este servicio de Cloudflare y no te convenció por la latencia de la conexión, dale una segunda oportunidad porque hemos notado una mejora bastante importante en este aspecto.
Creación de un nuevo túnel en Cloudflare
Lo primero que debemos hacer es crear un nuevo túnel en Cloudflare para asociarlo directamente con el sistema de domótica, podemos realizar toda la configuración en el panel principal hasta el final, pero eso sí, debemos tomar nota del nombre del dominio completo, del nombre del túnel creado y del token correspondiente para que se pueda conectar. En la sección de «Access / Tunnels» nos aparecerá un resumen de todos los túneles que tenemos ahora mismo, y pinchamos en «Create a tunnel«.
Aquí le daremos un nombre al túnel, es recomendable que sea un nombre descriptivo para saber si hay problemas, ya que podemos recibir correos de confirmación por si el túnel se cae y se vuelve a levantar, por lo que podemos monitorizar si hay algún problema. En nuestro caso, hemos puesto de nombre de túnel «homeassistantredeszone«, tal y como podéis ver aquí. Una vez puesto el nombre, pinchamos en «Save Tunnel» y ya lo tendremos creado.
Para poder enlazar el cliente Cloudflare que instalaremos en Home Assistant con el proxy inverso, debemos copiar el token completo que nos mostrará el propio asistente de configuración. Si pinchamos en copiar, solamente tenemos que tener en cuenta el token y no lo demás, la parte de «cloudflared.exe service install» podemos obviarlo, porque esto está diseñado para instalarlo directamente en nuestro sistema operativo Windows. El resto del comando lo podemos guardar en un bloc de notas para posteriormente ponerlo en el sistema de domótica.
Ahora tenemos que crear el «Public Hostname«, pinchamos en el botón de «Add a public hostname» tal y como podéis ver aquí:
Ahora tenemos que rellenar la siguiente información:
- Public Hostname
- Subdomain: ponemos el subdominio que nosotros queramos, en el ejemplo hemos puesto «homeassistantredeszone«.
- Domain: elegimos el dominio que hayamos registrado en Cloudflare, podemos elegir el que queramos si tenemos varios.
- Service
- Type: HTTP
- URL: IP_privada:8123
En la siguiente captura podéis ver cómo quedaría nuestra configuración:
Si vemos el listado de «Public Hostname» podemos ver la configuración realizada anteriormente:
También podríamos poner como URL el hostname local del sistema de domótica: «homeassistant.local:8123«. Ambas opciones de configuración funcionarán perfectamente. Aunque lo normal es que la dirección IP privada del sistema no cambie, podemos poner directamente el hostname y así olvidarnos del direccionamiento IP privado.
Aquí tendrías el resumen con esta configuración que acabamos de aplicar:
Ahora que ya tenemos la configuración realizada por completo en Cloudflare Tunnels, vamos a instalar el software en el sistema de domótica y enlazarlo con los datos que hemos obtenido previamente.
Instalación y configuración en Home Assistant
En nuestro sistema de domótica lo primero que debemos hacer es irnos a la sección de «Ajustes / Complementos«, vais a ver que no tenemos ningún complemento oficial o de terceros que se llame «Cloudflare Tunnel», y es que tendremos que instalar un repositorio adicional para poder llevar a cabo la instalación. En la parte superior derecha (los tres puntos verticales), accedemos a la sección de «Repositorios«.
Se nos abrirá un desplegable para poner una URL y proceder a descargar el software que haya en dicho repositorio. Lo que debemos hacer es poner la siguiente URL:
https://github.com/brenner-tobias/ha-addons
En la siguiente galería podéis ver todo el proceso de configuración:



Ahora en la tienda de complementos ya nos aparecerá el nombre de «Cloudflared«:
Si entramos en la nueva opción que nos aparece, pinchamos en «Instalar» para proceder a instalar el complemento.
Una vez instalado, recordad habilitar las tres opciones «Iniciar en el arranque, Vigilancia y Actualización Automática», pero aún no pinchamos en «Iniciar» porque no lo hemos configurado y dará error.
Este complemento incorpora una documentación bastante extensa, no es muy complicado seguirlo, pero previamente debemos crear el túnel como os hemos explicado anteriormente. Tenemos la posibilidad de dar acceso a otros servicios que tengamos en la red local a través del propio Home Assistant, algo recomendable para no tener que crear múltiples túneles y con uno solo tenerlo listo.
En la pestaña de «Configuración» es donde debemos realizar todas las configuraciones necesarias para que el sistema de acceso remoto funcione adecuadamente. Debemos habilitar la opción de «Mostrar opciones de configuración opcionales no utilizadas«.
Ahora podemos ver todas las opciones que tenemos disponibles, muchas de ellas no tenemos que tocarlas para nada, a no ser que necesites esas opciones avanzadas, las cuales puedes ver en qué consisten en la pestaña de «Documentación».
Lo que debemos rellenar en esta configuración avanzada es:
- External Home Assistant hostname: homeassistantredeszone.dominiotuyo.com.
- Cloudflare Tunnel Name: homeassistantredeszone (puede coincidir o no con el hostname, depende de cómo lo hayas configurado).
- Cloudflare Tunnel Token: el token largo que hemos copiado antes al crear el túnel.
En la siguiente captura podéis ver la configuración realizada. Ahora pinchamos en «Guardar» y en la sección de «Información» procedemos a pinchar en el botón de «Iniciar«.
En la pestaña de «Registro» podemos ver que el túnel se ha establecido correctamente, y está listo para funcionar.
En el menú principal de Cloudflare podemos ver que el túnel que acabamos de configurar está levantado y el estado es de «HEALTHY», tal y como podéis ver aquí:
Si ahora accedemos al dominio configurado anteriormente «https://homeassistantredeszone.dominiotuyo.com» deberíamos poder acceder a nuestra instancia del sistema de domótica, sin embargo, nos devolverá un error 400 debido a que tenemos que realizar una configuración adicional.
Tenemos que irnos a la sección de «File Editor» y editar el archivo de configuración «configuration.yaml» y poner el siguiente código:
#Configuracion para el Cloudflare
http:
use_x_forwarded_for: true
trusted_proxies:
- 172.16.0.0/12
ip_ban_enabled: true
login_attempts_threshold: 3
El complemento se encuentra instalado realmente en un contenedor Docker en HAOS, y es necesario dar acceso a la subred predeterminada «172.16.0.0/12» para que funcione correctamente. También hemos aprovechado para poner un sistema de baneo de direcciones IP si intentan realizar varios inicios de sesión erróneos.
Una vez configurado, pinchamos en «Guardar» y posteriormente en el menú de «Herramientas para desarrolladores» pinchamos en «Verificar configuración«, nos dirá que todo está correcto, y ahora pinchamos en «Reiniciar» y elegimos la segunda opción «Reiniciar Home Assistant» en color amarillo.


Cuando se reinicie, tendremos acceso a nuestra instancia del sistema de domótica con el subdominio que hemos configurado, tal y como podéis ver aquí:
Como podéis ver, usar Cloudflare Tunnels nos permitirá acceder a nuestra instancia del sistema operativo de domótica de forma fácil, segura, y sobre todo, muy rápida gracias a la infraestructura del gigante de Internet. Una vez que hayamos configurado todo, simplemente con poner el dominio que hemos configurado en la aplicación móvil podremos acceder de forma local y también remota, perfecto para no tener que conectarnos a la VPN o realizar otro tipo de técnicas para acceder remotamente. Un aspecto muy importante, es que este sistema funciona si tu conexión está detrás de CG-NAT, y también podrías acceder a otros recursos de la red local usando como túnel principal que va desde Home Assistant. Por ejemplo, podrías acceder a la interfaz web de tu router, al servidor NAS y cualquier servicio web.
Contras de usar Cloudfare
Pese a que hemos visto que utilizar Cloudfare para acceder a Home Assistant tiene grandes ventajas y recomendamos su uso de forma clara, existen unas pequeñas contras que podrían echarte para atrás a la hora de comenzar su instalación, por lo que es interesante que las leas antes, y así evitar perder el tiempo.
- Complejidad de configuración: usuarios que no están familiarizados con la red, DNS y proxies así como informática en general pueden tener serias dudas y problemas para su configuración, por lo que no será una tarea sencilla, pese a que a muchos les parezca que sí, y necesitarán ayuda.
- Retrasos y latencia: pese a que no será mucha, el redirigir el tráfico a través de un servidor como Cloudfare producirá algo de latencia en la red, siendo esta, por tanto, más lenta. Algo que sucederá, sobre todo, en situaciones de alta demanda.
- Restricciones de seguridad y acceso: Cloudfare es bastante sensible ante ubicaciones o dispositivos desconocidos, por lo que acceder desde un lugar distinto al habitual o con un equipo no común podría bloquear nuestra IP e impedir el acceso.
- Dependencia de un tercero: un poco en la misma línea que la latencia, el depender de un servidor externo por el que transcurren los datos nos hace depender, a su vez, de la disponibilidad. Si este se cae, también lo haremos nosotros.
- Coste: la versión estándar es gratuita, pero si necesitamos algo más avanzado tendremos que pagar por ello, por tanto, será un coste añadido.
Considerando estos puntos, podrás analizar mejor si esto es lo que estás buscando, o, por el contrario, no habías caído en alguno de ellos, el cual es importante para ti, impidiendo que lo uses, aunque la verdad es que los pros superan a las contras, y en mi caso, al menos, ninguna es tan relevante, aunque haya que mencionarlas.