Comment configurer un VPN WireGuard sur votre VPS

Écrit par l'équipe ApexVPS • Dernière mise à jour : juillet 2026 • Lecture de 9 min

Ce tutoriel de configuration de VPN WireGuard sur VPS vous montre comment créer votre propre VPN privé, rapide et moderne sur un serveur Ubuntu ou Debian. WireGuard est un protocole VPN léger intégré au noyau Linux, il est donc nettement plus simple qu'OpenVPN ou IPsec tout en offrant une cryptographie forte et à jour. À la fin, vous aurez un serveur fonctionnel, au moins un client connecté et un contrôle total sur votre propre tunnel chiffré, sans abonnement VPN tiers.

Faire tourner WireGuard sur votre propre machine signifie que le trafic se termine sur du matériel que vous louez, pas sur un point de terminaison VPN grand public surchargé. Si vous voulez comprendre pourquoi une machine privée est une meilleure base pour cela, lisez notre guide sur choisir un VPS pour un VPN personnel avant de commencer.

Ce dont vous avez besoin avant de commencer

Un point de terminaison stable et non saturé compte pour un VPN, c'est pourquoi des ressources véritablement dédiées surpassent l'hébergement partagé survendu. Une IPv4 dédiée est disponible sur les plans Business et Enterprise d'ApexVPS, donnant à votre tunnel une adresse non partagée avec personne.

Étape 1 : Mettre à jour le système et installer WireGuard

Commencez par actualiser l'index des paquets et installez les outils espace utilisateur de WireGuard. Sur un noyau moderne, c'est le seul paquet dont vous avez besoin.

sudo apt update
sudo apt install wireguard -y

Cela installe wg et wg-quick, les deux commandes qui gèrent les clés, les interfaces et la configuration. Vous pouvez confirmer l'installation avec wg --version.

Étape 2 : Générer les clés du serveur

WireGuard authentifie les pairs avec une paire de clés publique/privée, tout comme SSH. Placez-vous dans le répertoire de configuration, resserrez les permissions des fichiers avec umask, et générez les clés en une seule étape.

cd /etc/wireguard
umask 077
wg genkey | sudo tee server_private.key | wg pubkey | sudo tee server_public.key

La ligne umask 077 garantit que la clé privée n'est lisible que par root. Affichez les deux valeurs afin de pouvoir les coller dans la configuration qui suit.

sudo cat /etc/wireguard/server_private.key
sudo cat /etc/wireguard/server_public.key

Gardez la clé privée secrète. Quiconque la détient peut se faire passer pour votre serveur.

Étape 3 : Créer le fichier de configuration du serveur (wg0.conf)

L'interface du serveur est décrite dans un seul fichier, /etc/wireguard/wg0.conf. Créez-le avec l'éditeur de votre choix :

sudo nano /etc/wireguard/wg0.conf

Collez le bloc ci-dessous, en remplaçant <SERVER_PRIVATE_KEY> par la clé privée de l'étape 2 et eth0 par le nom de votre interface réelle s'il diffère.

[Interface]
Address = 10.8.0.1/24
ListenPort = 51820
PrivateKey = <SERVER_PRIVATE_KEY>

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

Ici, 10.8.0.1/24 est le sous-réseau VPN privé, 51820/udp est le port d'écoute, et les règles PostUp/PostDown ajoutent et suppriment le NAT pour que le trafic des clients soit masqué via l'interface publique du serveur. Pour trouver le nom de votre interface, exécutez :

ip route list default

Le mot après dev dans la sortie (souvent eth0, ens3 ou enp1s0) est l'interface à utiliser dans les deux lignes de pare-feu ci-dessus.

Étape 4 : Activer le transfert IP et le NAT

Par défaut, Linux ne route pas les paquets entre les interfaces, donc il faut indiquer au noyau de transférer. Activez cela de manière persistante avec un fichier drop-in sysctl.

echo 'net.ipv4.ip_forward = 1' | sudo tee /etc/sysctl.d/99-wireguard.conf
sudo sysctl -p /etc/sysctl.d/99-wireguard.conf

Si vous routez également l'IPv6 à travers le tunnel, ajoutez net.ipv6.conf.all.forwarding = 1 au même fichier. La règle MASQUERADE de l'étape 3 gère le NAT lui-même, donc une fois le transfert activé, le chemin de routage est complet.

Ouvrir le port du pare-feu

Autorisez le port UDP WireGuard. Si vous utilisez ufw, exécutez ce qui suit, et assurez-vous de garder SSH ouvert pour ne pas vous enfermer dehors.

sudo ufw allow 51820/udp
sudo ufw allow OpenSSH
sudo ufw enable

Si vous gérez les règles directement avec iptables au lieu d'ufw, les lignes PostUp ajoutent déjà les règles de transfert et de NAT ; vous devez seulement vous assurer que le trafic UDP entrant sur le port 51820 est autorisé par tout pare-feu hôte ou groupe de sécurité du fournisseur.

Étape 5 : Démarrer WireGuard avec systemd

wg-quick est livré avec un modèle de service systemd, Vous pouvez donc démarrer le tunnel maintenant et le faire revenir automatiquement après un redémarrage.

sudo systemctl enable --now wg-quick@wg0
sudo systemctl status wg-quick@wg0

L'indicateur enable --now démarre l'interface et la configure pour se lancer au démarrage. Un rapide contrôle de cohérence confirme que l'interface est active :

sudo wg show

Vous devriez voir une interface wg0 avec votre clé publique et le port d'écoute. Il n'y a pas encore de pairs — c'est l'étape suivante.

Étape 6 : Ajouter un client (pair)

Chaque appareil qui se connecte est un pair avec sa propre paire de clés. Générez une paire de clés pour votre premier client :

wg genkey | sudo tee client1_private.key | wg pubkey | sudo tee client1_public.key

Maintenant, enregistrez le client sur le serveur. Ajoutez un bloc [Peer] à /etc/wireguard/wg0.conf, en utilisant la clé publique du client et la prochaine adresse disponible dans le sous-réseau VPN.

[Peer]
PublicKey = <CLIENT1_PUBLIC_KEY>
AllowedIPs = 10.8.0.2/32

Rechargez l'interface pour que le nouveau pair prenne effet :

sudo systemctl restart wg-quick@wg0

Vous préférez ne pas interrompre le tunnel ? Vous pouvez ajouter le pair à chaud sans redémarrage :

sudo wg set wg0 peer <CLIENT1_PUBLIC_KEY> allowed-ips 10.8.0.2/32

Étape 7 : Créer la configuration du client et un code QR

Sur le serveur, assemblez le fichier de configuration du client. C'est ce que l'appareil — un ordinateur portable ou un téléphone — chargera. Remplacez les espaces réservés par la clé privée du client et la clé publique et l'IP publique du serveur.

[Interface]
PrivateKey = <CLIENT1_PRIVATE_KEY>
Address = 10.8.0.2/24
DNS = 1.1.1.1

[Peer]
PublicKey = <SERVER_PUBLIC_KEY>
Endpoint = <SERVER_PUBLIC_IP>:51820
AllowedIPs = 0.0.0.0/0, ::/0
PersistentKeepalive = 25

La définition AllowedIPs = 0.0.0.0/0, ::/0 route tout le trafic du client à travers le tunnel — le comportement classique du VPN complet. PersistentKeepalive = 25 maintient la connexion active à travers le NAT et les pare-feu. Enregistrez ceci sous client1.conf.

Pour un ordinateur de bureau, copiez client1.conf sur la machine et importez-le dans le client WireGuard officiel. Pour un téléphone, générez le fichier en code QR scannable directement dans le terminal :

sudo apt install qrencode -y
qrencode -t ansiutf8 < client1.conf

Ouvrez l'application WireGuard sur Android ou iOS, choisissez "Ajouter un tunnel" puis "Scanner le code QR", et le tunnel s'importe en quelques secondes. Les applications et clients officiels sont tous liés depuis wireguard.com.

Étape 8 : Vérifier le tunnel

Activez le tunnel sur le client, puis confirmez la poignée de main (handshake) sur le serveur. Une connexion saine affiche une poignée de main récente et des compteurs de transfert en hausse.

sudo wg show

Recherchez un horodatage latest handshake et des valeurs transfer non nulles sous votre pair. Enfin, vérifiez depuis le client que votre IP publique est désormais celle du serveur :

curl ifconfig.me

Si cela renvoie l'adresse du VPS, votre trafic passe par le tunnel et la configuration WireGuard du VPS est terminée. Pour ajouter d'autres appareils, répétez les étapes 6 et 7 avec une nouvelle paire de clés et l'adresse suivante dans la plage 10.8.0.0/24.

Dépannage d'une connexion qui ne s'établit pas

Si wg show ne signale jamais de poignée de main, passez en revue les causes courantes dans l'ordre. D'abord, confirmez que le port est réellement ouvert : depuis une autre machine, exécutez nc -uzv <SERVER_PUBLIC_IP> 51820, et vérifiez que le groupe de sécurité ou le pare-feu de votre fournisseur autorise le trafic UDP entrant sur le port 51820, pas seulement le TCP. Ensuite, assurez-vous que le transfert IP est réellement activé avec sysctl net.ipv4.ip_forward — il doit renvoyer 1. Troisièmement, revérifiez que le nom de l'interface dans la règle NAT PostUp correspond à la sortie de ip route list default ; une discordance est la raison la plus courante pour laquelle le trafic s'authentifie mais n'atteint jamais Internet. Enfin, vérifiez que les clés ne sont pas inversées : la configuration du serveur contient la clé privée du serveur et la clé publique du client, tandis que la configuration du client reflète cette organisation. Une clé croisée bloque silencieusement la poignée de main.

Choisir le bon VPS pour WireGuard

WireGuard lui-même est minuscule — le protocole utilise à peine le CPU — donc même un plan d'entrée de gamme peut exécuter un VPN personnel confortablement. Ce qui façonne réellement l'expérience, c'est le réseau : la bande passante, la latence vers votre région, et si l'IP est bien à vous. ApexVPS repose sur des vCPU, de la RAM et du stockage NVMe véritablement dédiés sur 39 emplacements, avec une faible latence dans les grandes régions, afin que le débit reste prévisible plutôt que de s'affaisser sous des voisins bruyants.

Si vous voulez que le tunnel repose sur une adresse stable et non partagée, une IPv4 dédiée est incluse dans les plans Business et Enterprise. Et parce que la vie privée est souvent le but même d'héberger soi-même un VPN, il convient de noter comment vous vous inscrivez : ApexVPS est un VPS sans KYC avec une inscription par e-mail uniquement et un paiement en crypto uniquement via OxaPay, acceptant Bitcoin, Ethereum, USDT et plus de 30 cryptomonnaies — aucun nom, adresse, carte de crédit ou compte bancaire requis.

Questions fréquemment posées

Est-ce que WireGuard est difficile à configurer sur un VPS ?

Non. WireGuard utilise un fichier de configuration petit et lisible ainsi qu'une poignée de commandes standard. Sur un VPS Ubuntu ou Debian récent, vous pouvez l'installer, générer des clés, écrire wg0.conf et connecter votre premier client en environ dix à quinze minutes.

Ai-je besoin d'une IP dédiée pour un VPN WireGuard ?

Une IP dédiée n'est pas strictement requise, mais elle donne à votre tunnel un point de terminaison stable qui n'est pas partagé avec d'autres clients. Chez ApexVPS, une IPv4 dédiée est incluse dans le plan Business, et deux dans Enterprise.

Quelles versions d'Ubuntu et Debian prennent en charge WireGuard ?

WireGuard est intégré au noyau Linux depuis la version 5.6, donc Ubuntu 20.04 et ultérieur, ainsi que Debian 11 et ultérieur l'incluent nativement. Vous n'avez besoin que d'installer les outils userspace avec apt.

Puis-je utiliser le même serveur sur mon téléphone ?

Oui. Ajoutez un second pair pour le téléphone, générez une configuration client, et transformez-la en code QR avec qrencode. Les applications WireGuard officielles pour Android et iOS scannent le code et se connectent instantanément.

Puis-je payer le VPS sans carte de crédit ?

Oui. Le paiement ApexVPS est uniquement en crypto et accepte Bitcoin, Ethereum, USDT et plus de 30 cryptomonnaies. L'inscription ne demande qu'un e-mail pour vous envoyer les informations d'accès — aucun nom, adresse ou pièce d'identité.

Prêt à héberger votre propre VPN ? Découvrez pourquoi ApexVPS est conçu pour les VPN privés →