acceso-remoto-home-assistant-gratis-cloudflare-tailscale

Cómo acceder a Home Assistant desde fuera de casa

  • 7 min

El acceso remoto permite conectarnos a Home Assistant desde fuera de nuestra red local mediante un canal autenticado y cifrado.

Sin una URL externa, una VPN o el servicio de Home Assistant Cloud, la aplicación no podrá abrir nuestra instancia desde la red móvil. Las notificaciones push pueden seguir llegando, pero no podremos consultar el panel ni actuar sobre la casa.

Para que la domótica sea realmente útil, necesitamos poder consultarla desde cualquier parte del mundo. Sin embargo, exponer un servidor local a Internet es una de las decisiones arquitectónicas más críticas a nivel de ciberseguridad. Si lo hacemos mal, estaremos abriendo la puerta de nuestra red doméstica a botnets y ataques automatizados.

Vamos a analizar las vías principales, gratuitas y de pago, y el problema que introduce el CG-NAT en las conexiones domésticas.

El problema de abrir puertos sin HTTPS

La forma más básica (y peligrosa) de acceder a un servidor interno desde el exterior es hacer un Port Forwarding (Redirección de puertos) en nuestro router.

Consistiría en decirle al router: “Cualquier petición externa que llegue a mi IP pública por el puerto 8123, envíasela a la IP local de Home Assistant”.

Para hacerlo correctamente, necesitamos implementar cifrado HTTPS (SSL/TLS). Tradicionalmente, esto se hacía mediante la Vía Clásica.

Jamás debes hacer esto con Home Assistant sin cifrado. Si expones el puerto 8123 en texto plano (HTTP), cualquier persona que intercepte tu tráfico en una red WiFi pública podrá leer tu contraseña. Además, los bots que escanean continuamente el rango de IPs de Internet tardarán menos de 5 minutos en encontrar tu servidor e intentar reventarlo por fuerza bruta.

Vía 1: DuckDNS, NGINX y Let’s Encrypt

Este ha sido el método estándar de la comunidad maker durante años. Dado que la mayoría de los proveedores de Internet nos asignan una IP pública dinámica (cambia cada vez que reiniciamos el router), necesitamos un servicio de DNS dinámico para saber siempre “dónde” está nuestra casa.

  1. DuckDNS: Nos proporciona un subdominio gratuito y una aplicación que actualiza nuestra IP pública.
  2. Proxy inverso: Instalamos una aplicación como NGINX Proxy Manager.
  3. Certificados (Let’s Encrypt): El proxy solicita un certificado SSL gratuito a Let’s Encrypt para cifrar la conexión.
  4. Router: Abrimos el puerto 443 (HTTPS) en nuestro router y lo redirigimos al NGINX. NGINX recibe la petición cifrada, la descifra y se la pasa a Home Assistant a nivel local.

El obstáculo del CG-NAT

Aunque la vía clásica es excelente a nivel formativo, en la actualidad choca con un problema técnico insalvable en muchos hogares españoles.

Debido al agotamiento de IPv4, muchos operadores utilizan CG-NAT (Carrier-Grade NAT). En ese caso no tenemos una dirección IPv4 pública propia, sino que compartimos la salida del operador con otros clientes.

Si estamos tras CG-NAT, abrir puertos en nuestro router no permite recibir conexiones desde Internet, porque el NAT del operador está por delante. Necesitaremos una IP pública, una VPN o un túnel saliente.

Vía 2: Cloudflare Tunnel

Si no podemos abrir puertos de fuera hacia dentro, la solución es iniciar la conexión de dentro hacia fuera.

Mediante la aplicación cloudflared, nuestro servidor inicia un túnel cifrado persistente de salida hacia Cloudflare.

Cuando tú, desde la calle, tecleas la dirección de tu casa en el móvil, no te conectas a tu router. Te conectas a Cloudflare. Y Cloudflare, a través del túnel que ya estaba abierto, te enruta hacia tu Home Assistant.

Ventajas de Cloudflare Tunnel

  • No hay que abrir NINGÚN puerto en el router. Tu firewall doméstico permanece blindado.
  • Atraviesa el CG-NAT sin problemas, ya que es una conexión de salida, exactamente igual que cuando navegas por una página web.
  • La IP pública queda oculta: Las conexiones entrantes terminan en Cloudflare y recorren el túnel hasta Home Assistant.
  • El certificado SSL lo gestiona Cloudflare automáticamente.

El único inconveniente

Para este montaje necesitas un dominio que puedas gestionar en Cloudflare. El precio depende de la extensión y del registrador; conviene mirar también la renovación, porque las ofertas del primer año suelen ser bastante más baratas que los siguientes.

Vía 3: una VPN con WireGuard o Tailscale

Existe una tercera vía para los usuarios que no quieren comprar un dominio y que, además, no quieren que su Home Assistant sea accesible públicamente en Internet bajo ninguna URL.

La solución es montar una VPN (Red Privada Virtual). Una de las opciones más interesantes es WireGuard, un protocolo moderno, rápido y ligero que conecta nuestros dispositivos mediante pares de claves.

WireGuard directo

Podemos instalar un servidor WireGuard en nuestra red y configurar un perfil para cada móvil u ordenador autorizado. Es una solución eficiente y bajo nuestro control, pero necesita que uno de sus extremos sea accesible desde Internet: normalmente, una IPv4 pública con un puerto UDP redirigido o una dirección IPv6 accesible con la regla de firewall adecuada.

Si nuestra conexión está detrás de CG-NAT, WireGuard directo no puede recibir conexiones entrantes mediante IPv4. Tendríamos que solicitar una IP pública al operador, utilizar IPv6 si está disponible o apoyarnos en un servidor externo, como un VPS. Por tanto, WireGuard no elimina por sí solo el problema que vimos antes.

Además, debemos intercambiar las claves, asignar direcciones y mantener la configuración de cada dispositivo. No es especialmente complejo, pero exige entender qué equipo actúa como servidor y cómo llega el tráfico hasta él.

Tailscale: WireGuard sin configurar la red a mano

Tailscale utiliza WireGuard para cifrar el tráfico, pero añade autenticación, descubrimiento de dispositivos y coordinación automática de las conexiones. Intenta establecer una comunicación directa atravesando NAT y, cuando no puede, utiliza servidores DERP como relé sin descifrar nuestro tráfico.

Esto permite utilizar una VPN basada en WireGuard incluso detrás de CG-NAT, sin abrir puertos ni desplegar un VPS propio.

Cómo funciona el despliegue con Tailscale

  1. Instalas la aplicación de Tailscale en Home Assistant y autorizas el nuevo dispositivo en tu cuenta.
  2. Instalas la App de Tailscale en tu teléfono móvil y te autenticas con la misma cuenta.
  3. Tailscale crea una red privada virtual por encima de Internet. A tu Home Assistant se le asigna una IP privada especial (ej. 100.85.x.x).

Cuando estás en la calle, el móvil puede mantener Tailscale conectado y acceder a Home Assistant mediante su IP o nombre dentro de la tailnet. No hace falta activar y desactivar la VPN en cada uso si preferimos dejarla siempre conectada.

El servidor no queda publicado bajo una URL abierta a Internet ni expone un puerto en el router. A cambio, cada dispositivo desde el que queramos entrar debe pertenecer a nuestra red de Tailscale.

La vía oficial de pago: Nabu Casa

Aunque este artículo se centra en métodos gratuitos (maker), no podemos obviar la solución oficial.

Nabu Casa ofrece Home Assistant Cloud por 7,50 € al mes o 75 € al año en la Unión Europea. Proporciona acceso remoto sin configurar dominios ni aplicaciones adicionales. Además de darte acceso remoto seguro y sin abrir puertos, la suscripción permite integrar nativamente Alexa y Google Assistant, y financia directamente el desarrollo de Home Assistant. Si no quieres lidiar con redes y DNS, es la opción que debes tomar.