VPN di casa con WireGuard: configurarla su FRITZ!Box o su un server Linux, con verifica

Una VPN di casa vi permette di raggiungere NAS, stampante, telecamere e pannello del router quando siete fuori, come se foste sul divano, senza esporre nessuno di questi servizi su Internet. WireGuard è oggi il modo più semplice per farlo: una sola porta UDP, chiavi al posto delle password, client ufficiali per tutti i sistemi. Vediamo le due strade più comuni: il FRITZ!Box, che lo integra, e un piccolo server Linux in casa quando il router dell’operatore non lo supporta.

In breve

  • Tempo: 15 minuti con FRITZ!Box, 45–60 minuti con server Linux
  • Difficoltà: facile (FRITZ!Box), media (Linux)
  • Cosa serve: IPv4 pubblico o IPv6 raggiungibile; un FRITZ!Box aggiornato, oppure un PC/mini PC/Raspberry Pi con Ubuntu o Debian sempre acceso; l’app WireGuard sul telefono
  • Risultato: accesso alla rete di casa da rete mobile o Wi-Fi esterni

La procedura segue la documentazione ufficiale di WireGuard, AVM (FRITZ!) e Ubuntu Server, verificata il 4 novembre 2026. Su Ubuntu 26.04 LTS e Debian 13 il pacchetto è wireguard nei repository standard.

Prima di iniziare: tre controlli

  1. Raggiungibilità. AVM lo mette come primo requisito: il router deve avere un IPv4 pubblico o un indirizzo IPv6 dall’operatore. Con CGNAT o DS-Lite senza IPv6 la VPN «in ingresso» non funziona: la soluzione è in https://hardwarfare.it/guide-tecniche/guide-reti/cgnat-ip-pubblico-ddns-tailscale-cloudflare/.
  2. Indirizzo della rete di casa. Quando siete fuori, la rete che vi ospita e quella di casa devono avere indirizzi diversi. AVM consiglia di evitare 192.168.0.x, 192.168.1.x e 192.168.178.x, i più diffusi, e propone ad esempio 192.168.10.1. Se a casa usate 192.168.1.x e vi collegate dal Wi-Fi di un hotel con la stessa numerazione, la VPN si connette ma non raggiungete nulla.
  3. Un nome al posto dell’IP. Se l’IP pubblico cambia, serve un DDNS: MyFRITZ! sul FRITZ!Box, oppure un servizio come DuckDNS per il server Linux.

Attenzione: cambiare la numerazione della rete di casa scollega per qualche istante tutti i dispositivi e invalida gli IP fissi che avevate assegnato (stampanti, NAS, regole di inoltro). Fatelo prima di tutto il resto e annotate cosa va riconfigurato.

Strada A: WireGuard sul FRITZ!Box

Le voci sono quelle della knowledge base AVM in inglese; nell’interfaccia italiana sono tradotte.

Passo A1: MyFRITZ!

Aprite Internet > MyFRITZ! Account, inserite il vostro indirizzo email, cliccate Apply e confermate dall’email di MyFRITZ!Net («Register Your FRITZ!Box»). Il FRITZ!Box ottiene così un indirizzo MyFRITZ! che segue l’IP pubblico anche quando cambia.

Passo A2: rete di casa su un’altra numerazione

Se usate ancora 192.168.178.x, AVM indica Home Network > Network, scheda Network Settings, Change Advanced Network Settings, scheda IPv4: impostate ad esempio 192.168.10.1 con maschera 255.255.255.0 e applicate.

Passo A3: la connessione WireGuard

  1. Internet > Permit Access, scheda VPN (WireGuard);
  2. Add WireGuard Connection, poi Connect a single device e Next;
  3. date un nome (ad esempio «telefono-marco»), Next, e confermate sul FRITZ!Box se richiesto.

Il FRITZ!Box mostra un QR code e permette di scaricare il file di configurazione con Download Settings.

Passo A4: il telefono

Installate l’app WireGuard (Google Play o App Store), toccate «+», scegliete la scansione del QR code, date un nome al tunnel e salvate. Create una connessione separata per ogni dispositivo: se perdete il telefono, cancellate solo la sua.

Verifica: disattivate il Wi-Fi, attivate il tunnel dall’interruttore nell’app e aprite dal browser del telefono l’indirizzo del FRITZ!Box di casa. Il simbolo VPN nella barra di stato indica che il tunnel è attivo; nell’app il contatore dei dati ricevuti deve crescere.

Strada B: un server Linux dentro casa

È lo schema documentato da Ubuntu Server per chi non può installare WireGuard sul router: un computer della rete di casa fa da punto di ingresso e «inserisce» i client remoti nella rete locale. Sul router servono solo due modifiche: un inoltro di porta e un intervallo DHCP ridotto. Nell’esempio la rete è 192.168.10.0/24, il router è 192.168.10.1, il server WireGuard è 192.168.10.10 e la porta è la 51820/UDP.

Passo B1: riservate gli indirizzi per la VPN

Nel DHCP del router riducete l’intervallo, ad esempio da 192.168.10.50 a .254: gli indirizzi da .10 a .49 restano liberi per server e client VPN. Essendo fuori dal DHCP, l’indirizzo 192.168.10.10 va impostato come IP statico nella configurazione di rete del server. Poi inoltrate la porta 51820/UDP verso 192.168.10.10, come spiegato in https://hardwarfare.it/guide/tutorial/aprire-porte-router-tim-vodafone-fastweb-fritzbox/.

Passo B2: installazione e chiavi

Sul server, come utente con privilegi di amministratore:

sudo apt install wireguard
umask 077
wg genkey > server-private.key
wg pubkey < server-private.key > server-public.key
wg genkey > telefono-private.key
wg pubkey < telefono-private.key > telefono-public.key

umask 077 fa sì che i file delle chiavi siano leggibili solo da voi: le chiavi private non devono mai uscire dal dispositivo a cui appartengono, tranne quella del telefono, che finirà nel QR code.

Passo B3: la configurazione del server

Create /etc/wireguard/wg0.conf (wg-quick cerca lì il file con il nome dell’interfaccia):

[Interface]
Address = 192.168.10.10/32
ListenPort = 51820
PrivateKey = CONTENUTO_DI_server-private.key

[Peer]
# telefono
PublicKey = CONTENUTO_DI_telefono-public.key
AllowedIPs = 192.168.10.11/32

Il peer non ha Endpoint: il server non sa da dove si collegherà il telefono, e WireGuard lo impara al primo pacchetto autenticato. Ora abilitate l’inoltro e il proxy ARP, che permette ai client VPN di comparire nella rete di casa come se fossero collegati lì. Create /etc/sysctl.d/70-wireguard-routing.conf con:

net.ipv4.ip_forward = 1
net.ipv4.conf.all.proxy_arp = 1

e applicate, poi avviate l’interfaccia tramite systemd, così parte anche a ogni riavvio:

sudo sysctl -p /etc/sysctl.d/70-wireguard-routing.conf -w
sudo systemctl enable --now wg-quick@wg0

Verifica: sudo wg show deve mostrare l’interfaccia wg0 con «listening port: 51820» e il peer del telefono con i suoi «allowed ips». Il campo «latest handshake» comparirà solo dopo la prima connessione.

Passo B4: la configurazione del telefono via QR code

Create sul server un file telefono.conf:

[Interface]
Address = 192.168.10.11/24
PrivateKey = CONTENUTO_DI_telefono-private.key
DNS = 192.168.10.1

[Peer]
PublicKey = CONTENUTO_DI_server-public.key
Endpoint = TUO_DOMINIO_DDNS:51820
AllowedIPs = 192.168.10.0/24
PersistentKeepalive = 25

e trasformatelo in QR code direttamente nel terminale, anche via SSH:

sudo apt install qrencode
cat telefono.conf | qrencode -t ansiutf8

Scansionate il codice con l’app WireGuard, poi cancellate telefono.conf e telefono-private.key dal server. Il QR code contiene la chiave privata del telefono: trattatelo come un segreto.

Due scelte da capire. AllowedIPs = 192.168.10.0/24 manda nel tunnel solo il traffico verso casa (split tunnel): il resto della navigazione esce dalla rete in cui vi trovate. Con 0.0.0.0/0 tutto passerebbe da casa: è possibile, ma la navigazione sarebbe limitata dalla velocità in upload della vostra linea e lo schema richiede verifiche ulteriori, quindi per l’uso tipico lasciate la sola rete di casa. PersistentKeepalive = 25 invia un pacchetto ogni 25 secondi, il valore che la documentazione di WireGuard definisce sensato per chi sta dietro un NAT, e la voce DNS fa usare al telefono il router di casa, così i nomi interni funzionano anche da fuori.

Verifica: con il telefono su rete mobile attivate il tunnel e aprite l’indirizzo di un dispositivo di casa diverso dal server (il NAS, il router): Ubuntu consiglia proprio questo test, perché raggiungere solo il server non dimostra che l’inoltro funzioni. Sul server lanciate sudo watch wg: «latest handshake» deve indicare pochi secondi fa e «transfer» deve crescere.

Client Windows, macOS e Linux

WireGuard pubblica client ufficiali per Windows 10 e 11, macOS (App Store), Android e iOS. Su Windows e macOS si importa nell’app il file .conf preparato come sopra; su un portatile Linux si copia il file in /etc/wireguard/casa.conf e si usa sudo wg-quick up casa. Ogni dispositivo ha la sua coppia di chiavi e il suo indirizzo (.12, .13…) con un blocco [Peer] dedicato sul server; per aggiungerlo senza interrompere gli altri basta sudo systemctl reload wg-quick@wg0.

Se qualcosa va storto

  • Nessun handshake. La porta UDP non arriva al server: controllate l’inoltro sul router, l’IP pubblico (CGNAT?) e che il nome DDNS punti all’indirizzo giusto. Ricordate che i test di porta UDP da strumenti online non sono affidabili: l’handshake è la prova.
  • ping: sendmsg: Required key not available. Secondo Ubuntu, c’è una rotta verso l’interfaccia WireGuard ma l’indirizzo di destinazione non è negli AllowedIPs di alcun peer. Ricontrollate gli AllowedIPs su entrambi i lati.
  • ping: sendmsg: Destination address required. Il server non conosce ancora l’endpoint del client, ad esempio dopo un riavvio: basta che il client generi traffico. Se capita spesso, il NAT del client chiude la sessione: è il motivo di PersistentKeepalive.
  • Handshake sì, dispositivi di casa no. Verificate che /proc/sys/net/ipv4/ip_forward e /proc/sys/net/ipv4/conf/all/proxy_arp valgano 1, e che le due reti (casa e luogo in cui siete) non abbiano la stessa numerazione.
  • Chiavi scambiate. La verifica delle chiavi è la prima voce della lista di Ubuntu: chiavi pubbliche e private hanno lo stesso aspetto ed è facile invertirle. Nel file di ogni dispositivo c’è la sua privata e la pubblica dell’altro lato.

Come tornare indietro

Sul FRITZ!Box eliminate la connessione dalla scheda VPN (WireGuard). Sul server Linux:

sudo systemctl disable --now wg-quick@wg0
sudo rm /etc/sysctl.d/70-wireguard-routing.conf

poi riavviate, cancellate l’inoltro della porta 51820/UDP dal router e, se volete, riportate l’intervallo DHCP al valore originale.

VPN di casa e VPN commerciali: non sono la stessa cosa

Una VPN commerciale fa uscire il vostro traffico da un server del fornitore, per nascondere il vostro IP ai siti. Quella che avete appena configurato fa l’opposto: vi porta dentro casa vostra. Da un Wi-Fi pubblico protegge il traffico verso casa, ma con lo split tunnel la navigazione normale resta fuori dal tunnel.

La nostra lettura

Se avete un FRITZ!Box e un IP raggiungibile, la strada A è la migliore: dieci minuti e nessuna macchina in più da mantenere. Il server Linux ha senso quando il router dell’operatore non offre WireGuard o quando avete già un mini PC sempre acceso, ad esempio con Home Assistant o un NAS (https://hardwarfare.it/guide/tutorial/nas-fai-da-te-openmediavault-truenas/). In entrambi i casi, una VPN è quasi sempre preferibile ad aprire una porta per ogni servizio.

Articolo redatto con il supporto di strumenti di intelligenza artificiale e verificato dalla redazione. Come usiamo l'AI · Come lavoriamo

Redazione HardWarfare
Redazione HardWarfarehttps://hardwarfare.it/chi-siamo/
La redazione di HardWarfare segue hardware PC, gaming, smartphone, sicurezza informatica e mercato tech. Ogni articolo parte da fonti primarie linkate in calce, viene verificato da un revisore diverso da chi lo scrive e si aggiorna quando i fatti cambiano. Scriveteci da Contatti per segnalazioni e correzioni.

Da non perdere

Articoli correlati

LASCIA UN COMMENTO

Scrivi il tuo commento!
Inserisci il tuo nome