Vous installez WireGuard sur un portable, ça fonctionne, et copier cette même config sur un téléphone prend dix secondes. Les deux se connectent. Pendant un temps, rien ne semble anormal.
Puis les deux sont connectés en même temps, et l'un d'eux cesse de recevoir du trafic. Sans erreur, pas de façon systématique, et généralement pendant que vous essayez de faire autre chose.
La solution, c'est une paire de clés par appareil. Notre générateur de config WireGuard gratuit crée une paire de clés, une adresse et une config distinctes pour chaque peer, directement dans votre navigateur, et s'il vous reste à louer le serveur, un Contabo Cloud VPS 4 à 5,50 €/mois (lien affilié) est livré avec sa propre IPv4 publique. Si vous préférez un hébergeur américain avec 30 jours satisfait ou remboursé, le VPS Basic d'Ultahost coûte 5,52 $ par mois sur 24 mois (1 Go de RAM, IPv4 dédiée, relevé le 21 octobre 2026), assez pour un serveur WireGuard desservant quelques appareils. Le générateur est gratuit jusqu'à 10 appareils ; au-delà, WireGuard Pro (notre propre produit, 9 EUR en une fois, sans abonnement) relève la limite à 250 et ajoute un ZIP unique avec chaque .conf client et son QR code en PNG, pratique pour équiper tout un bureau ou toute une famille d'un coup.
Ce que voit le serveur
WireGuard identifie un peer par sa clé publique. Pas par son IP, pas par l'appareil, pas par un nom. Deux appareils portant la même clé privée sont, pour le serveur, un seul peer qui n'arrête pas de bouger.
Chaque handshake met à jour l'endpoint enregistré pour ce peer, c'est-à-dire l'adresse et le port auxquels le serveur envoie ses réponses. Le téléphone fait un handshake, les réponses vont au téléphone. Le portable fait un handshake, les réponses vont au portable. Celui qui n'a pas fait le handshake le plus récent continue d'envoyer des paquets qui arrivent bien, et ne reçoit plus rien en retour.
C'est tout le mécanisme, et il explique exactement le symptôme : une connectivité qui bascule entre deux appareils à des intervalles que personne ne contrôle, puisque l'intervalle de handshake n'est pas quelque chose que vous planifiez.
Les trois conséquences, par ordre de ce qu'elles vous coûteront
Vous ne pouvez pas les distinguer. wg show liste un peer, une heure de handshake, un compteur de transfert. Le trafic du téléphone et celui du portable s'additionnent. Si vous avez un jour besoin de savoir quel appareil a fait quelque chose, l'information n'existe pas.
Vous ne pouvez pas en révoquer un seul. Retirer la clé du serveur retire l'accès à tous les appareils qui la détiennent. Un téléphone perdu, c'est aussi couper le portable, puis réémettre des clés pour les deux.
AllowedIPs devient ambigu. Côté serveur, AllowedIPs est ce qui associe un paquet à un peer. Deux appareils derrière une seule entrée de peer partagent une seule adresse de tunnel, donc tout ce qui est routé vers cette adresse atteint l'appareil qui détient l'endpoint à ce moment-là.

La solution : une clé et une adresse par appareil
Sur le client, ou sur le serveur si vous générez pour quelqu'un d'autre :
wg genkey | tee phone.key | wg pubkey > phone.pub
Sur le serveur, ajoutez un bloc peer par appareil, chacun avec sa propre adresse :
[Peer]
# laptop
PublicKey = <laptop.pub>
AllowedIPs = 10.10.0.2/32
[Peer]
# phone
PublicKey = <phone.pub>
AllowedIPs = 10.10.0.3/32
Ajoutez-le à chaud, sans déconnecter personne :
wg set wg0 peer <phone.pub> allowed-ips 10.10.0.3/32
⛔ Puis écrivez-le aussi dans le fichier de config. wg set modifie l'interface en cours d'exécution et rien sur le disque ; un redémarrage le perd. Ce piège, et le reste du cycle de vie d'un peer, sont traités dans ajouter un peer WireGuard.
Retirer un appareil plus tard se fait alors en une seule commande, qui ne touche à rien d'autre :
wg set wg0 peer <phone.pub> remove
La ligne de commentaire n'est pas décorative
Rien dans le protocole ne transporte un nom d'appareil, donc une liste de douze clés publiques est illisible six mois plus tard. Un commentaire # phone au-dessus de chaque bloc est la seule étiquette qui existera jamais, et le jour où vous devrez en révoquer un en urgence, vous serez content de l'avoir.
Deux cas voisins qui ne sont pas celui-ci
Une clé pré-partagée est partagée volontairement. PresharedKey est symétrique et doit être identique aux deux extrémités d'une même paire de peers. Ce n'est pas une réutilisation de clé entre appareils, et les deux se confondent facilement : voir le guide de la clé pré-partagée.
Un appareil, plusieurs tunnels, ça ne pose pas de problème non plus. Un portable peut détenir des clés différentes pour des serveurs différents sans conflit, car l'identité est propre à chaque tunnel et non à la machine.
Si vous distribuez régulièrement des configs à des appareils, générer le QR code est la partie rapide, et elle mérite la même discipline : le QR code WireGuard contient la clé privée en entier, donc un code par appareil et jamais un code partagé.
★ Datacenter Nuremberg GDPR · ✓ IPv4 dédiée incluse · port 200 Mbit/s
Héberge ton VPN sur ton propre VPS → ContaboAccès root complet · IPv4 publique · choisis ta région→


