Home Assistant
Come configurare WireGuard per accedere a Home Assistant da remoto
Configura una VPN WireGuard per raggiungere Home Assistant da remoto senza esporre pubblicamente la porta 8123.
WireGuard crea una VPN privata tra il dispositivo remoto e la rete di casa. Home Assistant resta raggiungibile sul proprio indirizzo LAN e non viene pubblicato direttamente su Internet. Questa guida usa un host Linux come endpoint WireGuard; se l’host non è anche il router LAN, serve una rotta di ritorno verso la rete VPN oppure il NAT sul gateway.
Prerequisiti & Hardware Necessario
- Home Assistant funzionante su
192.168.1.10, porta interna8123/TCP. - Host Debian o Ubuntu sempre acceso, con IP LAN riservato
192.168.1.2. - Router con firewall e port forwarding; un nome DNS o IP pubblico raggiungibile dall’esterno.
- Un client WireGuard per ogni telefono o computer. WireGuard è il software VPN; Raspberry Pi, mini PC o router sono l’hardware che lo esegue.
Procedura passo-passo
- Riserva gli indirizzi. Imposta nel router
192.168.1.2per il server VPN e192.168.1.10per Home Assistant. Usa per la VPN la rete10.6.0.0/24e verifica che non coincida con altre reti usate dai client. - Installa WireGuard su Debian o Ubuntu.
sudo apt update sudo apt install wireguard - Genera le chiavi. Proteggi le chiavi private e non condividerle:
sudo install -d -m 700 /etc/wireguard/keys cd /etc/wireguard/keys sudo sh -c 'umask 077; wg genkey | tee server_private.key | wg pubkey > server_public.key; wg genkey | tee client_private.key | wg pubkey > client_public.key' - Abilita il forwarding IPv4.
Il valore atteso èecho 'net.ipv4.ip_forward=1' | sudo tee /etc/sysctl.d/99-wireguard-forward.conf sudo sysctl --system sysctl net.ipv4.ip_forward1. - Crea il server. In
/etc/wireguard/wg0.confsostituisci i segnaposto con le chiavi reali:
Proteggi il file con[Interface] Address = 10.6.0.1/24 ListenPort = 51820 PrivateKey = SERVER_PRIVATE_KEY [Peer] PublicKey = CLIENT_PUBLIC_KEY AllowedIPs = 10.6.0.2/32sudo chmod 600 /etc/wireguard/wg0.conf. - Configura il routing. Se il server VPN non è il gateway LAN, aggiungi sul router una rotta statica per
10.6.0.0/24via192.168.1.2. In alternativa configura sul gateway VPN il NAT e il firewall trawg0e la LAN. Consenti almeno il traffico dalla VPN a192.168.1.10:8123/TCP. - Avvia il servizio.
sudo systemctl enable --now wg-quick@wg0 sudo wg show - Inoltra la porta. Nel router inoltra solo
UDP 51820verso192.168.1.2:51820. Non inoltrare la porta8123. Con CGNAT il port forwarding IPv4 può non funzionare. - Configura il client. Importa nell’app WireGuard, sostituendo i segnaposto:
[Interface] Address = 10.6.0.2/32 PrivateKey = CLIENT_PRIVATE_KEY [Peer] PublicKey = SERVER_PUBLIC_KEY Endpoint = vpn.example.net:51820 AllowedIPs = 10.6.0.0/24, 192.168.1.10/32 PersistentKeepalive = 25PersistentKeepalive = 25aiuta i client dietro NAT a ricevere traffico dopo l’inattività. GliAllowedIPsinstradano nel tunnel solo VPN e Home Assistant, non tutto Internet. - Accedi a Home Assistant. Disattiva il Wi-Fi, attiva il tunnel e apri
http://192.168.1.10:8123. Nell’app Companion usa lo stesso URL locale come URL esterno solo se la VPN è sempre attiva fuori casa. Non aggiungeretrusted_proxiesouse_x_forwarded_for: sono impostazioni per reverse proxy, non per WireGuard. - Rafforza l’account. Usa password unica, MFA e account con privilegi minimi. La VPN protegge il trasporto, ma non sostituisce l’autenticazione di Home Assistant.
Verifica del funzionamento
- Con il tunnel attivo esegui
ping 10.6.0.1, se l’ICMP è consentito. - Sul server controlla
sudo wg show:latest handshakedeve aggiornarsi dopo il traffico. - Apri
http://192.168.1.10:8123da rete mobile e verifica il caricamento completo del frontend. - Disattiva il tunnel: dall’esterno Home Assistant deve risultare irraggiungibile, poiché la porta 8123 non è esposta.
Problemi comuni
| Problema | Causa | Soluzione |
|---|---|---|
| Nessun handshake | UDP errato, forwarding assente o CGNAT. | Controlla UDP 51820, endpoint, DNS/IP pubblico e sudo wg show. |
| Handshake presente ma HA non risponde | Rotta di ritorno o firewall mancanti. | Aggiungi 10.6.0.0/24 via 192.168.1.2 sul router LAN oppure configura NAT/firewall sul gateway. |
| Connessione persa dopo inattività | NAT del client scaduto. | Imposta PersistentKeepalive = 25 nel peer del client. |
| Funziona solo da Wi-Fi interno | Test interno non rappresentativo o endpoint non raggiungibile dall’esterno. | Prova da rete mobile e usa nel profilo il DNS/IP pubblico, non l’IP LAN. |
FAQ essenziali
Devo aprire la porta 8123?
No. Inoltra solo la porta UDP di WireGuard, normalmente 51820.
Posso usare lo stesso profilo su più dispositivi?
No. Crea una coppia di chiavi e un indirizzo VPN distinti per ogni dispositivo; così puoi revocare un solo peer in caso di smarrimento.
Prodotti consigliati
Hardware pertinente alla guida
I collegamenti portano alle pagine dei prodotti indicati. Il prezzo Amazon, quando disponibile, proviene dall’API ufficiale ed è aggiornato con data e ora; prezzo e disponibilità finali sono quelli della pagina Amazon.