Configuri WireGuard su un portatile, funziona, e copiare quella stessa configurazione su un telefono richiede dieci secondi. Entrambi si connettono. Per un po' niente sembra andare storto.
Poi sono connessi entrambi contemporaneamente, e uno dei due smette di ricevere traffico. Senza un errore, non in modo costante, e di solito mentre stai cercando di fare altro.
La soluzione è una coppia di chiavi per dispositivo. Il nostro generatore di configurazioni WireGuard gratuito crea una coppia di chiavi, un indirizzo e una configurazione separati per ogni peer direttamente nel browser, e se il server devi ancora noleggiarlo, un Contabo Cloud VPS 4 a 5,50 €/mese (link affiliato) include il proprio IPv4 pubblico. Se preferisci un host statunitense con garanzia di rimborso di 30 giorni, Ultahost VPS Basic costa 5,52 $ al mese con impegno di 24 mesi (1 GB di RAM, IPv4 dedicato, letto il 21 ottobre 2026), sufficiente per un server WireGuard per qualche dispositivo. Il generatore è gratuito fino a 10 dispositivi; oltre, WireGuard Pro (un nostro prodotto, 9 EUR una tantum, nessun abbonamento) alza il limite a 250 e aggiunge un unico ZIP con ogni .conf client e il relativo codice QR in PNG, comodo per configurare un intero ufficio o una famiglia in un colpo solo.
Cosa vede il server
WireGuard identifica un peer tramite la sua chiave pubblica. Non tramite IP, non tramite dispositivo, non tramite nome. Due dispositivi con la stessa chiave privata sono, per il server, un unico peer che continua a spostarsi.
Ogni handshake aggiorna l'endpoint registrato per quel peer, cioè l'indirizzo e la porta a cui il server invia le risposte. Il telefono fa l'handshake, le risposte vanno al telefono. Il portatile fa l'handshake, le risposte vanno al portatile. Quello che non ha fatto l'handshake più recente continua a inviare pacchetti che arrivano senza problemi, e smette di ricevere qualsiasi risposta.
Questo è tutto il meccanismo, e spiega il sintomo esattamente: una connettività che salta da un dispositivo all'altro a intervalli che nessuno controlla, perché l'intervallo di handshake non è qualcosa che programmi tu.
Le tre conseguenze, in ordine di quanto ti costeranno
Non puoi distinguerli. wg show elenca un peer, un orario di handshake, un contatore di trasferimento. Il traffico del telefono e del portatile viene sommato. Se un giorno ti serve sapere quale dispositivo ha fatto qualcosa, quell'informazione non esiste.
Non puoi revocarne uno solo. Rimuovere la chiave dal server toglie l'accesso a ogni dispositivo che la possiede. Un telefono perso significa tagliare anche il portatile, e poi riemettere le chiavi a entrambi.
AllowedIPs diventa ambiguo. Sul server, AllowedIPs è il modo in cui un pacchetto viene associato a un peer. Due dispositivi dietro una sola voce peer condividono un solo indirizzo nel tunnel, quindi tutto ciò che viene instradato verso quell'indirizzo raggiunge il dispositivo che in quel momento detiene l'endpoint.

La soluzione: una chiave e un indirizzo per dispositivo
Sul client, o sul server se generi le chiavi per qualcun altro:
wg genkey | tee phone.key | wg pubkey > phone.pub
Sul server, aggiungi un blocco peer per dispositivo, ognuno con il proprio indirizzo:
[Peer]
# laptop
PublicKey = <laptop.pub>
AllowedIPs = 10.10.0.2/32
[Peer]
# phone
PublicKey = <phone.pub>
AllowedIPs = 10.10.0.3/32
Aggiungilo a caldo, senza disconnettere nessuno:
wg set wg0 peer <phone.pub> allowed-ips 10.10.0.3/32
⛔ Poi scrivilo anche nel file di configurazione. wg set modifica l'interfaccia in esecuzione e niente su disco; un riavvio lo perde. Questa trappola, e il resto del ciclo di vita di un peer, sono trattati in aggiungere un peer WireGuard.
Rimuovere un dispositivo in seguito è poi un singolo comando, e non tocca nient'altro:
wg set wg0 peer <phone.pub> remove
La riga di commento non è decorazione
Nulla nel protocollo trasporta il nome di un dispositivo, quindi un elenco di dodici chiavi pubbliche è illeggibile sei mesi dopo. Un commento # phone sopra ogni blocco è l'unica etichetta che esisterà mai, e il giorno in cui dovrai revocarne uno in fretta è il giorno in cui la vorrai.
Due casi vicini che non sono questo
Una chiave precondivisa è condivisa apposta. PresharedKey è simmetrica e deve essere identica ai due capi di una stessa coppia di peer. Non è riuso di chiave tra dispositivi, e i due concetti si confondono facilmente: vedi la guida alla chiave precondivisa.
Un dispositivo, più tunnel va benissimo anche questo. Un portatile può avere chiavi diverse per server diversi senza alcun conflitto, perché l'identità è per tunnel e non per macchina.
Se distribuisci regolarmente configurazioni ai dispositivi, generare il codice QR è la parte veloce, e merita la stessa disciplina: il codice QR WireGuard contiene la chiave privata per intero, quindi un codice per dispositivo e mai uno condiviso.
★ 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→


