VPN Autogestito su Raspberry Pi 5 (2026): Guida all'Installazione di WireGuard

Configura una VPN WireGuard su Raspberry Pi 5 nel 2026: hardware, configurazione del sistema operativo, configurazione del server, port forwarding, DuckDNS, client iOS/Android/Mac/Windows. La velocità è limitata dal tuo upload domestico.

Di Eric GerardFondatore · VPNSmith - Specialista in VPN autogestite e VPS GDPR

Aggiornato 12 min lettura12 min

Link di affiliazione: possibile commissione, senza costi extra. Metodo

fig. 01 / self-host-vpn-headencrypted tunnelUDP 51820DEVICE10.8.0.2SERVER10.8.0.1INTERNETNATAllowedIPs = 0.0.0.0/0, ::/0ListenPort = 51820 (server)
fig. 01 / self-host-vpn-head

Un Raspberry Pi 5 da 8 GB è un eccellente server WireGuard sempre attivo. Aspettati una velocità di trasmissione pari alla tua velocità di upload domestica (comunemente ~80 Mbps), un consumo energetico intorno ai 6-8W, e un costo totale in 5 anni ben inferiore a un singolo abbonamento annuale a NordVPN. Questa guida ti fornisce ogni comando, in ordine, senza omissioni.

fig. 01 / self-host-vpn-headencrypted tunnelUDP 51820DEVICE10.8.0.2SERVER10.8.0.1INTERNETNATAllowedIPs = 0.0.0.0/0, ::/0ListenPort = 51820 (server)
fig. 01 / self-host-vpn-head

Per decidere se un Pi 5 è la scelta giusta rispetto a un VPS cloud o Tailscale, inizia con il nostro confronto delle migliori soluzioni VPN autogestite 2026.

Perché scegliere Raspberry Pi 5 per una VPN domestica

Prezzi verificati a ottobre 2026: l'aumento del costo della memoria ha portato il Raspberry Pi 5 da 8 GB da 80 $ al lancio a 175 $ di listino (aumenti annunciati da Raspberry Pi il 2 febbraio e il 1° aprile 2026, dopo un primo a dicembre 2025), e il modello da 4 GB a 110 $. Un kit completo da 8 GB costa ora circa 220 $. Rispetto a un VPS a 5,50 €/mese, tolti circa 11 €/anno di elettricità del Pi, il pareggio arriva in circa 4 anni (circa 3 anni con una scheda da 4 GB, sufficiente per WireGuard + Pi-hole). Se hai già un Pi 4 o Pi 5 in un cassetto, il server di casa è quasi gratis; se lo compreresti solo per la VPN, un Contabo Cloud VPS 4 a 5,50 €/mese (link di affiliazione) costa meno nei primi anni. Se preferisci un provider statunitense con 30 giorni soddisfatti o rimborsati, il VPS Basic di Ultahost costa 5,52 $ al mese su 24 mesi (1 GB di RAM, IPv4 dedicato, letto il 21 ottobre 2026), sufficiente per un server WireGuard con pochi dispositivi.

Ma il costo non è l'unico motivo. Argomenti concreti per un Pi rispetto a un VPS:

  • Controllo completo dell'hardware e dei log - Niente esce da casa tua. Un VPS, anche se criptato, comporta un provider che gestisce l'hypervisor.
  • Accesso LAN nativo - Dalla tua connessione VPN, puoi raggiungere il tuo NAS, stampanti, telecamere IP direttamente tramite IP locale. Impossibile con un VPS.
  • Co-installazione di Pi-hole - Blocco degli annunci DNS per tutti i tuoi dispositivi mobili, ovunque nel mondo. Una lista di blocco tipica elimina una quota significativa di query DNS (puoi vedere la cifra esatta sulla dashboard di Pi-hole).
  • Apprendimento pratico della rete - Il modo migliore per comprendere NAT, IP forwarding, PKI e WireGuard è configurare tutto da solo.

Limiti onesti: dipendi dalla connettività e dall'energia domestica. Per una VPN critica per i viaggi, consulta la sezione manutenzione.

Hardware necessario

Ecco una configurazione hardware tipica per questo montaggio, con prezzi indicativi in EUR/USD di inizio 2026:

ComponenteModelloPrezzo indicativo
Raspberry Pi 58 GB RAM (consigliato)175 $ di listino, ott. 2026 (4 GB: 110 $)
AlimentatoreUfficiale USB-C 27W (PI-PSU)~$12 / €12
microSDSanDisk Extreme 32 GB UHS-I~$12 / €12
Custodia + dissipatoreArgon NEO 5 o custodia ufficiale + Active Cooler~$15-20 / €15-20
Cavo EthernetCat 5e/6, 2 m~$5 / €5
Totale~220 $ una tantum (~155 $ con 4 GB)

Perché 8 GB di RAM? Se co-installi Pi-hole + eventualmente Nextcloud o Home Assistant, 4 GB possono risultare stretti. Con 8 GB, hai margine per 3 anni di evoluzione della configurazione.

Perché l'alimentatore ufficiale da 27W? Il Pi 5 sotto carico VPN + Pi-hole può assorbire fino a 12W sulla linea USB-C. Un alimentatore economico da 15W causa un throttling silenzioso della CPU (sottotensione). Quello ufficiale garantisce una tensione stabile.

Ethernet è obbligatorio: mai mettere un server VPN su WiFi. La latenza extra (2-5 ms) e le micro-disconnessioni WiFi rendono il tunnel instabile. Collegamento diretto al router.

Configurazione del sistema operativo - Raspberry Pi OS 64-bit

File di server in un data center
File di server in un data center

Flash della scheda

  1. Scarica Raspberry Pi Imager (Windows/Mac/Linux)
  2. Seleziona Raspberry Pi OS Lite 64-bit (Bookworm - Debian 12) - non serve il desktop
  3. Clicca sull'icona dell'ingranaggio (opzioni avanzate):
    • Nome host: vpn-pi
    • Abilita SSH: chiave pubblica (incolla il tuo ~/.ssh/id_ed25519.pub)
    • Nome utente: eric (non pi, disabilitato di default dal 2022)
    • Locale: il tuo fuso orario, layout tastiera corretto
  4. Flash sulla microSD. Inserisci nel Pi, collega Ethernet, accendi.

Primo accesso SSH e IP statico

# Dal tuo Mac/PC, trova il Pi sulla tua rete locale
ssh eric@vpn-pi.local

# IP statico in /etc/dhcpcd.conf
sudo nano /etc/dhcpcd.conf

Aggiungi alla fine del file:

interface eth0
static ip_address=192.168.1.10/24
static routers=192.168.1.1
static domain_name_servers=192.168.1.1
sudo reboot
# Riconnettiti sull'IP fisso:
ssh eric@192.168.1.10

Firewall UFW

sudo apt install -y ufw
sudo ufw default deny incoming
sudo ufw default allow outgoing
sudo ufw allow 22/tcp          # SSH (cambia se modifichi la porta)
sudo ufw allow 51820/udp       # WireGuard
sudo ufw enable
sudo ufw status verbose

Installazione di WireGuard

Preferite non copiare le chiavi a mano? Il nostro generatore di configurazione WireGuard gratuito scrive il wg0.conf del Pi e una configurazione per client (con codice QR per gli smartphone) in un minuto, con le chiavi generate nel browser e mai inviate altrove. Impostate come endpoint il vostro nome DuckDNS (configurato più sotto), verificate che eth0 nella riga PostUp corrisponda all'interfaccia del Pi, poi riprendete la guida dal passo di inoltro IP e avvio. Il generatore è gratuito e senza account, fino a 250 dispositivi, e la sua esportazione ZIP raccoglie ogni .conf client e il suo codice QR in PNG, comodo per configurare un intero ufficio o una famiglia in una volta.

Genera qui le tue configurazioni WireGuard

Inserisci l'indirizzo del server, scegli il numero di dispositivi, poi scansiona ogni codice QR dall'app.

Tutte le chiavi vengono generate nel tuo browser (Curve25519 / X25519). Niente viene inviato ai nostri server - la tua configurazione resta privata al 100%.

IPv4 pubblico o dominio della macchina che eseguirà WireGuard. Nessun server per ora? Lascia vuoto e aggiungilo dopo.

Gratis, senza account: fino a 250 client, ogni .conf con il suo codice QR, e uno ZIP con tutti i file.

Tutto ciò che il dispositivo invia a internet passa dal tuo server.

Impostazioni avanzateSubnet del tunnel, DNS, reti site-to-site. I valori predefiniti vanno bene nella maggior parte dei casi.

Facoltativo. Indica la subnet LAN dietro il server e/o dietro un client che fa da gateway di sede (un router, un Raspberry Pi, un NAS). Il generatore aggiunge ogni LAN agli AllowedIPs del server, dà a ogni peer le rotte verso le altre LAN e scrive le regole di inoltro sui gateway. Lascia vuoto un campo per un client normale.

Cosa scarichi

  • wg0.conf

    per il server

  • client1.conf

    uno per dispositivo

  • QR (esempio)

    per l'app mobile

Anteprima illustrativa: righe e QR fittizi, nessuna chiave reale. I tuoi file veri vengono generati nel tuo browser al clic.

Pacchetti e generazione delle chiavi

sudo apt update && sudo apt upgrade -y
sudo apt install -y wireguard qrencode

# Genera le chiavi del server
wg genkey | sudo tee /etc/wireguard/server_private.key | wg pubkey | sudo tee /etc/wireguard/server_public.key
sudo chmod 600 /etc/wireguard/server_private.key

# Mostra le chiavi
SERVER_PRIVKEY=$(sudo cat /etc/wireguard/server_private.key)
SERVER_PUBKEY=$(sudo cat /etc/wireguard/server_public.key)
echo "Privata: $SERVER_PRIVKEY"
echo "Pubblica:  $SERVER_PUBKEY"

Configurazione del server wg0.conf

sudo nano /etc/wireguard/wg0.conf
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVKEY>

# NAT - sostituisci eth0 con la tua interfaccia (controlla con: ip route | grep default)
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

IP Forwarding e avvio

# Abilita l'IP forwarding
echo "net.ipv4.ip_forward=1" | sudo tee -a /etc/sysctl.conf
sudo sysctl -p

# Avvia WireGuard
sudo systemctl enable --now wg-quick@wg0
sudo wg show  # dovrebbe mostrare l'interfaccia wg0 attiva

Configurazione della rete - router, DuckDNS, MTU

Port forwarding sul tuo router

Ogni ISP ha un'interfaccia di amministrazione diversa, ma la regola è la stessa: UDP, porta esterna 51820 → IP locale 192.168.1.10, porta interna 51820.

Testa da un'altra rete (mobile 4G): nc -zvu YOUR_PUBLIC_IP 51820.

Porta inoltrata ma il test fallisce ancora? Controllate il CGNAT

Molte connessioni in fibra, via cavo e 4G/5G non danno più un'IPv4 pubblica tutta vostra: l'operatore condivide un indirizzo tra più clienti (CGNAT), e nessuna regola sul router può aprire una porta che si trova dietro il NAT dell'operatore. Guardate l'indirizzo WAN nella pagina di stato del router: se inizia con 100.64 fino a 100.127, o è diverso da quello che mostra curl -4 ifconfig.me da un computer di casa, siete dietro un CGNAT. Il nostro verificatore di porta WireGuard gratuito fa questo confronto nel browser.

Tre vie d'uscita: chiedere un'IPv4 pubblica all'operatore (alcuni lo fanno gratis, molti no), collegarsi in IPv6 se la linea lo supporta (non funziona sul Wi-Fi degli hotel e sulle reti mobili senza IPv6), oppure mettere il server WireGuard su un piccolo VPS con la sua IPv4 pubblica e far collegare il Pi come client con PersistentKeepalive = 25, così la rete di casa resta raggiungibile. Questo relay è spiegato passo per passo in WireGuard dietro CGNAT.

Il link Contabo è un link di affiliazione: se ordinate tramite esso riceviamo una commissione, senza costi aggiuntivi per voi. Il traffico internet esce poi con l'indirizzo del VPS, non con quello di casa, a meno di farlo ripassare dal Pi.

DuckDNS - DNS dinamico gratuito

# Crea un account su duckdns.org, annota il tuo token
# Crea lo script di aggiornamento
mkdir -p ~/duckdns
cat > ~/duckdns/duck.sh << 'EOF'
#!/bin/bash
echo url="https://www.duckdns.org/update?domains=myvpn&token=YOUR_TOKEN&ip=" | curl -k -o ~/duckdns/duck.log -K -
EOF
chmod +x ~/duckdns/duck.sh

# Cron ogni 5 minuti
(crontab -l 2>/dev/null; echo "*/5 * * * * ~/duckdns/duck.sh >/dev/null 2>&1") | crontab -

Ottimizzazione MTU

WireGuard di default usa MTU 1420. Se vedi pacchetti frammentati:

# Testa la frammentazione
ping -M do -s 1392 8.8.8.8

# Se fallisce, aggiungi in wg0.conf [Interface]:
# MTU = 1380

Per dettagli completi sui template di configurazione WireGuard e casi limite MTU, consulta la nostra guida ai template di configurazione WireGuard.

Configurazione del client - Mac, Windows, iOS, Android

Genera una configurazione client

# Sul server, per ogni client:
CLIENT_PRIVKEY=$(wg genkey)
CLIENT_PUBKEY=$(echo $CLIENT_PRIVKEY | wg pubkey)

cat << EOF
[Interface]
PrivateKey = $CLIENT_PRIVKEY
Address = 10.8.0.2/32
DNS = 10.8.0.1

[Peer]
PublicKey = $SERVER_PUBKEY
Endpoint = myvpn.duckdns.org:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF

Aggiungi il client al server:

sudo wg set wg0 peer $CLIENT_PUBKEY allowed-ips 10.8.0.2/32
sudo wg-quick save wg0  # persiste la configurazione

Codice QR per iOS e Android

# Salva la configurazione del client in un file
cat > /tmp/client1.conf << 'EOF'
[Interface]
PrivateKey = CLIENT_PRIVKEY_HERE
Address = 10.8.0.2/32
DNS = 10.8.0.1

[Peer]
PublicKey = SERVER_PUBKEY_HERE
Endpoint = myvpn.duckdns.org:51820
AllowedIPs = 0.0.0.0/0
PersistentKeepalive = 25
EOF

# Mostra il codice QR nel terminale
qrencode -t ansiutf8 < /tmp/client1.conf

# Elimina dopo la scansione (non lasciare chiavi private in giro)
rm /tmp/client1.conf

Scansiona con l'app ufficiale WireGuard (iOS App Store / Google Play). La connessione si stabilisce in meno di 2 secondi.

macOS e Windows: scarica l'app ufficiale WireGuard, importa direttamente il file .conf.

Per confrontare con l'alternativa Tailscale che elimina tutta questa configurazione manuale, leggi la guida al nodo di uscita Tailscale. E per capire come Cloudflare WARP si confronta con la tua configurazione Pi, vedi WARP vs WireGuard autogestito.

Per gli utenti che viaggiano in paesi censurati (Cina, Iran, Russia): WireGuard su un Pi 5 sarà bloccato - il GFW rileva le sessioni WireGuard. Gli utenti avanzati possono preferire V2Ray con VLESS + REALITY per una migliore resistenza alla censura su un VPS cloud con un nodo di uscita a Singapore o Tokyo. La configurazione Pi 5 rimane ideale per la privacy domestica, l'accesso LAN locale e i paesi senza ispezione profonda dei pacchetti.

Ottimizzazioni e manutenzione

Aggiornamenti di sicurezza automatici

sudo apt install -y unattended-upgrades
sudo dpkg-reconfigure --priority=low unattended-upgrades
# Scegli "Sì" per abilitare gli aggiornamenti di sicurezza automatici

Monitoraggio con journalctl

# Log di WireGuard in tempo reale
sudo journalctl -u wg-quick@wg0 -f

# Vedi peer connessi e statistiche
sudo wg show

# Traffico per peer (byte ricevuti/inviati)
sudo wg show all dump

fail2ban contro le scansioni SSH

sudo apt install -y fail2ban

cat | sudo tee /etc/fail2ban/jail.local << 'EOF'
[sshd]
enabled = true
port = 22
maxretry = 3
bantime = 3600
findtime = 600
EOF

sudo systemctl enable --now fail2ban
sudo fail2ban-client status sshd

Backup configurazione WireGuard

# Backup automatico settimanale su unità USB o NAS locale
(crontab -l; echo "0 3 * * 0 sudo cp -r /etc/wireguard ~/backup/wg-$(date +%Y%m%d)") | crontab -

Swap se si utilizza 4 GB di RAM

Se stai usando il modello da 4 GB con Pi-hole + WireGuard attivi:

sudo dphys-swapfile swapoff
sudo nano /etc/dphys-swapfile  # Imposta CONF_SWAPSIZE=1024
sudo dphys-swapfile setup
sudo dphys-swapfile swapon

Monitoraggio della temperatura

Controlla la temperatura sotto il tuo carico. Senza custodia né dissipatore un Pi 5 funziona molto più caldo - il throttling della CPU inizia a 80°C, quindi è consigliato un dissipatore o una custodia.

# Temperatura in tempo reale
watch -n 2 vcgencmd measure_temp

Per una panoramica completa della configurazione avanzata della rete di cui avrai bisogno quando gestisci più client simultanei, consulta la nostra guida VPN multi-client WireGuard su Contabo - i concetti NAT sono identici su Pi.

Per avere l'essenziale a portata di mano: la WireGuard Cheat Sheet gratuita (PDF di 5 pagine in inglese, download diretto, senza registrazione) raccoglie le tabelle di keepalive e MTU, i comandi wg genkey/wg pubkey/wg genpsk e i quattro controlli del server in una riga da lanciare per primi quando un tunnel non fa passare traffico. Il WireGuard Self-Hosting Kit a pagamento (9 USD, in inglese) aggiunge una checklist di diagnosi con 12 cause e 11 modelli di configurazione.


Cosa aspettarsi: velocità di trasmissione pari alla tua velocità di upload domestica, latenza aggiunta a una cifra millisecondo sul lato LAN, un consumo energetico di ~6-8W, e una solida sicurezza con fail2ban e SSH solo con chiavi. Una cosa da pianificare: un'interruzione di corrente domestica interrompe il tunnel - un piccolo UPS (ad es. un APC 500VA) lo mantiene attivo durante brevi interruzioni.

WireGuard è sufficiente per la maggior parte degli usi autogestiti. Tuttavia, gli utenti avanzati possono preferire V2Ray per una migliore resistenza alla censura - particolarmente utile se devi connetterti dalla Cina, Iran o Russia dove i protocolli VPN standard sono attivamente bloccati.

Per collegare rapidamente i tuoi peer, il nostro generatore di configurazione WireGuard gratuito crea una configurazione server e client coerente nel tuo browser, pronta da copiare sul Pi.

Link di affiliazione

Prezzo verificato il 17/10/2026, durata 24 mesi

Domande frequenti

Quale larghezza di banda reale posso aspettarmi da una VPN su Raspberry Pi 5?
Su un Pi 5 da 8 GB con una tipica connessione in fibra domestica, il collo di bottiglia è l'upload domestico, non il Pi. Aspettati una velocità di trasmissione pari alla tua larghezza di banda in upstream (ad es. ~80 Mbps su un upload di 80-100 Mbps). La CPU del Pi 5 è raramente il limite alle velocità di un upload domestico. Esegui iperf3 attraverso il tunnel per trovare il tuo limite.
Come posso proteggere SSH dagli attacchi brute-force?
Tre misure obbligatorie: 1) Disabilita PasswordAuthentication in sshd_config (solo chiavi SSH). 2) Cambia la porta SSH da 22 a una porta non standard (ad es. 2222). 3) Installa fail2ban con una jail SSH: maxretry 3, bantime 1h. Con autenticazione solo con chiavi e fail2ban, i tentativi automatizzati di SSH che qualsiasi host esposto riceve non si autenticano mai.
Cosa succede se manca la corrente a casa?
La VPN si interrompe durante l'interruzione - questa è la limitazione fondamentale rispetto a un VPS cloud. Soluzioni: un UPS da 30-60 minuti per micro-interruzioni (~€30 per un APC Back-UPS 500). Per una VPN critica, mantieni un VPS Contabo a €5.50/mese come backup - vedi la nostra [guida VPN autogestita su Contabo](/it/blog/vpn-autogestito-su-contabo-guida-completa-a-wireguard-2026).
Pi 5 vs Pi 4 per WireGuard - qual è la differenza?
Il Pi 5 (Cortex-A76 a 2.4 GHz) ha una CPU nettamente più veloce del Pi 4 (Cortex-A72 a 1.8 GHz), quindi il suo limite con WireGuard è più alto. Con un upload domestico modesto il collo di bottiglia è la linea e un Pi 4 che possiedi già va bene. Per una linea simmetrica veloce, il Pi 5 è la scelta più sicura. Misura con iperf3 invece di fidarti di una cifra generica.
Qual è il consumo energetico effettivo?
Un Pi 5 da 8 GB tipicamente consuma circa 5-6W a riposo e 7-8W sotto carico WireGuard + Pi-hole (misura il tuo con una presa intelligente). In un anno sono circa 65 kWh, circa €10-12 in elettricità. Un Contabo Cloud VPS 4 costa 66 €/anno, quindi il Pi fa risparmiare circa 55 € all'anno, ma dopo gli aumenti del 2026 legati alla memoria la sola scheda da 8 GB è a 175 $ di listino (circa 220 $ il kit): servono circa 4 anni per ripagarla, circa 3 anni con una scheda da 4 GB. Se hai già un Pi, conviene dal primo giorno.
Posso eseguire Pi-hole e WireGuard insieme?
Sì, è una combinazione classica. Pi-hole ascolta su 53/UDP/TCP localmente, WireGuard instrada il DNS del client a 10.8.0.1 (il Pi). Ogni client VPN ottiene il blocco degli annunci di Pi-hole. L'unico vincolo: allocare 512 MB di RAM a Pi-hole. Con 4 o 8 GB sul Pi 5, è facilmente gestibile.
Ho bisogno di un IP statico dal mio ISP?
No. DuckDNS risolve questo gratuitamente. Il cron ogni 5 minuti aggiorna il DNS quando il tuo IP cambia. La frequenza con cui cambia l'IP dipende dal tuo ISP. Il tempo massimo di inattività è di 5 minuti - accettabile per una VPN domestica.
WireGuard su Pi 5 è sicuro quanto un servizio VPN commerciale?
La crittografia è identica (Curve25519, ChaCha20-Poly1305, BLAKE2s) - WireGuard è auditato e utilizzato in produzione da migliaia di aziende. La differenza: gestisci tu stesso gli aggiornamenti e il rafforzamento SSH. Con fail2ban, UFW e solo chiavi SSH, la superficie di attacco è minima. Cosa perdi rispetto al commerciale: nessun kill switch nativo sui client Windows (configura manualmente) e nessun multi-server geografico.