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
sshintegre 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.
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
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
eth0dans 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 --systemet verifiez quecat /proc/sys/net/ipv4/ip_forwardrenvoie1. - 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 UDP51820y 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
timedatectlet 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.
Heberger son propre VPN est-il legal ?
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.
/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.