−25%

за Windows при годишно плащане, до 31.10. Към плановете

EQVPS

VPS за отдалечен достъп до Home Assistant

Достъп до Home Assistant отвсякъде без отваряне на портове вкъщи: малък VPS пуска WireGuard и HTTPS, а домът ти се свързва навън към него. Настройка, цена, ограничения.

Искаш да отвориш таблото на Home Assistant от влака. Рутерът казва не: доставчикът те е сложил зад CGNAT, или пренасочването на портове е технически възможно, но не искаш да закачиш цялата домашна мрежа в интернет, за да светнеш една лампа. Малък VPS решава и двете. Домът ти се свързва навън към него през WireGuard, а VPS-ът е единственото публично лице: с истински домейн, истински сертификат и нищо вкъщи, което да слуша света.

Как работи схемата

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) създай peer-а. 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 да вярва на proxy-то

Без това HA отхвърля заявките, минали през proxy. В configuration.yaml:

http:
  use_x_forwarded_for: true
  trusted_proxies:
    - 10.8.0.1

Рестартирай Home Assistant, отвори https://ha.example.com и задай този URL като външен адрес в мобилното приложение.

Компромисите, честно

HTTPS свършва на VPS-а, така че този сървър вижда трафика от таблото нешифрован, преди да влезе в тунела. Сървърът е твой и точно това е смисълът, но го третирай като част от домашната мрежа: само SSH ключове, включени обновления и нищо друго да не работи на него. Остави включени паролата и двуфакторния вход на Home Assistant; proxy-то не е слой за автентикация.

Официалната платена облачна услуга на екипа на Home Assistant върши същата работа без никаква поддръжка и финансира проекта. Ако изобщо не искаш да поддържаш сървър, това е напълно добър отговор. Пътят с VPS печели, когато вече хостваш сам, искаш собствен домейн или смяташ по-късно да сложиш и други домашни услуги зад същия тунел.

Свързани ръководства

Готов за deploy? Плати в crypto, без KYC — онлайн за около минута.

Deploy-ни сега →

Въпроси

Защо VPS вместо пренасочване на порт в рутера?

Много домашни връзки са зад NAT на ниво доставчик (CGNAT), така че просто няма порт за пренасочване. Дори когато има, излагането на домашния IP и рутера в интернет е риск, от който нямаш нужда. С VPS домът отваря изходяща WireGuard връзка, а единственото, което гледа към интернет, е малък сървър, който можеш да изградиш наново за минути.

Кой план ми трябва?

Nano-IP ($8/месец) е напълно достатъчен: той само препраща трафик и терминира HTTPS. Трябва ти план с dedicated IP, защото VPS-ът трябва да приема входящ HTTPS и UDP порт за WireGuard; NAT плановете не приемат входящи връзки освен твоя SSH порт.

Вижда ли VPS-ът трафика ми към Home Assistant?

HTTPS се терминира на VPS-а, така че сървърът, който контролираш, вижда заявките разшифровани, преди да ги прати в тунела. Това е същият модел на доверие като при всеки reverse proxy; разликата е, че машината е твоя. Във всеки случай остави включени собствения вход и двуфакторната автентикация на Home Assistant.

Ще добави ли забавяне?

Един допълнителен hop. От дом в Европа до VPS в Германия или Финландия това обикновено е 10–40 ms двупосочно, незабележимо при табла, ключове и снимки от камери. Само при живо видео може да го усетиш.

Какво става, ако VPS-ът падне?

Отдалеченият достъп спира; домашните автоматизации продължават да работят, защото самият Home Assistant никога не е зависел от VPS-а. Вкъщи всичко работи както преди на локалния адрес.

Коментари

Още няма коментари. Бъди първият.

Остави коментар

Коментарите се модерират преди да се появят.