prefixkit Вопрос инженеруСпросить Поддержать EN

Умный дом

Удалённый доступ к Home Assistant

Как открыть Home Assistant из интернета: готовые конфиги Cloudflare Tunnel, nginx, Caddy и Nginx Proxy Manager, блок http: с trusted_proxies (иначе ошибка 400), проброс порта с HTTPS и доступ через WireGuard.

Способ

Конфиги собираются на этой странице; домен и адреса никуда не отправляются.

Какой способ выбрать

СпособПорты на роутереСложностьКогда подходит
Cloudflare Tunnelне нужнынизкаяНет белого IP или провайдер за CGNAT. Нужен свой домен в Cloudflare.
nginx / Caddy / NPM80, 443средняяЕсть белый IP и уже есть сервер с прокси для других сервисов.
Проброс порта443низкаяБыстро, но страница входа открыта всему интернету.
WireGuard1 UDPсредняяСамый безопасный: Home Assistant не виден из интернета. Не подходит для голосовых ассистентов.
Nabu Casaне нужныминимальнаяПлатно, зато без настройки, и деньги идут на развитие Home Assistant.

Ошибка 400: Bad Request за прокси

Самая частая проблема: прокси работает, а Home Assistant отвечает 400, в журнале — “A request from a reverse proxy was received… not set-up for reverse proxies”. Home Assistant по умолчанию не доверяет прокси. Нужно добавить use_x_forwarded_for: true и адрес прокси в trusted_proxies — генератор выше делает это для каждого способа. Второе частое — нет поддержки WebSocket в прокси: страница открывается и сразу пишет «Потеряно соединение».

Частые вопросы

Как понять, есть ли у меня белый IP

Сравните адрес на странице Мой IP с WAN-адресом в роутере. Если в роутере адрес из 100.64.0.0/10, 10.x или 192.168.x — вы за NAT провайдера, проброс портов не сработает, выбирайте Cloudflare Tunnel или WireGuard через VPS.

Проверить, открыт ли порт снаружи

После настройки откройте проверку портов и укажите домен: 443 должен быть открыт, 8123 — закрыт, если вы пользуетесь прокси.

Мобильное приложение не переключается между домом и улицей

Задайте внутренний и внешний адрес (блок homeassistant: выше) и в приложении укажите домашнюю сеть Wi-Fi в настройках сервера. Для этого приложению нужен доступ к геопозиции.

Идея?