👍 On aime
- ✓Contrôle total des données sans journalisation par un tiers
- ✓Code léger intégré au noyau Linux pour des performances optimales
- ✓Configuration simple avec génération de clés et routage NAT automatisé
- ✓Support natif via QR code pour une connexion rapide sur mobile
👎 On regrette
- ✕Requiert un accès root ou sudo sur le serveur VPS
- ✕Configuration manuelle du NAT et du forwarding IP nécessaire
- ✕Vérification préalable du blocage UDP par l'hébergeur requise
📑 Sommaire ▾
- 01 Prérequis
- 02 Étape 1 : Installer WireGuard
- 03 Étape 2 : Activer le routage IP sur le serveur
- 04 Étape 3 : Générer les clés du serveur
- 05 Étape 4 : Identifier l’interface réseau de sortie
- 06 Étape 5 : Créer la configuration du serveur
- 07 Étape 6 : Ouvrir le port dans le pare-feu
- 08 Étape 7 : Démarrer le serveur WireGuard
- 09 Étape 8 : Configurer un premier client (smartphone)
- · Déclarer le client côté serveur
- · Créer le fichier de config du client
- · Générer un QR code pour le téléphone
- 13 Étape 9 : Connecter un ordinateur (Linux / Windows / macOS)
- 14 Vérification
- 15 Bonnes pratiques et sécurité
- 16 FAQ
- · WireGuard est-il vraiment plus rapide qu’OpenVPN ?
- · Mon propre VPN est-il plus anonyme qu’un VPN commercial ?
- · Que faire si la connexion ne s’établit pas (pas de handshake) ?
- · Combien de clients puis-je connecter ?
- · Puis-je accéder à mon réseau local domestique via ce VPN ?
- 22 Sur le même sujet
Les VPN commerciaux sont pratiques, mais vous payez un abonnement pour faire confiance à un tiers sur vos données. Monter votre propre VPN WireGuard sur un VPS change la donne : vous obtenez une IP fixe que vous contrôlez, un tunnel chiffré moderne, et la certitude qu’aucun journal de connexion n’est revendu, puisque c’est vous l’opérateur. Idéal pour sécuriser votre trafic sur le Wi-Fi public, accéder à distance à votre homelab, ou simplement avoir une sortie Internet propre.
WireGuard s’est imposé comme le standard en 2026 : il tient en quelques milliers de lignes de code (contre des centaines de milliers pour OpenVPN), il est intégré au noyau Linux, et il est nettement plus rapide. Dans ce guide, on installe WireGuard sur un VPS, on génère les clés serveur et clients, on configure le routage et le NAT pour faire transiter tout le trafic, et on connecte un téléphone (via QR code) et un ordinateur. À la fin, vous aurez un VPN personnel fonctionnel et sécurisé.
Prérequis
- Un VPS Linux (Ubuntu 24.04 ou Debian 12) avec une IP publique. Un petit VPS suffit largement : WireGuard est extrêmement léger. Des hébergeurs comme Hetzner (4 €/mois) ou DigitalOcean conviennent parfaitement. Voir notre comparatif DigitalOcean vs Vultr vs Hetzner.
- Accès
root/sudosur le VPS. Idéalement, durcissez-le d’abord avec notre guide installer et sécuriser un VPS Ubuntu. - Un client à connecter : smartphone (app WireGuard iOS/Android) et/ou ordinateur.
- 20 à 30 minutes.
WireGuard fonctionne en UDP sur le port 51820 par défaut. Assurez-vous que votre hébergeur ne bloque pas l’UDP entrant (rare, mais à vérifier).
Étape 1 : Installer WireGuard
Sur Ubuntu/Debian, WireGuard est dans les dépôts standard :
sudo apt update
sudo apt install -y wireguard wireguard-tools
Le module noyau est inclus dans Linux depuis la version 5.6, donc rien d’autre à compiler. Vérifiez la disponibilité des outils :
wg --version
Étape 2 : Activer le routage IP sur le serveur
Pour que le VPS puisse router le trafic de vos clients vers Internet, activez le forwarding IP. Éditez la configuration sysctl :
sudo nano /etc/sysctl.d/99-wireguard.conf
Ajoutez :
net.ipv4.ip_forward = 1
net.ipv6.conf.all.forwarding = 1
Appliquez sans redémarrer :
sudo sysctl --system
Vérifiez :
sysctl net.ipv4.ip_forward
La sortie doit afficher net.ipv4.ip_forward = 1.
Étape 3 : Générer les clés du serveur
WireGuard utilise une cryptographie à clés publiques/privées. Générez la paire de clés du serveur dans un répertoire protégé :
sudo mkdir -p /etc/wireguard
sudo chmod 700 /etc/wireguard
cd /etc/wireguard
umask 077
wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key
La commande umask 077 garantit que les fichiers de clés ne sont lisibles que par root. Affichez les deux clés, vous en aurez besoin :
echo "PRIVÉE serveur : $(sudo cat /etc/wireguard/server_private.key)"
echo "PUBLIQUE serveur : $(sudo cat /etc/wireguard/server_public.key)"
Étape 4 : Identifier l’interface réseau de sortie
Le NAT a besoin de connaître l’interface qui sort vers Internet. Trouvez-la :
ip route get 1.1.1.1 | grep -oP 'dev \K\S+'
Notez le nom retourné (souvent eth0, ens3 ou enp1s0). On l’utilisera dans la config. Dans la suite, on suppose eth0 ; remplacez par le vôtre.
Étape 5 : Créer la configuration du serveur
Créez le fichier d’interface wg0 :
sudo nano /etc/wireguard/wg0.conf
Collez la configuration suivante en remplaçant CLE_PRIVEE_SERVEUR par la clé privée du serveur et eth0 par votre interface de sortie :
[Interface]
# Adresse du serveur dans le réseau VPN privé
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = CLE_PRIVEE_SERVEUR
# Active le NAT pour que les clients accèdent à Internet via le VPS
PostUp = iptables -A FORWARD -i wg0 -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i wg0 -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
# Les blocs [Peer] des clients seront ajoutés plus bas
On a choisi le sous-réseau privé 10.8.0.0/24 pour le VPN. Le serveur est 10.8.0.1, les clients prendront 10.8.0.2, 10.8.0.3, etc.
Sécurisez le fichier :
sudo chmod 600 /etc/wireguard/wg0.conf
Étape 6 : Ouvrir le port dans le pare-feu
Si vous utilisez UFW (recommandé), autorisez le port WireGuard :
sudo ufw allow 51820/udp
sudo ufw reload
Vérifiez que la règle est bien présente :
sudo ufw status | grep 51820
Étape 7 : Démarrer le serveur WireGuard
WireGuard s’intègre à systemd via wg-quick. Activez et démarrez l’interface :
sudo systemctl enable --now wg-quick@wg0
Vérifiez que l’interface est montée :
sudo wg show
Vous voyez l’interface wg0 avec sa clé publique et le port d’écoute. Aucun peer pour l’instant, c’est normal.
Étape 8 : Configurer un premier client (smartphone)
Générez une paire de clés pour le client (chaque client a la sienne). Toujours sur le serveur, dans /etc/wireguard :
cd /etc/wireguard
umask 077
wg genkey | sudo tee client_phone_private.key | wg pubkey | sudo tee client_phone_public.key
Déclarer le client côté serveur
Ajoutez un bloc [Peer] à la fin de /etc/wireguard/wg0.conf :
sudo nano /etc/wireguard/wg0.conf
[Peer]
# Téléphone
PublicKey = CLE_PUBLIQUE_DU_CLIENT_PHONE
AllowedIPs = 10.8.0.2/32
AllowedIPs = 10.8.0.2/32 indique au serveur que ce peer est joignable à l’adresse 10.8.0.2. Rechargez la configuration sans couper les connexions existantes :
sudo systemctl restart wg-quick@wg0
Créer le fichier de config du client
Sur le serveur, préparez le contenu de la config client. Récupérez d’abord les valeurs nécessaires :
echo "PRIVÉE client : $(sudo cat /etc/wireguard/client_phone_private.key)"
echo "PUBLIQUE serveur : $(sudo cat /etc/wireguard/server_public.key)"
La configuration du client ressemble à ceci (à adapter) :
[Interface]
PrivateKey = CLE_PRIVEE_DU_CLIENT_PHONE
Address = 10.8.0.2/32
DNS = 1.1.1.1
[Peer]
PublicKey = CLE_PUBLIQUE_SERVEUR
Endpoint = 203.0.113.10:51820
# Tout le trafic passe par le VPN (VPN « full tunnel »)
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25
Remplacez 203.0.113.10 par l’IP publique de votre VPS. Le AllowedIPs = 0.0.0.0/0 côté client signifie « route tout le trafic dans le tunnel », c’est ce qui fait de ce VPN un VPN complet. PersistentKeepalive = 25 maintient le tunnel ouvert derrière les NAT, utile en mobilité.
Générer un QR code pour le téléphone
Le plus simple pour configurer un mobile : afficher la config en QR code à scanner avec l’app WireGuard. Installez l’outil et générez le code (collez la config client dans un fichier temporaire d’abord) :
sudo apt install -y qrencode
# Créez le fichier client puis :
qrencode -t ansiutf8 < /tmp/client_phone.conf
Ouvrez l’application WireGuard sur votre téléphone, choisissez « Ajouter un tunnel > Scanner un QR code », scannez, activez le tunnel. Supprimez immédiatement le fichier temporaire contenant la clé privée :
shred -u /tmp/client_phone.conf
Étape 9 : Connecter un ordinateur (Linux / Windows / macOS)
Pour un ordinateur, on procède de même : une paire de clés dédiée, un bloc [Peer] côté serveur avec AllowedIPs = 10.8.0.3/32, et un fichier .conf côté client identique à celui du téléphone (en changeant la clé privée et l’adresse 10.8.0.3/32).
Sur Linux, placez la config dans /etc/wireguard/wg0.conf et lancez :
sudo wg-quick up wg0
Sur Windows et macOS, installez l’application officielle WireGuard, importez le fichier .conf, et activez le tunnel d’un clic.
Vérification
Une fois le tunnel actif sur un client, contrôlez côté serveur que la poignée de main a eu lieu :
sudo wg show
Vous devez voir, sous le peer, une ligne latest handshake récente et des compteurs transfer qui montent. Côté client, vérifiez votre IP publique : elle doit désormais être celle de votre VPS.
curl -s https://api.ipify.org && echo
Testez aussi que le DNS ne fuit pas (les requêtes DNS doivent passer par le serveur configuré dans DNS =). Visitez un site de test de fuite DNS depuis le client connecté.
Bonnes pratiques et sécurité
- Une clé par appareil. Ne partagez jamais la même paire de clés entre plusieurs clients : si un appareil est perdu, vous révoquez uniquement son peer sans impacter les autres.
- Révoquer un client se fait en supprimant son bloc
[Peer]duwg0.confpuis en redémarrant le service. La clé devient inutile instantanément. - Split tunnel. Si vous ne voulez router que l’accès à votre homelab (et pas tout votre trafic), remplacez côté client
AllowedIPs = 0.0.0.0/0par le sous-réseau concerné, ex.10.8.0.0/24, 192.168.1.0/24. - Kill switch. L’app mobile WireGuard propose une option « Bloquer le trafic hors VPN ». Sur desktop,
wg-quickpeut ajouter des règles de pare-feu pour empêcher toute fuite si le tunnel tombe. - DNS privé. Pour ne dépendre d’aucun résolveur public, hébergez un AdGuard Home ou Pi-hole sur le VPS et pointez
DNS = 10.8.0.1côté client. - Sauvegardez
/etc/wireguard. Ce dossier contient toutes vos clés ; incluez-le dans votre stratégie de backup (voir sauvegardes chiffrées avec restic).
FAQ
WireGuard est-il vraiment plus rapide qu’OpenVPN ?
Oui, nettement. Grâce à son intégration au noyau et à une base de code minimaliste, WireGuard offre un débit supérieur et une latence plus faible qu’OpenVPN, surtout sur mobile où l’établissement de connexion est quasi instantané. Le compromis : moins d’options de configuration ésotériques, mais pour 99 % des usages c’est un avantage. Voir WireGuard vs OpenVPN vs Tailscale.
Mon propre VPN est-il plus anonyme qu’un VPN commercial ?
Différent, pas forcément plus anonyme. Vous avez la garantie qu’aucun log n’est revendu, et le contrôle total. Mais l’IP de sortie est unique et associée à vous (louée à votre nom chez l’hébergeur), donc ce n’est pas adapté à l’anonymat de masse. C’est excellent pour la confidentialité du trafic, l’accès distant et le contournement de Wi-Fi non sûrs. Pour de l’anonymat fort, un VPN no-log multi-utilisateurs reste pertinent : voir notre comparatif des meilleurs VPN.
Que faire si la connexion ne s’établit pas (pas de handshake) ?
Vérifiez dans l’ordre : le port 51820/udp est bien ouvert (sudo ufw status), l’Endpoint côté client pointe vers la bonne IP publique, le forwarding IP est actif (sysctl net.ipv4.ip_forward), et la clé publique du client déclarée côté serveur correspond bien. Un sudo wg show sans handshake indique presque toujours un blocage réseau ou une erreur de clé/endpoint.
Combien de clients puis-je connecter ?
Des dizaines sans problème sur un petit VPS : WireGuard est extrêmement léger en CPU et RAM. La limite pratique est plutôt la bande passante de votre VPS et le quota de trafic mensuel de votre offre. Chaque client a juste besoin de son bloc [Peer] et d’une adresse unique dans le sous-réseau 10.8.0.0/24.
Puis-je accéder à mon réseau local domestique via ce VPN ?
Oui, c’est un cas d’usage classique. Si votre homelab est sur le même VPS ou accessible depuis lui, ajoutez le sous-réseau concerné dans les AllowedIPs du client. Pour atteindre un réseau derrière une autre machine, il faut configurer cette machine comme peer relais avec le routage adéquat.
Sur le même sujet
- WireGuard vs OpenVPN vs Tailscale : que choisir en 2026
- Meilleur VPN 2026 : NordVPN, Surfshark, Mullvad, Proton
- Installer et sécuriser un VPS Ubuntu de A à Z
- DigitalOcean vs Vultr vs Hetzner : quel VPS choisir
Vous disposez maintenant d’un VPN personnel chiffré, rapide et entièrement sous votre contrôle. Ajoutez vos appareils au fil de l’eau et pensez à sauvegarder vos clés. Pour suivre les nouveautés du self-hosting et les bons plans VPS, rejoignez notre bot de veille Telegram.