−25%

на річну оплату Windows, до 31.10. До тарифів

EQVPS

VPS для віддаленого доступу до Home Assistant

Home Assistant з будь-якої точки світу без прокидання портів удома: VPS тримає WireGuard і HTTPS, а дім сам підключається до нього. Налаштування, ціна, межі.

Хочеться відкрити дашборд Home Assistant з електрички, а роутер проти: провайдер тримає вас за CGNAT, або прокидання технічно можливе, але вішати всю домашню мережу на інтернет заради однієї лампочки не хочеться. Маленький VPS розв'язує обидві проблеми. Дім сам підключається назовні до VPS через WireGuard, а публічне обличчя — лише цей сервер: зі справжнім доменом, справжнім сертифікатом і без жодного домашнього порту, відкритого світу.

Як це влаштовано

phone ──HTTPS──> VPS (Caddy :443) ──WireGuard──> Home Assistant :8123 at home
                       ▲
              home box dials out on UDP 51820

На VPS працюють дві речі: сервер WireGuard і Caddy як reverse proxy. Удома клієнт WireGuard (на хості Home Assistant, на Raspberry Pi або на роутері) тримає тунель відкритим. Коли ви заходите на https://ha.example.com, Caddy передає запит тунелем на 10.8.0.2:8123.

Що знадобиться

1. Сервер WireGuard на VPS

apt update && apt install -y wireguard caddy
wg genkey | tee /etc/wireguard/server.key | wg pubkey > /etc/wireguard/server.pub
chmod 600 /etc/wireguard/server.key

cat > /etc/wireguard/wg0.conf <<EOF
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = $(cat /etc/wireguard/server.key)

[Peer]
# the home side
PublicKey = HOME_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32
EOF

systemctl enable --now wg-quick@wg0
ufw allow 51820/udp && ufw allow 80,443/tcp

2. Домашній бік

На будь-якій Linux-машині вдома (або в аддоні-клієнті WireGuard для Home Assistant) створіть пір. Keepalive тут важливий: він тримає тунель відкритим крізь NAT домашнього роутера.

[Interface]
Address = 10.8.0.2/24
PrivateKey = HOME_PRIVATE_KEY

[Peer]
PublicKey = SERVER_PUBLIC_KEY
Endpoint = ha-vps.example.com:51820
AllowedIPs = 10.8.0.1/32
PersistentKeepalive = 25

Якщо клієнт WireGuard стоїть не на тій машині, де Home Assistant, перенаправте 10.8.0.2:8123 на хост HA в локальній мережі — або простіше: поставте клієнт просто на хост HA.

3. HTTPS через Caddy

cat > /etc/caddy/Caddyfile <<'EOF'
ha.example.com {
    reverse_proxy 10.8.0.2:8123
}
EOF
systemctl reload caddy

Caddy сам отримає сертифікат і обробить WebSocket-з'єднання, на якому тримається мобільний застосунок Home Assistant.

4. Дозвольте Home Assistant довіряти проксі

Без цього HA відхиляє запити через проксі. У configuration.yaml:

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 10.8.0.1

Перезапустіть Home Assistant, відкрийте https://ha.example.com і вкажіть цю адресу як зовнішню в мобільному застосунку.

Чесно про компроміси

HTTPS завершується на VPS, тож цей сервер бачить трафік дашборда у відкритому вигляді, перш ніж той піде в тунель. Сервер ваш — у цьому й сенс, — але ставтеся до нього як до частини домашньої мережі: лише SSH-ключі, автооновлення, нічого іншого на ньому не запускати. Пароль і двофакторний вхід самого Home Assistant залиште увімкненими: проксі — не шар автентифікації.

Платний офіційний хмарний сервіс від команди Home Assistant робить те саме без жодного обслуговування й заодно фінансує проєкт. Якщо сервер вам не потрібен узагалі — це цілком гідний варіант. Шлях через VPS виграє, коли ви вже тримаєте власні сервіси, хочете свій домен або плануєте згодом сховати за тим самим тунелем й інші домашні сервіси.

Корисні інструкції

Готові розгорнути? Оплата криптою, без KYC — сервер за хвилину.

Розгорнути →

Часті питання

Навіщо VPS, якщо можна прокинути порт на роутері?

Багато домашніх підключень стоять за CGNAT — прокидати просто нічого. А навіть якщо можна, виставляти домашній IP і роутер в інтернет — зайвий ризик. З VPS дім сам відкриває вихідне WireGuard-з'єднання, а назовні дивиться лише маленький сервер, який перестворюється за хвилини.

Який тариф потрібен?

Вистачить Nano-IP ($8/міс) — він лише пересилає трафік і тримає HTTPS. Потрібен тариф із виділеним IP: VPS має приймати вхідний HTTPS і UDP-порт WireGuard, а NAT-тарифи не приймають вхідних з'єднань, окрім вашого SSH-порту.

Чи бачить VPS мій трафік Home Assistant?

HTTPS завершується на VPS, тож ваш сервер бачить розшифровані запити, перш ніж відправити їх у тунель. Це та сама модель довіри, що й у будь-якого reverse proxy, — тільки сервер ваш. Вбудований вхід Home Assistant і двофакторку залиште увімкненими за будь-яких умов.

Чи буде затримка?

Один зайвий хоп. Від дому в Європі до VPS у Німеччині чи Фінляндії це зазвичай 10–40 мс туди й назад — на дашбордах, вимикачах і знімках із камер непомітно. Відчути можна хіба що живе відео.

Що буде, якщо VPS впаде?

Зникне віддалений доступ, а автоматизації вдома працюватимуть далі — Home Assistant ніколи не залежав від VPS. Усередині дому все працює як раніше за локальною адресою.

Коментарі

Поки немає коментарів. Будьте першим.

Залишити коментар

Коментарі проходять модерацію перед публікацією.