Du willst das Home-Assistant-Dashboard aus dem Zug öffnen, aber dein Router spielt nicht mit: Der Provider packt dich hinter Carrier-Grade-NAT, oder eine Portfreigabe wäre zwar möglich, aber du willst nicht dein ganzes Heimnetz ins Internet hängen, nur um eine Lampe zu schalten. Ein kleiner VPS löst beides. Dein Zuhause verbindet sich per WireGuard nach außen zu ihm, und das einzige öffentliche Gesicht ist dieser Server – mit echter Domain, echtem Zertifikat und ohne einen einzigen Port zu Hause, der der Welt zuhört.
So funktioniert das Setup
phone ──HTTPS──> VPS (Caddy :443) ──WireGuard──> Home Assistant :8123 at home
▲
home box dials out on UDP 51820
Auf dem VPS laufen zwei Dinge: ein WireGuard-Server und Caddy als Reverse Proxy. Zu Hause hält ein WireGuard-Client (auf dem Home-Assistant-Host, einem Raspberry Pi oder deinem Router) den Tunnel offen. Rufst du https://ha.example.com auf, reicht Caddy die Anfrage durch den Tunnel an 10.8.0.2:8123 weiter.
Was du brauchst
- Einen Tarif mit eigener IP. Der VPS muss eingehend 443 und UDP 51820 annehmen. Nano-IP für $8 im Monat ist mehr als genug – er schiebt ein paar Kilobyte Dashboard-Traffic und kommt nicht mal ins Schwitzen. NAT-Tarife nehmen außer deinem persönlichen SSH-Port keine eingehenden Verbindungen an (so funktioniert NAT hier).
- Eine Domain mit A-Record auf die IP des VPS.
- Einen WireGuard-Client zu Hause, der Home Assistant im LAN erreicht.
1. WireGuard-Server auf dem 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. Die Heimseite
Leg auf einem beliebigen Linux-Rechner zu Hause (oder in einem WireGuard-Client-Add-on für Home Assistant) den Peer an. Das Keepalive ist wichtig: Es hält den Tunnel durch das NAT deines Heimrouters offen.
[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
Läuft der WireGuard-Client auf einem anderen Rechner als Home Assistant, leite 10.8.0.2:8123 an den HA-Host im LAN weiter – oder einfacher: Installier den Client direkt auf dem HA-Host.
3. HTTPS mit Caddy
cat > /etc/caddy/Caddyfile <<'EOF'
ha.example.com {
reverse_proxy 10.8.0.2:8123
}
EOF
systemctl reload caddy
Caddy holt das Zertifikat automatisch und kümmert sich um die WebSocket-Verbindung, auf die die Home-Assistant-App angewiesen ist.
4. Home Assistant dem Proxy vertrauen lassen
Ohne diesen Schritt lehnt HA Anfragen über den Proxy ab. In configuration.yaml:
http:
use_x_forwarded_for: true
trusted_proxies:
- 10.8.0.1
Starte Home Assistant neu, öffne https://ha.example.com und trag diese URL in der Mobile-App als externe Adresse ein.
Die ehrlichen Kompromisse
HTTPS endet auf dem VPS, also sieht dieser Server deinen Dashboard-Traffic im Klartext, bevor er in den Tunnel geht. Es ist dein Server, darum geht es ja – aber behandle ihn wie einen Teil deines Heimnetzes: nur SSH-Schlüssel, Updates an, sonst nichts darauf laufen lassen. Lass Passwort und Zwei-Faktor-Login von Home Assistant aktiv; der Proxy ist keine Authentifizierungsschicht.
Der kostenpflichtige offizielle Cloud-Dienst des Home-Assistant-Teams erledigt denselben Job ohne jede Wartung und finanziert nebenbei das Projekt. Wenn du überhaupt keinen Server betreiben willst, ist das eine völlig gute Antwort. Der VPS-Weg gewinnt, wenn du ohnehin selbst hostest, eine eigene Domain willst oder später weitere Dienste von zu Hause hinter denselben Tunnel legen möchtest.
Passende Anleitungen
- WireGuard-VPN auf einem VPS einrichten – die komplette WireGuard-Anleitung
- Nginx-Reverse-Proxy mit HTTPS – falls dir Nginx lieber ist als Caddy
- Einen neuen VPS absichern – zuerst erledigen, auf jedem Server, der im Internet steht
Kommentare
Noch keine Kommentare. Sei der Erste.