Aller au contenu
WireGuardVPNLinuxTuto · 2026 · 3 min de lecture
Niveau · IntermédiaireDurée · 30 min

Monter un serveur WireGuard et y connecter un appareil

Un tunnel VPN moderne en quelques lignes : générer les clés, écrire la configuration du serveur et de l’appareil, ouvrir un seul port UDP, et vérifier que le trafic passe.

Prérequis

  • Un serveur Linux joignable depuis Internet (ou une redirection de port)
  • Le paquet wireguard-tools installé
  • Un accès root

01Le principe

WireGuard identifie chaque pair par une paire de clés, comme SSH. Pas de certificat ni de mot de passe : un pair n’est accepté que si sa clé publique figure dans la configuration, et seules les adresses listées dans AllowedIPs peuvent passer par lui.

Sans la bonne clé, le serveur ne répond tout simplement pas : vu de l’extérieur, le port UDP semble fermé.

02Générer les clés

À faire sur le serveur, puis sur chaque appareil. La clé privée ne quitte jamais la machine qui l’a générée ; seule la clé publique s’échange.

Exemple · Shell
umask 077
wg genkey | tee privatekey | wg pubkey > publickey

03Configurer le serveur

Chaque appareil reçoit une adresse /32 dans le tunnel : c’est elle qui l’identifie côté serveur. Pour que l’appareil joigne aussi le réseau local derrière le serveur, activez le routage IP sur ce dernier (net.ipv4.ip_forward = 1).

Exemple · /etc/wireguard/wg0.conf
[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <clé privée du serveur>

[Peer]
# Portable
PublicKey = <clé publique du portable>
AllowedIPs = 10.8.0.2/32

04Configurer l’appareil

Côté appareil, AllowedIPs décide de ce qui passe dans le tunnel : ici, le tunnel et le réseau de la maison seulement (split tunneling). Avec 0.0.0.0/0, tout le trafic y passerait. PersistentKeepalive garde le tunnel ouvert derrière un NAT.

Exemple · wg0.conf (appareil)
[Interface]
Address = 10.8.0.2/24
PrivateKey = <clé privée du portable>

[Peer]
PublicKey = <clé publique du serveur>
Endpoint = vpn.exemple.fr:51820
AllowedIPs = 10.8.0.0/24, 192.168.10.0/24
PersistentKeepalive = 25

05Démarrer et vérifier

Si « latest handshake » n’apparaît pas : vérifiez que le port UDP est ouvert ou redirigé, que l’Endpoint est juste, et que chaque clé publique est bien celle de l’autre pair.

Exemple · Shell
wg-quick up wg0
systemctl enable wg-quick@wg0   # au démarrage
wg show                         # dernier handshake, octets échangés

À retenir

  • Une paire de clés par appareil ; la clé privée ne voyage jamais.
  • AllowedIPs : qui est qui côté serveur, ce qui passe dans le tunnel côté appareil.
  • Un seul port UDP, silencieux sans la bonne clé.
  • wg show : le dernier handshake dit tout.

Sources officielles

Dorian FINKEL

Ingénieur Réseaux, Systèmes & Cloud — alternant chez Hermès.

Ouvert aux échanges techniques
Ressources
© 2026 Dorian FINKEL. Tous droits réservés. Mis à jour le
Conçu et développé par Dorian Finkel. React, Vite, Tailwind CSS. Haut de page