Reverse Proxy Home Assistant на Synology (DSM 7)

Настраиваем безопасный доступ к Home Assistant через домен и HTTPS на Synology NAS: reverse proxy, WebSocket и доверенные прокси в configuration.yaml.

В этой инструкции показано, как настроить Reverse Proxy на Synology DSM для Home Assistant, чтобы получить доступ по доменному имени и HTTPS (без порта 8123 в адресе) и при этом сохранить корректную работу WebSocket.

Сценарий из практики: Home Assistant установлен как VM (Generic x86-64) на Synology NAS (DSM 7), но шаги аналогичны и для контейнера/другой установки — главное, чтобы Synology могла достучаться до http://IP_HA:8123.


Требования (до настройки)

  • Белый внешний IP или нормальный DDNS.
  • Домен и A‑запись на ваш внешний IP.
  • Проброс портов на роутере на Synology:
    • TCP/80 (для Let’s Encrypt и/или редиректа)
    • TCP/443 (для доступа по HTTPS)
  • Home Assistant доступен из локальной сети по http://IP_HA:8123.

Шаг 1. Создать правило Reverse Proxy в Synology DSM

Откройте:
Панель управления → Портал для входа → Дополнительно → Обратный прокси.

Нажмите Создать и добавьте правило (пример через поддомен).

Вариант A (рекомендую): только HTTPS (без отдельного HTTP правила)

Source (вход):

  • Protocol: HTTPS
  • Hostname: ha.example.ru (ваш поддомен)
  • Port: 443

Destination (куда проксируем):

  • Protocol: HTTP
  • Hostname: IP_HA (IP виртуалки/контейнера HA в LAN)
  • Port: 8123

Почему так лучше: наружу отдаём только HTTPS, а внутрь ходим по HTTP в локалке.

Вариант B (если хотите ещё и HTTP): отдельное правило HTTP→HA

Можно добавить отдельное правило HTTP на 80, но безопаснее делать редирект на HTTPS (если ваша схема это поддерживает), либо вообще не публиковать HTTP наружу.


Шаг 2. Включить WebSocket (обязательно)

В созданном правиле откройте вкладку Пользовательский заголовок и добавьте WebSocket-заголовки через “Create → WebSocket”.

Это критично для интерфейса Home Assistant, потому что часть функций и “живые” обновления идут через WebSocket.


создание WebSocket

Дополнительные настройки оставляете без изменений.

Шаг 3. Получить сертификат Let’s Encrypt и привязать к домену

Откройте:
Панель управления → Безопасность → Сертификат.

  1. Нажмите ДобавитьПолучить сертификат в Let’s Encrypt.
  2. Укажите ваш домен (например ha.example.ru).
  3. Дождитесь выпуска сертификата.

Далее нажмите Настройки (сопоставление служб и сертификатов) и назначьте сертификат на ваш домен/поддомен, который используется в Reverse Proxy.


Шаг 4. Настройка Home Assistant (trusted_proxies)

Чтобы Home Assistant корректно принимал запросы за reverse proxy, добавьте в configuration.yaml блок http:.

Файл обычно: /config/configuration.yaml

Пример (минимально рабочий):

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 192.168.88.10  # IP вашей Synology (лучше конкретный IP)
  ip_ban_enabled: true
  login_attempts_threshold: 5

Примечания:

  • Можно указать всю подсеть (например 192.168.88.0/24), но безопаснее — только IP Synology, чтобы не “доверять” всем хостам LAN.
  • ip_ban_enabled и login_attempts_threshold защищают от перебора паролей.

Перезапустите Home Assistant после изменения конфигурации.


Шаг 5. Проверка

  1. Откройте в браузере:
    https://ha.example.ru
  2. Убедитесь, что:
  • страница открывается без порта 8123,
  • авторизация работает,
  • интерфейс не “отваливается” и нет проблем с “живыми” обновлениями (это косвенный признак, что WebSocket работает).

Рекомендации по безопасности (очень желательно)

  • Включите 2FA для пользователей Home Assistant перед публикацией в интернет.
  • Не открывайте наружу порт 8123 напрямую, используйте только Reverse Proxy.
  • Следите за обновлениями DSM и Home Assistant.

FAQ

Нужно ли делать два правила (HTTP и HTTPS)?

Нет. В большинстве случаев достаточно одного HTTPS правила. HTTP имеет смысл только для редиректа или специфичных сценариев.

Что писать в trusted_proxies?

Минимально — IP Synology NAS, которая является reverse proxy. Если у вас впереди ещё один прокси (например, отдельный nginx), тогда доверяйте только его, а не всей подсети.

Read more

Подключение к удалённому серверу по SSH из Windows (CMD, PowerShell, WSL, PuTTY)

Гайд по SSH-клиентам в Windows: используем встроенную команду `ssh` в PowerShell/CMD (Windows 10/11), полноценный Linux-терминал через WSL или классический PuTTY. Примеры команд для подключения, отправки скриптов и использования sudo без tty.

By Evgeny Shmelev

Включение/отключение Windows ПК через Home Assistant (Wake-on-LAN + RPC Shutdown)

Создаём единый переключатель в Home Assistant для управления Windows-компьютером. Включение через стандартный Wake-on-LAN, выключение через аддон RPC Shutdown. Инструкция по правке реестра Windows для удалённого выключения.

By Evgeny Shmelev