Installer son propre VPN WireGuard sur un VPS (pas a pas)

Difficulté: Débutant 9 min de lecture Mis à jour: 18.07.2026 11
Installer son propre VPN WireGuard sur un VPS (pas a pas)
Louer un VPS bon marche et le transformer en votre propre VPN WireGuard vous offre un tunnel prive que personne d'autre ne partage - sans abonnement mensuel, sans entreprise qui journalise votre trafic. Ce guide parcourt tout le processus sur un serveur Ubuntu neuf, pas a pas, avec chaque commande a copier-coller. Aucune experience prealable de serveur n'est requise.

Ce dont vous avez besoin avant de commencer

Voici toute la liste des courses. Rien d'exotique ici, et le cout total ne represente que quelques dollars par mois :

  • Un VPS bon marche (serveur virtuel). La formule la plus petite - 1 vCPU et 1 Go de RAM - est largement suffisante pour un usage personnel. Choisissez Ubuntu 22.04 ou 24.04 lors de sa creation.
  • L'adresse IP publique du serveur et un acces SSH root (ou sudo). Votre hebergeur vous les envoie par email juste apres le paiement.
  • Un client SSH. Sous Windows, utilisez le ssh integre de PowerShell ou PuTTY, sous macOS et Linux ouvrez simplement un terminal.
  • Un VPS base sur KVM. Presque toutes les formules le sont, mais evitez les OpenVZ les moins cheres - elles partagent le noyau de l'hote et ne peuvent pas charger WireGuard, donc cette configuration n'y fonctionnera pas. En cas de doute, demandez a l'hebergeur ou choisissez une formule mentionnant "KVM".
  • Environ 15 minutes.
Pourquoi WireGuard : c'est le protocole VPN moderne - quelques centaines de lignes de code, tres rapide et simple a configurer. Compare a OpenVPN, il se connecte plus vite, consomme moins de batterie sur mobile et est bien plus facile a lire et a auditer. C'est precisement cette simplicite qui explique pourquoi nous commencons ici.

Etape 1 : Se connecter et mettre a jour le serveur

Ouvrez votre terminal et connectez-vous, en remplacant l'adresse par l'IP de votre serveur :

ssh root@YOUR_SERVER_IP

La premiere chose a faire sur tout serveur neuf est d'installer les dernieres mises a jour de securite :

apt update && apt upgrade -y

Etape 2 : Installer WireGuard

Une seule commande installe WireGuard et qrencode, un petit outil que nous utiliserons plus tard pour transferer la configuration vers votre telephone sous forme de QR code :

apt install wireguard qrencode -y

Etape 3 : Generer les cles du serveur

WireGuard utilise une cle privee et une cle publique de chaque cote. Creez la paire du serveur dans son repertoire de configuration. Le umask 077 garantit que la cle privee n'est pas lisible par les autres utilisateurs :

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

Affichez les deux cles et gardez-les sous la main pour les etapes suivantes :

cat server_private.key
cat server_public.key

Etape 4 : Trouver votre interface reseau

Pour acheminer votre trafic vers Internet, le serveur doit connaitre le nom de sa carte reseau publique. Executez :

ip route list default

Regardez le mot situe juste apres dev dans la sortie - c'est generalement eth0 ou ens3. Notez-le ; nous en aurons besoin a l'etape suivante.

Etape 5 : Creer la configuration du serveur

Creez le fichier /etc/wireguard/wg0.conf (par exemple avec nano /etc/wireguard/wg0.conf) et collez le bloc ci-dessous. Remplacez SERVER_PRIVATE_KEY par la cle privee de l'etape 3, et remplacez eth0 par le nom de l'interface de l'etape 4 :

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

PostUp = iptables -A FORWARD -i %i -j ACCEPT; iptables -A FORWARD -o %i -j ACCEPT; iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE
PostDown = iptables -D FORWARD -i %i -j ACCEPT; iptables -D FORWARD -o %i -j ACCEPT; iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE

En clair : le serveur prend l'adresse 10.8.0.1 a l'interieur d'un reseau VPN prive, ecoute sur le port UDP 51820, et les deux lignes iptables activent le masquerading qui permet a vos appareils d'atteindre l'ensemble d'Internet par son intermediaire.

Etape 6 : Activer le transfert IP

Par defaut, Linux ne fait pas transiter le trafic d'une interface a une autre. Activez-le avec son propre petit fichier de configuration - une methode propre et reproductible qui n'entrera pas en conflit avec d'autres reglages et ne s'accumulera pas si vous l'executez deux fois :

echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/99-wireguard.conf
sysctl --system

Etape 7 : Creer un client et l'ajouter comme pair

Generez maintenant une paire de cles pour votre premier appareil (votre ordinateur portable ou votre telephone) :

wg genkey | tee client_private.key | wg pubkey > client_public.key
cat client_private.key
cat client_public.key

Informez le serveur de l'existence de ce client en ajoutant un bloc [Peer] a la fin de /etc/wireguard/wg0.conf. Utilisez ici la cle publique du client :

[Peer]
PublicKey = CLIENT_PUBLIC_KEY
AllowedIPs = 10.8.0.2/32

Etape 8 : Ouvrir le pare-feu et demarrer WireGuard

Autorisez le SSH (pour ne pas vous verrouiller a l'exterieur) et le port WireGuard, puis activez le pare-feu :

ufw allow 22/tcp
ufw allow 51820/udp
ufw enable
Verifiez d'abord votre port SSH. Si votre hebergeur a place le SSH sur un port non standard (autre que 22), autorisez ce port a la place - par exemple ufw allow 2222/tcp - avant d'executer ufw enable, sinon le pare-feu vous verrouillera hors de votre propre serveur.

Demarrez le tunnel et configurez-le pour qu'il se lance automatiquement a chaque redemarrage :

systemctl enable --now wg-quick@wg0

Verifiez qu'il fonctionne - vous devriez voir l'interface et votre port d'ecoute :

wg show

Etape 9 : Creer la configuration du client

Chaque appareil qui se connecte a besoin d'un petit fichier de configuration. Sur le serveur, creez un fichier nomme client.conf et renseignez CLIENT_PRIVATE_KEY (de l'etape 7), SERVER_PUBLIC_KEY (de l'etape 3) et l'IP publique de votre serveur :

[Interface]
PrivateKey = CLIENT_PRIVATE_KEY
Address = 10.8.0.2/32
DNS = 1.1.1.1

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

La ligne AllowedIPs = 0.0.0.0/0, ::/0 est ce qui envoie tout votre trafic dans le tunnel. Definir DNS = 1.1.1.1 empeche vos requetes de fuiter vers votre fournisseur local. C'est ce meme client.conf que vous chargerez sur chaque appareil ci-dessous.

Etape 10 : Installer l'application WireGuard et se connecter

WireGuard dispose d'une application officielle gratuite pour chaque plateforme. Il y a deux facons de charger votre client.conf : scanner un QR code (le plus simple sur telephone) ou importer le fichier (le plus simple sur ordinateur). Pour generer un QR code, executez ceci sur le serveur et gardez la fenetre du terminal bien large afin que le code ne soit pas deforme :

qrencode -t ansiutf8 < client.conf

Android : installez l'application WireGuard depuis Google Play. Ouvrez l'application, appuyez sur le bouton +, choisissez Scanner depuis un QR code, pointez l'appareil photo vers le code dans votre terminal, donnez un nom au tunnel, puis basculez l'interrupteur pour vous connecter.

iPhone et iPad : installez l'application WireGuard depuis l'App Store. Appuyez sur +, choisissez Creer depuis un QR code, scannez le code, nommez le tunnel et activez-le. Autorisez la configuration VPN lorsque iOS le demande.

Windows : telechargez l'application depuis wireguard.com/install. Copiez votre client.conf sur le PC, ouvrez l'application, cliquez sur Importer des tunnels depuis un fichier, selectionnez client.conf, puis cliquez sur Activer.

macOS : installez l'application WireGuard depuis le Mac App Store. Cliquez sur Importer des tunnels depuis un fichier, selectionnez votre client.conf, autorisez la configuration VPN, puis cliquez sur Activer.

Linux (bureau) : installez le paquet avec apt install wireguard (ou l'equivalent de votre distribution ; voir wireguard.com/install), copiez client.conf dans /etc/wireguard/, et activez-le avec wg-quick up client. Deconnectez-vous avec wg-quick down client.

Vous ajoutez un autre appareil ? Repetez l'etape 7 pour chaque nouveau telephone ou ordinateur portable : generez une nouvelle paire de cles, attribuez a l'appareil la prochaine adresse libre (10.8.0.3/32, puis 10.8.0.4/32, et ainsi de suite), ajoutez son propre bloc [Peer] a wg0.conf, et appliquez le changement avec systemctl restart wg-quick@wg0. Donnez a chaque appareil sa propre cle - ne chargez jamais une meme configuration sur deux appareils a la fois.

Etape 11 : Verifier que le tunnel fonctionne reellement

Activez la connexion, puis verifiez deux choses sur notre page Outils reseau. D'abord, qu'internet voit l'IP de votre serveur et non celle de votre domicile - la page affiche votre IP actuelle et votre pays tout en haut. Ensuite, ouvrez l'onglet DNS Leak Test et lancez le test : chaque resolveur affiche doit appartenir a votre fournisseur DNS, jamais a votre FAI domestique. Si les deux sont bons, votre VPN prive fonctionne.

Erreurs frequentes

  • Mauvais nom d'interface. Si eth0 dans la configuration ne correspond pas a ce qu'a montre l'etape 4, le trafic se connectera mais n'atteindra jamais Internet. C'est la cause numero un d'un tunnel "connecte mais sans Internet".
  • Transfert IP oublie. Sauter l'etape 6 produit le meme symptome d'impasse. Relancez sysctl --system et verifiez que cat /proc/sys/net/ipv4/ip_forward renvoie 1.
  • Pare-feu de l'hebergeur. Certains hebergeurs disposent de leur propre pare-feu dans un panneau de controle, en plus de ufw. Assurez-vous que le port UDP 51820 y est egalement ouvert.
  • Cles melangees. La configuration du serveur contient la cle publique du client ; la configuration du client contient la cle publique du serveur. Les cles privees ne quittent jamais la machine sur laquelle elles ont ete creees.
  • IPv6 qui passe a cote. Ce guide envoie l'IPv6 dans le tunnel (::/0) mais configure le serveur pour l'IPv4 uniquement, donc certains sites accessibles seulement en IPv6 peuvent se charger lentement ou pas du tout. Si cela se produit, la solution la plus simple est de desactiver l'IPv6 sur l'appareil client, ou d'ajouter la prise en charge de l'IPv6 sur le serveur ulterieurement.
  • Decalage d'horloge. WireGuard fonctionne bien, mais si l'horloge du serveur est fortement erronee, le TLS vers les sites web echoue. Executez timedatectl et activez le NTP si necessaire.

Quand WireGuard seul ne suffit pas

Un tunnel WireGuard auto-heberge est excellent pour la confidentialite - votre trafic est chiffre et lie a un serveur que vous seul utilisez. Mais dans les pays a censure agressive, il presente une faiblesse : les systemes d'inspection approfondie des paquets (DPI) peuvent reconnaitre le trafic WireGuard grace a son empreinte et le ralentir ou le bloquer, meme s'ils ne peuvent pas lire ce qu'il contient. Les operateurs russes, par exemple, sont passes au blocage des VPN au niveau des boitiers TSPU installes sur chaque reseau, et les regulateurs y ont ouvertement pousse vers un blocage total du trafic VPN. Si votre objectif est de contourner ce type de DPI plutot que d'assurer une confidentialite au quotidien, un protocole qui se deguise en HTTPS ordinaire - comme VLESS avec Reality - est le meilleur outil. Nous couvrirons cette configuration dans un guide distinct de cette section.

Dans la plupart des pays du monde, louer un serveur et y faire tourner son propre VPN est parfaitement legal - c'est la meme technologie que les entreprises utilisent pour le travail a distance. Vous restez toutefois responsable de ce que vous faites via ce VPN : un VPN change l'endroit d'ou votre trafic semble provenir, il ne vous place pas au-dessus de la loi. Une poignee de pays restreignent ou soumettent a licence l'usage des VPN, verifiez donc les regles la ou vous vivez reellement. Et gardez a l'esprit les limites honnetes de l'auto-hebergement : votre trafic est prive vis-a-vis de votre reseau local et de votre FAI, mais l'entreprise qui vous loue le VPS peut toujours voir qu'un serveur existe a cette IP et quelle quantite de donnees il fait transiter. Pour la plupart des gens, ce compromis en vaut largement la peine - vous obtenez un tunnel que personne d'autre ne partage, selon vos conditions.

Gardez-le pour vous : sauvegardez /etc/wireguard/ dans un endroit sur, ne partagez jamais une cle privee, et creez un bloc [Peer] distinct avec sa propre paire de cles pour chaque nouvel appareil plutot que d'en reutiliser un. Si un appareil est perdu, vous pouvez alors revoquer uniquement ce pair. Une fois un appareil configure, supprimez du serveur les fichiers client restants afin que sa cle privee ne traine pas : rm client.conf client_private.key.
Pour aller plus loin : vous voulez que votre serveur ne garde aucune trace ? Consultez notre guide Comment faire pour que votre VPS ne conserve aucun journal.
Étiquettes: wireguard vpn vps self-hosted privacy tutorial linux