Du vil åbne dit Home Assistant-dashboard i toget. Routeren siger nej: udbyderen sætter dig bag carrier-grade NAT, eller port forwarding kan godt lade sig gøre, men du vil helst ikke hænge hele hjemmenetværket ud på internettet for at tænde en lampe. En lille VPS løser begge dele. Dit hjem forbinder udad til den via WireGuard, og VPS'en er det eneste offentlige ansigt: med et rigtigt domæne, et rigtigt certifikat og intet derhjemme, der lytter mod omverdenen.
Sådan fungerer opsætningen
phone ──HTTPS──> VPS (Caddy :443) ──WireGuard──> Home Assistant :8123 at home
▲
home box dials out on UDP 51820
VPS'en kører to ting: en WireGuard-server og Caddy som reverse proxy. Derhjemme holder en WireGuard-klient (på Home Assistant-værten, en Raspberry Pi eller routeren) en tunnel åben. Når du besøger https://ha.example.com, sender Caddy forespørgslen gennem tunnelen til 10.8.0.2:8123.
Det skal du bruge
- En plan med dedikeret IP. VPS'en skal modtage indgående 443 og UDP 51820. Nano-IP til $8 om måneden er mere end nok: den flytter nogle få kilobyte dashboardtrafik uden at få sved på panden. NAT-planer tager ikke imod indgående forbindelser ud over din personlige SSH-port (sådan fungerer NAT hos os).
- Et domæne med en A-post, der peger på VPS'ens IP.
- En WireGuard-klient derhjemme, der kan nå Home Assistant på det lokale netværk.
1. WireGuard-server på VPS'en
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. Hjemmesiden af tunnelen
Opret peeren på en vilkårlig Linux-maskine derhjemme (eller i et WireGuard-klient-add-on til Home Assistant). Keepalive er vigtig: den holder tunnelen åben gennem hjemmerouterens 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
Kører WireGuard-klienten på en anden maskine end Home Assistant, så videresend 10.8.0.2:8123 til HA-værten på dit lokale netværk; eller, nemmere, kør klienten direkte på HA-værten.
3. HTTPS med Caddy
cat > /etc/caddy/Caddyfile <<'EOF'
ha.example.com {
reverse_proxy 10.8.0.2:8123
}
EOF
systemctl reload caddy
Caddy henter certifikatet automatisk og håndterer den WebSocket-forbindelse, som Home Assistant-appen bygger på.
4. Få Home Assistant til at stole på proxyen
Uden dette afviser HA forespørgsler, der kommer via proxyen. I configuration.yaml:
http:
use_x_forwarded_for: true
trusted_proxies:
- 10.8.0.1
Genstart Home Assistant, åbn https://ha.example.com, og angiv den URL som ekstern adresse i mobilappen.
De ærlige afvejninger
HTTPS afsluttes på VPS'en, så den server ser din dashboardtrafik i klartekst, før den går ind i tunnelen. Serveren er din, og det er netop pointen, men behandl den som en del af dit hjemmenetværk: kun SSH-nøgler, opdateringer slået til, intet andet kørende på den. Hold Home Assistants adgangskode og totrinslogin slået til; proxyen er ikke et godkendelseslag.
Den betalte officielle cloudtjeneste fra Home Assistant-teamet gør det samme helt uden vedligeholdelse og finansierer projektet. Vil du slet ikke drive en server, er det et helt fint svar. VPS-vejen vinder, når du allerede selv hoster, vil have dit eget domæne eller senere vil lægge andre tjenester fra hjemmet bag den samme tunnel.
Relaterede guider
- Opsæt en WireGuard-VPN på en VPS: den fulde WireGuard-gennemgang
- Nginx reverse proxy med HTTPS: hvis du foretrækker Nginx frem for Caddy
- Sikring af en ny VPS: gør dette først på enhver maskine, der vender mod internettet
Kommentarer
Ingen kommentarer endnu. Vær den første.