VPN · Guida

Come usare un file di configurazione WireGuard

Aggiornato September 23, 2026 17 min di lettura

In questa pagina
  1. Cosa c'è dentro un file .conf, riga per riga
  2. Windows: importa il tunnel
  3. Android e iPhone: scansiona il codice QR o importa il file
  4. macOS e Linux
  5. Sul router, per coprire tutta la casa
  6. Si connette ma non carica nulla, e altri problemi reali
  7. Da dove arriva il file di configurazione
  8. FAQ

Una connessione WireGuard è un file di testo. Davvero, non è altro: una manciata di righe con le tue chiavi, l'indirizzo del server e le regole su cosa passa nel tunnel. Una volta che hai quel file, connettersi a un server VPN WireGuard significa semplicemente consegnarlo all'app WireGuard del dispositivo che stai usando.

Questa guida fa due cose. Prima legge riga per riga un vero file di configurazione, così sai cosa fa ogni impostazione e quale cambiare quando qualcosa non va. Poi spiega come importare quel file e connetterti su Windows, Android, iPhone, macOS, Linux e router, e chiude con la manciata di problemi che spiegano quasi tutte le lamentele su WireGuard: l'handshake che non si completa mai e il tunnel che si connette ma non carica nessuna pagina.

Cosa c'è dentro un file .conf, riga per riga

Ogni configurazione WireGuard ha la stessa struttura in due parti. [Interface] descrive il tuo capo del tunnel; [Peer] descrive la macchina a cui ti connetti. Ecco una configurazione client completa, con i segreti sostituiti da segnaposto:

[Interface]
PrivateKey = YOUR_PRIVATE_KEY_KEEP_THIS_SECRET
Address    = 10.7.0.4/32
DNS        = 10.7.0.1

[Peer]
PublicKey           = THE_SERVER_PUBLIC_KEY_FROM_YOUR_PROVIDER
Endpoint            = 198.51.100.10:51820
AllowedIPs          = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Le due chiavi qui sopra sono segnaposto, e l'indirizzo 198.51.100.10 è un indirizzo di documentazione riservato dall'RFC 5737: niente di tutto questo si connette a qualcosa. Usa i valori del tuo file.

Il blocco [Interface]: il tuo lato

  • PrivateKey: questa è la tua identità sulla VPN. Chiunque la possieda può spacciarsi per te. Sono 44 caratteri base64 che terminano con =; se la tua ha una lunghezza diversa, il file è stato troncato da qualche parte durante la copia.
  • Address: l'IP che il tuo dispositivo ha dentro il tunnel, non il tuo IP pubblico. Il /32 significa "solo questo indirizzo", ed è normale per un client.
  • DNS: il resolver usato mentre il tunnel è attivo. Senza, il dispositivo continua a interrogare il resolver precedente, il che rivela cosa stai cercando e spesso impedisce di risolvere qualsiasi cosa dall'altra parte.
  • MTU: facoltativa, ed è la riga più utile da conoscere. Manca nella maggior parte dei file perché il valore predefinito è quello giusto; vedi la sezione risoluzione dei problemi per il caso in cui non lo è.

Il blocco [Peer]: il lato del server

  • PublicKey: la chiave pubblica del server. La tua non compare mai nel tuo file; la conserva il server.
  • Endpoint: dove inviare i pacchetti, nel formato host:port. WireGuard funziona solo in UDP, e 51820 è la porta convenzionale, non una porta obbligatoria.
  • AllowedIPs: quali destinazioni passano nel tunnel. 0.0.0.0/0, ::/0 significa tutto, ed è proprio lo scopo di una VPN per la privacy. Un elenco più ristretto (ad esempio solo la rete interna della tua azienda) fa passare nel tunnel solo quello e lascia il resto sulla connessione normale. Questa configurazione si chiama split tunnel, ed è una scelta deliberata, non un tunnel completo che non funziona.
  • PersistentKeepalive: invia un piccolo pacchetto ogni 25 secondi perché il dispositivo NAT tra te e il server mantenga aperto il percorso di ritorno. Serve ogni volta che sei dietro un NAT, e su uno smartphone o una connessione di casa lo sei sempre.
Un dettaglio che chiarisce un equivoco frequente. Address e DNS non sono affatto impostazioni di WireGuard: sono istruzioni per lo strumento wg-quick, che configura la tua interfaccia di rete. WireGuard non le vede mai. Puoi verificarlo tu stesso: wg-quick strip wg0 stampa la configurazione che il kernel riceve davvero, ed entrambe le righe sono semplicemente sparite. Conta se un giorno configuri un tunnel con wg setconf invece di wg-quick, perché in quel caso nessuno assegna il tuo indirizzo né il tuo resolver e il tunnel si attiva collegato al nulla.

Ti serve un file di configurazione da importare? Un servizio HytHost VPN ti consegna una configurazione WireGuard pronta all'uso da €0.99/mese.

Vedi i piani VPN

Windows: importa il tunnel

Windows ha un'app WireGuard ufficiale, e importarci un file è tutto il lavoro.

  1. Installa WireGuard da wireguard.com/install.
  2. Fai clic su Aggiungi tunnel in basso a sinistra: si apre una finestra di selezione filtrata su File di configurazione (*.zip, *.conf). Scegli il tuo .conf e comparirà nell'elenco dei tunnel, con il nome del file.
  3. Oppure incollalo. La freccia accanto ad Aggiungi tunnel offre Aggiungi tunnel vuoto..., che ti dà una casella di testo: utile quando la configurazione ti è arrivata in un messaggio invece che come file. È precompilata con una nuova chiave privata, quindi cancella quella riga e incollaci sopra la tua configurazione.
  4. Fai clic su Attiva. Lo stato passa ad Attivo e il pannello inizia a contare i byte trasferiti. Quel contatore è il controllo più rapido che hai: se mostra dati in uscita e niente in entrata, l'handshake non si sta completando.
Due opzioni di quest'app meritano di essere conosciute. Blocca traffico fuori dal tunnel (kill-switch), nella schermata di modifica del tunnel, impedisce a qualsiasi cosa di uscire fuori dal tunnel se questo cade: l'impostazione giusta se lo scopo della VPN è che nulla sfugga. E Esporta log su file è il punto in cui l'app ti spiega, in parole semplici, perché un tunnel si è rifiutato di partire.

Android e iPhone: scansiona il codice QR o importa il file

Su uno smartphone hai due strade, e il codice QR esiste proprio perché digitare una chiave di 44 caratteri su un touchscreen è un tormento.

Android

  1. Installa WireGuard dal Play Store e tocca il pulsante +.
  2. La schermata Crea un tunnel WireGuard offre Scansiona da codice QR, Importa da file o archivio e la creazione da zero. Scegli l'opzione che corrisponde a ciò che ti è stato dato.
  3. Dai un nome al tunnel se richiesto, poi attiva il suo interruttore. Android chiede una sola volta il permesso di aggiungere una configurazione VPN: quella richiesta è del sistema operativo, non dell'app.

iPhone e iPad

  1. Installa WireGuard dall'App Store e tocca Aggiungi un tunnel.
  2. In Aggiungi un nuovo tunnel WireGuard, scegli Crea da codice QR oppure Crea da file o archivio. La schermata dello scanner si chiama Scansione codice QR; dopo una scansione riuscita ti chiede di dare un nome al tunnel.
  3. Attivalo e consenti la configurazione VPN quando iOS lo chiede.

Creare un codice QR da un file di configurazione che hai già

Il codice QR non è qualcosa che il provider deve per forza darti: è solo il tuo file di configurazione disegnato come immagine, e puoi generarlo da solo con un comando. È la stessa app WireGuard a suggerirlo:

# prints the code straight into the terminal, ready to scan off the screen
qrencode -t ansiutf8 < wg0.conf

# or write it to an image file
qrencode -o wg0.png < wg0.conf

Su Debian o Ubuntu, qrencode si installa con apt install qrencode; su macOS, con brew install qrencode.

Un codice QR di WireGuard contiene la tua chiave privata. Non è un link né un identificativo: è l'intera configurazione, chiavi comprese, in una forma che qualsiasi fotocamera può leggere. Non pubblicarlo mai in un server Discord, in una discussione su un forum o in un ticket di assistenza, e fai attenzione agli screenshot. Se scansioni un codice da uno schermo, chiudilo subito dopo. Tratta l'immagine esattamente come tratteresti il file.

macOS e Linux

macOS

Installa WireGuard dal Mac App Store. L'app per Mac non è l'app per iPhone su uno schermo più grande: vive nella barra dei menu, e la sua finestra si apre da Gestisci i tunnel. Fai clic su Importa tunnel da file (nella barra dei menu la stessa voce si chiama Importa tunnel da file…), scegli il tuo .conf, poi seleziona il tunnel e fai clic su Attivato. Sul Mac non c'è uno scanner QR (i codici QR sono pensati per gli smartphone), quindi usa direttamente il file, oppure scegli Aggiungi tunnel vuoto… e incollaci la configurazione.

Se preferisci lavorare nel terminale, brew install wireguard-tools ti dà gli stessi comandi wg-quick di Linux, descritti qui sotto.

Linux

  1. Installa gli strumenti. Su Debian o Ubuntu: sudo apt install wireguard. La maggior parte delle distribuzioni ha un pacchetto con lo stesso nome.
  2. Metti il file dove wg-quick lo cerca. È il passaggio in cui si sbaglia più spesso, perché il nome del file diventa il nome dell'interfaccia:
    sudo install -m 600 -o root -g root wg0.conf /etc/wireguard/wg0.conf
    Il 600 è importante: il file contiene la tua chiave privata e non deve essere leggibile dagli altri utenti della macchina. Usa un nome breve e semplice; deve essere un nome di interfaccia di rete valido.
  3. Attivalo:
    sudo wg-quick up wg0
    sudo wg show
    wg show è l'unico comando che vale la pena ricordare. Mostra il peer, l'endpoint, una riga latest handshake e i contatori di traffico. Un timestamp di handshake che non compare mai è il segno distintivo del problema descritto nella prossima sezione.
  4. Avvio automatico: sudo systemctl enable --now wg-quick@wg0. Per fermare il tunnel a mano, sudo wg-quick down wg0.
Due errori da riconoscere a colpo d'occhio. wg-quick: `/etc/wireguard/wg0.conf' does not exist significa che il nome che hai indicato non corrisponde a nessun file in quella cartella: hai chiesto wg0 e il file si chiama in un altro modo. E se il tunnel si rifiuta di attivarsi lamentandosi di resolvconf, il colpevole è la riga DNS: wg-quick ha bisogno di resolvconf o systemd-resolved per applicarla. Installane uno, oppure rimuovi la riga DNS e imposta tu il resolver.

Sul router, per coprire tutta la casa

Mettere il tunnel sul router copre tutti i dispositivi collegati, compresi quelli che non possono proprio eseguire un'app VPN: una console, una TV, uno smart speaker. Se puoi farlo dipende interamente dal firmware.

FirmwareSupporto WireGuardDove guardare
OpenWrtSì, con un pacchettoInstalla luci-proto-wireguard, poi aggiungi un'interfaccia con protocollo WireGuard VPN e compila i campi con i dati del tuo file
Asus (firmware originale recente)Sì, su molti modelliLa sezione VPN ha un client WireGuard che importa direttamente un .conf
Asuswrt-MerlinStessa idea, con più controllo sull'instradamento
Mikrotik RouterOS 7WireGuard è integrato; RouterOS 6 non lo ha affatto
Router tipico fornito dall'operatoreDi solito noNiente WireGuard e nessun modo di aggiungerlo: vedi sotto

Se il tuo router è quello che ti ha dato l'operatore, le opzioni realistiche sono mettere dietro un router che controlli tu, oppure continuare con le configurazioni per singolo dispositivo. Nessuna delle due è una sconfitta; anzi, la configurazione per dispositivo spesso è migliore, perché puoi lasciare il tunnel spento sui dispositivi che non ne hanno bisogno.

Non riutilizzare una configurazione già presente su un altro dispositivo. Un file di configurazione è un peer, e un peer è un dispositivo. Caricare sul router la configurazione del telefono fa litigare i due per la stessa identità, ed entrambe le connessioni diventano instabili. Ordina una seconda configurazione, oppure aggiungi un secondo peer sul tuo server.

Una cosa da decidere prima di far passare tutta la casa in un tunnel: da quel momento ci passa tutto. I siti delle banche che non amano gli indirizzi esteri, lo streaming che controlla la tua regione e qualsiasi cosa comunichi con i dispositivi della tua rete possono comportarsi diversamente. È qui che un AllowedIPs più ristretto si rivela prezioso: fai passare solo ciò che serve e lascia stare il resto.

Si connette ma non carica nulla, e altri problemi reali

WireGuard è insolitamente silenzioso quando qualcosa va storto, ed è una scelta di progettazione voluta: un pacchetto non autenticato non riceve alcuna risposta, così uno scanner non può capire se c'è qualcosa in ascolto. L'effetto collaterale è che una chiave sbagliata, una porta sbagliata e una rete bloccata sembrano identiche dal tuo lato: silenzio. Parti dal sintomo.

Cosa vediDi solito èDove guardare
Nessun handshake; i byte inviati salgono, quelli ricevuti restano a zeroNessuno risponde, oppure la risposta non riesce a tornareEndpoint, la PublicKey del server, UDP bloccato
Handshake ok, le cose piccole funzionano, le pagine web restano caricate a metàMTUAggiungi una riga MTU a [Interface]
Connesso, ma non si risolve nullaDNSLa riga DNS, e resolvconf su Linux
Connesso, i nomi si risolvono, ma nel tunnel non passa trafficoAllowedIPs troppo ristrettoAllowedIPs in [Peer]
Funziona, poi si blocca dopo un paio di minuti di inattivitàLa mappatura NAT è scadutaPersistentKeepalive = 25

"Handshake did not complete"

Il tuo dispositivo ha inviato un pacchetto di avvio e non ha ricevuto nulla in risposta. Controlla, in quest'ordine:

  • L'endpoint. Host giusto, porta giusta, e la porta dev'essere UDP. Un errore di battitura qui produce esattamente questo sintomo e nessun altro.
  • Che l'UDP arrivi davvero all'esterno. Wi-Fi per ospiti, reti degli hotel, alcune reti aziendali e qualche operatore mobile consentono solo TCP sulle porte comuni. Se la stessa configurazione funziona sulla connessione di casa e non su una rete specifica, la configurazione è a posto e il problema è la rete.
  • Che le chiavi siano al posto giusto. La PublicKey in [Peer] è la chiave pubblica del server, e il server deve avere, separatamente, la chiave pubblica che corrisponde alla tua PrivateKey. Una configurazione copiata da un altro dispositivo fallisce qui.
  • L'orologio. L'handshake di WireGuard include un timestamp e rifiuta quelli troppo sfasati. Succede di rado, ma capita sui dispositivi che hanno perso l'ora.

Se il tunnel funziona da casa ma mai da una connessione mobile, la causa potrebbe essere dal lato del tuo operatore e non dal tuo: il CGNAT e soluzioni simili cambiano ciò che può raggiungerti. La guida al port forwarding spiega come verificarlo dal tuo router in un paio di minuti.

Il problema dell'MTU, che vale la pena capire una volta per tutte

È il classico caso "connesso ma internet non va", e lo schema è inconfondibile: il ping funziona, il DNS funziona, le pagine leggere si caricano e tutto ciò che è un po' più pesante resta bloccato all'infinito.

La causa è la dimensione. Incapsulare il traffico per il tunnel aggiunge intestazioni, quindi un pacchetto che entrava perfettamente nella connessione normale non ci sta più una volta dentro WireGuard. I pacchetti piccoli passano senza problemi; quelli grandi vengono scartati. Di norma la rete avvisa il mittente di usare pacchetti più piccoli, ma il messaggio che lo fa viene spesso filtrato, così invece di un errore resti semplicemente ad aspettare.

La soluzione è dire a WireGuard di usare pacchetti più piccoli fin dall'inizio. wg-quick ci prova già: prende l'MTU del tuo percorso normale e sottrae 80 byte per l'overhead del tunnel, quindi su una normale connessione da 1500 byte ottieni 1420. Quando è ancora troppo (alcune reti mobili, la maggior parte delle connessioni che passano già dentro un altro tunnel), impostalo esplicitamente e scendi a gradini:

[Interface]
MTU = 1420      # what wg-quick would have picked
# still stalling? try 1380, then 1280

1280 è il minimo che vale la pena provare, perché è la dimensione di pacchetto più piccola che IPv6 impone a tutti di trasportare, quindi supera praticamente qualsiasi percorso. Costa un po' di efficienza ed è molto meglio di un tunnel che si blocca.

Il tunnel è attivo ma non ci passa niente

Controlla prima AllowedIPs. Non è un firewall né un elenco di permessi: decide quali destinazioni vengono instradate nel tunnel. Se non include 0.0.0.0/0, il traffico verso il resto di internet non doveva mai passarci, e la connessione si comporta esattamente come è stata configurata. Su Linux, ip route show table all | grep wg0 mostra cosa è stato davvero instradato.

Se l'instradamento è corretto e sono i nomi a non risolversi, è la riga DNS: manca, oppure c'è ma non viene applicata perché resolvconf non è installato.

Da dove arriva il file di configurazione

Tutto ciò che hai letto finora presuppone che tu abbia un file. Ci sono esattamente due modi per ottenerlo.

Gestire il server da solo

Generi una coppia di chiavi, installi WireGuard su una macchina con un indirizzo pubblico, aggiungi il tuo dispositivo come peer e scrivi a mano la configurazione client. Non è difficile ed è davvero una bella cosa da imparare. Il costo è continuo: un server da pagare e tenere aggiornato, e una modifica manuale su entrambi i lati ogni volta che aggiungi un dispositivo, perché, ricorda, un peer è un dispositivo.

Ottenerlo da un provider

L'alternativa è che il file venga generato per te e tu lo scarichi e basta. Con HytHost VPN, da €0.99/mese, lo trovi qui:

  1. Ordina il servizio e accedi all'area clienti, poi apri il tuo servizio VPN dall'elenco.
  2. Trova la sezione WireGuard Configuration. Ti offre due pulsanti: Copy to Clipboard, che copia il testo della configurazione negli appunti, e Download Configuration, che ti consegna il file già pronto.
  3. Se l'hai copiato, incollalo in un editor di testo semplice e salvalo con l'estensione .conf; wg0.conf è un buon nome. Assicurati che l'editor non abbia aggiunto .txt alla fine.
  4. Importalo seguendo la sezione qui sopra relativa al tuo dispositivo. Su uno smartphone, trasformalo prima in un codice QR con qrencode.

La stessa pagina mostra se il tunnel è attualmente connesso al server, il che risolve il dubbio "è colpa mia o loro?" prima che inizi a cambiare impostazioni. Non c'è un pulsante per il codice QR: generalo tu dal file, il che significa anche che il codice non viaggia mai dove non serve.

Ti serve un file di configurazione da importare? Un servizio HytHost VPN ti consegna una configurazione WireGuard pronta all'uso da €0.99/mese.

Vedi i piani VPN
FAQ

Domande frequenti

Installa l'app ufficiale WireGuard, importa il file di configurazione che ti ha dato il tuo server o provider, poi attiva il tunnel. Su Windows significa Aggiungi tunnel e poi Attiva; su Android e iPhone puoi scansionare il file come codice QR invece di importarlo; su Linux, metti il file in /etc/wireguard/ ed esegui wg-quick up con il suo nome. Un timestamp di handshake e dei dati ricevuti nell'app confermano che la connessione è attiva.

Un semplice file di testo, di solito con estensione .conf, che contiene due blocchi. [Interface] descrive il tuo dispositivo: la sua chiave privata, l'indirizzo che assume dentro il tunnel e il resolver da usare. [Peer] descrive il server: la sua chiave pubblica, il suo host e la porta UDP, e quali destinazioni devono passare nel tunnel. Quel file è l'intera connessione: sul tuo dispositivo non viene salvato nient'altro da nessuna parte.

Non in modo affidabile, e il motivo merita di essere conosciuto. Una configurazione è un peer, identificato da una coppia di chiavi, e il server tiene traccia di un'unica posizione attuale per ogni peer. Se colleghi un telefono e un portatile con lo stesso file, il server invia il traffico di ritorno a quello che ha fatto l'handshake più di recente, quindi entrambe le connessioni cadono e tornano di continuo. Ogni dispositivo ha bisogno della propria configurazione con la propria coppia di chiavi.

Lo generi dal file di configurazione che hai già: un codice QR di WireGuard è semplicemente quel file codificato come immagine. Esegui qrencode -t ansiutf8 < wg0.conf per stamparlo nel terminale e scansionarlo dallo schermo, oppure qrencode -o wg0.png < wg0.conf per salvarlo come immagine. Poiché il codice contiene la chiave privata, va trattato come il file stesso: mai pubblicato da nessuna parte.

No. La chiave privata è ciò che identifica il tuo dispositivo sulla VPN, quindi chiunque abbia il file può connettersi al posto tuo. Non va mai pubblicata in una chat, in un forum, in un issue tracker o in un ticket di assistenza, e lo stesso vale per un codice QR o uno screenshot del file. Se una configurazione è stata esposta, la soluzione è generare una nuova coppia di chiavi e sostituire il peer, non sperare che nessuno l'abbia letta.

Quel messaggio significa che il pacchetto di avvio è partito e non è tornato nulla, e WireGuard non può dirti perché, dato che non ha mai ricevuto risposta. Controlla host e porta dell'Endpoint, verifica che la rete su cui ti trovi consenta l'UDP in uscita e assicurati che la PublicKey sotto [Peer] sia la chiave del server, mentre il server deve avere la chiave pubblica corrispondente alla tua chiave privata. Se lo stesso file funziona su un'altra rete, il file è corretto ed è la rete a filtrare l'UDP.

Questo schema (handshake ok, ping ok, pagine web che si bloccano) è quasi sempre l'MTU. Una volta incapsulato il traffico per il tunnel, ogni pacchetto diventa più grande, quindi i pacchetti che prima entravano vengono scartati, e il messaggio che normalmente lo segnalerebbe viene spesso filtrato. Aggiungi una riga MTU a [Interface]: 1420 è il valore che wg-quick calcolerebbe su una connessione normale, e 1380 o 1280 funzionano quando è ancora troppo.

Non per usare un file di configurazione. Il client apre una connessione UDP in uscita verso il server, e la risposta torna attraverso la mappatura creata da quella connessione, che è proprio ciò che PersistentKeepalive mantiene aperto. Una porta va aperta solo sul lato che esegue il server WireGuard e deve accettare connessioni in entrata.

Da un provider che la genera per te. Un servizio HytHost VPN, da €0.99/mese, mostra nell'area clienti una sezione WireGuard Configuration con un pulsante per copiare il testo della configurazione e uno per scaricare il file già pronto. Da lì si importa nell'app WireGuard su qualsiasi dispositivo, e la stessa pagina indica se il tunnel è attualmente connesso.

Un file di configurazione che resta tuo

HytHost VPN ti dà una configurazione WireGuard da scaricare una volta e importare su qualsiasi dispositivo: Windows, Android, iPhone, macOS, Linux o il tuo router. Da €0.99/mese.

Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hours

Questa guida ti è stata utile?