VPNSmith
VPS Contabo
self-host-vpnINFO

Codice QR WireGuard: generarlo da un .conf (qrencode)

Trasforma un .conf WireGuard in codice QR con un solo comando qrencode, o crea configurazioni e codici QR nel browser. E perché il codice QR è la tua chiave privata.

Di Eric Gerard · Fondatore · VPNSmith - Specialista in VPN autogestite e VPS GDPR6 min letturaPhoto via Pexels

Informativa sull'affiliazione: questo articolo contiene link di affiliazione Contabo e Ultahost. Se prendi un VPS tramite questi link, riceviamo una commissione senza alcun costo aggiuntivo per te.

Digitare una chiave privata in base64 sulla tastiera di un telefono è così scomodo che molti finiscono per copiare le configurazioni tramite app di chat, il che è peggio. Il codice QR esiste per evitare entrambe le cose.

È un solo comando, e la parte che vale la pena leggere è cosa succede dopo la scansione.

Non hai ancora una configurazione, o non hai un terminale a portata di mano? Il nostro generatore di configurazioni WireGuard crea il file del server e una configurazione client per ogni dispositivo, ciascuna con il suo codice QR, interamente nel browser: le chiavi vengono generate in locale con Curve25519 e nulla viene inviato a un server. Non converte un .conf esistente: per quello, incolla il file nel riquadro qui sotto (resta nel tuo browser) oppure usa qrencode. Non hai ancora nemmeno un server? I file che genera funzionano su qualsiasi VPS con un IPv4 pubblico, ad esempio un VPS Cloud 4 di Contabo a 5,50 €/mese (link di affiliazione, durata 24 mesi, IVA inclusa). Se preferisci un hosting 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, rilevato il 21 ottobre 2026).

Incolla un .conf esistente, ottieni il suo codice QR

Funziona solo nel browser: la config non viene inviata né salvata. Incolla il file client (quello con la PrivateKey del telefono), non il wg0.conf del server.

Ti serve una config nuova? Usa il generatore di config WireGuard

Generarne uno

Installa l'encoder:

apt install qrencode      # Debian, Ubuntu
dnf install qrencode      # Fedora, RHEL

Poi, sulla macchina che contiene la configurazione client:

qrencode -t ansiutf8 < /etc/wireguard/client1.conf

Il codice compare nel terminale, disegnato con caratteri a blocchi. Apri WireGuard sul telefono, aggiungi un tunnel, scegli la scansione da codice QR e punta la fotocamera verso lo schermo. Il tunnel viene aggiunto completo di nome, indirizzi, chiavi e peer.

Non c'è nessun formato speciale. Il codice QR contiene il file di configurazione in testo semplice. Qualunque cosa sappia leggere un codice QR può leggere la tua configurazione.

La dimensione raramente è un limite. Una tipica configurazione client WireGuard occupa qualche centinaio di byte, e lo standard QR arriva fino alla versione 40, una griglia di 177 per 177 moduli che contiene 2 953 byte al più basso dei suoi quattro livelli di correzione degli errori. Una configurazione ci sta comodamente, ed è proprio per questo che tutto, chiave privata compresa, viaggia in un'unica immagine.

Per ottenere un file invece di un disegno nel terminale:

qrencode -o client1.png < /etc/wireguard/client1.conf

Se il codice non si lascia scansionare, le cause abituali sono un font del terminale che deforma i blocchi, o una configurazione molto lunga. -t utf8 al posto di ansiutf8 produce un rendering più piccolo, e ridurre la dimensione del font del terminale aiuta più di qualsiasi altra cosa.

Vista da dietro, una donna solleva uno smartphone per fotografare un grande codice QR stampato su un pannello verde, con lo schermo che mostra il codice inquadrato all'interno di un'app di pagamento in spagnolo
Vista da dietro, una donna solleva uno smartphone per fotografare un grande codice QR stampato su un pannello verde, con lo schermo che mostra il codice inquadrato all'interno di un'app di pagamento in spagnolo

La parte che conta

Una configurazione client WireGuard contiene PrivateKey: una chiave Curve25519 da 32 byte, scritta come 44 caratteri base64 su una sola riga. Il codice QR contiene la configurazione. Quindi il codice QR è la chiave privata, in un formato pensato per essere letto a distanza da una fotocamera.

Questo cambia il modo in cui va gestito:

  • Non fotografarlo. Una foto finisce nel rullino e, sulla maggior parte dei telefoni, dritta in un backup cloud.
  • Non metterlo in un messaggio di chat o in un'email. Entrambi sono copie archiviate che non controlli.
  • Pulisci il terminale dopo la scansione. clear da solo non svuota il buffer di scorrimento. Usa reset, o chiudi del tutto la finestra del terminale.
  • Elimina subito i file PNG. Un client1.png lasciato nella home directory sopravvive al motivo per cui è stato creato.
  • Non mostrarlo dove una fotocamera può vederlo, il che in un ufficio condiviso include la finestra alle tue spalle.

Una chiave privata per client è la regola che il codice QR rende facile violare. Generare una sola configurazione e scansionarla su tre telefoni dà a tutti e tre la stessa identità: il server non riesce più a distinguerli, non può revocarne uno e instraderà male il traffico quando due sono connessi contemporaneamente. Come aggiungere un peer distinto per ogni dispositivo è spiegato in aggiungere un peer WireGuard.

Generare prima la configurazione, se non ne hai una

Il codice QR è l'ultimo passaggio. Prima, il client ha bisogno di una coppia di chiavi e di una voce peer sul server:

wg genkey | tee client1.key | wg pubkey > client1.pub

Poi una configurazione che faccia riferimento alla chiave pubblica del server, all'endpoint e agli AllowedIPs, e un blocco [Peer] corrispondente sul server che contenga client1.pub. Saltare la parte server è il motivo più comune per cui un tunnel scansionato non si connette a nulla: il telefono è configurato, ma il server non ne ha mai sentito parlare.

Se preferisci non costruire i file a mano, il generatore di configurazioni scrive entrambi i lati in una volta sola (l'[Interface] del server con ogni blocco [Peer], più un file client e un codice QR per dispositivo), così il telefono che scansioni e il server con cui comunica sono coerenti fin dall'inizio.

Il server ha bisogno di un indirizzo IP pubblico che il telefono possa raggiungere da una rete mobile. Una connessione domestica dietro CGNAT non ne ha uno (verifica la tua con il verificatore di porta WireGuard); un piccolo VPS sì, per circa 5 € al mese.

★ Datacenter GDPR di Norimberga · ✓ IPv4 dedicato incluso · porta da 200 Mbit/s

Un server WireGuard che il tuo telefono raggiunge sempre → Contabo Cloud VPS 45,50 €/mese (verificato il 18 ottobre 2026, primi 24 mesi) · IPv4 pubblico fisso · 4 vCPU, 8 GB di RAM→

Le guide complete, compresa la parte server, sono in configurazione di PiVPN con WireGuard per un Raspberry Pi e in self-hosting su un VPS per un server a noleggio. Entrambe generano configurazioni client che puoi passare direttamente a qrencode.

Se la scansione funziona ma il tunnel no

Il codice QR ha fatto il suo lavoro nel momento in cui il tunnel compare nell'app. Tutto ciò che viene dopo è WireGuard ordinario.

Controlla che il telefono mostri un handshake recente. Un peer in salute ripete l'handshake all'incirca ogni 120 secondi, quindi qualsiasi valore più vecchio di circa due minuti su un tunnel attivo è un sintomo, non una pausa. Se non è così, segui la risoluzione dei problemi di handshake: indirizzo dell'endpoint, porta raggiungibile dall'esterno (51820/UDP per impostazione predefinita), firewall del server e voce peer. Se l'handshake riesce ma le pagine restano bloccate, il problema è l'MTU, ed è particolarmente frequente sulle reti mobili.

Le note di configurazione specifiche per piattaforma sono in configurazione di WireGuard su Android e configurazione di WireGuard su iOS.

★ Datacenter GDPR di Norimberga · ✓ IPv4 dedicato incluso · porta da 200 Mbit/s

Ospita la tua VPN sul tuo VPS → ContaboAccesso root completo · IPv4 pubblico · scegli la tua regione→

Domande frequenti

Come creo un codice QR WireGuard?
Installa qrencode e passagli un file di configurazione client con l'opzione di output su terminale: qrencode -t ansiutf8 < client.conf. L'app mobile WireGuard lo scansiona direttamente dallo schermo. Non esiste un formato separato: il codice QR contiene semplicemente il file di configurazione come testo.
È sicuro condividere un codice QR WireGuard?
No. Il codice QR contiene l'intero file di configurazione, compresa la chiave privata del client. Chiunque lo fotografi, o lo trovi in uno screenshot o nel buffer di scorrimento del terminale, ha accesso completo al tuo tunnel come quel peer.
Posso generare il codice QR come file immagine?
Sì, qrencode -o client.png < client.conf scrive un PNG. Eliminalo dopo la scansione, perché un file immagine persiste in modi in cui una visualizzazione nel terminale non persiste, anche nei backup cloud delle foto se finisce in una cartella sincronizzata.
Perché il telefono scansiona il codice ma il tunnel non si connette?
Il codice QR trasporta solo la configurazione. Se l'handshake non si completa mai, il problema è la configurazione stessa o il percorso di rete: endpoint sbagliato, porta sbagliata, firewall sul server, o voce peer mancante lato server per la chiave pubblica di questo client.