Comment utiliser un fichier de configuration WireGuard
Sur cette page
Une connexion WireGuard, c'est un fichier texte. Vraiment, rien de plus — quelques lignes qui contiennent vos clés, l'adresse du serveur et les règles qui décident de ce qui passe par le tunnel. Une fois ce fichier en main, se connecter à un serveur VPN WireGuard revient simplement à le confier à l'application WireGuard de l'appareil que vous utilisez.
Ce guide fait deux choses. D'abord, il lit un vrai fichier de configuration ligne par ligne, pour que vous sachiez à quoi sert chaque paramètre et lequel modifier quand quelque chose ne va pas. Ensuite, il explique comment importer ce fichier et se connecter sur Windows, Android, iPhone, macOS, Linux et un routeur, puis passe en revue les quelques problèmes à l'origine de presque toutes les plaintes sur WireGuard : le handshake qui n'aboutit jamais, et le tunnel connecté qui ne charge aucune page.
Ce que contient un fichier .conf, ligne par ligne
Toute configuration WireGuard a la même structure en deux parties. [Interface] décrit votre extrémité du tunnel ; [Peer] décrit la machine à laquelle vous vous connectez. Voici une configuration client complète, avec les secrets remplacés par des valeurs fictives :
[Interface] PrivateKey = YOUR_PRIVATE_KEY_KEEP_THIS_SECRET Address = 10.7.0.4/32 DNS = 10.7.0.1 [Peer] PublicKey = THE_SERVER_PUBLIC_KEY_FROM_YOUR_PROVIDER Endpoint = 198.51.100.10:51820 AllowedIPs = 0.0.0.0/0, ::/0 PersistentKeepalive = 25
198.51.100.10 est une adresse de documentation réservée par la RFC 5737 — rien de tout cela ne se connecte à quoi que ce soit. Utilisez les valeurs de votre propre fichier.Le bloc [Interface] : votre côté
- PrivateKey — c'est votre identité sur le VPN. Quiconque la détient peut se faire passer pour vous. Elle fait 44 caractères base64 et se termine par
=; si la vôtre a une autre longueur, le fichier a été tronqué quelque part lors d'une copie. - Address — l'IP que votre appareil possède à l'intérieur du tunnel, pas votre IP publique. Le
/32signifie « cette seule adresse », ce qui est normal pour un client. - DNS — le résolveur utilisé tant que le tunnel est actif. Sans lui, votre appareil continue d'interroger l'ancien résolveur, ce qui révèle ce que vous cherchez et, souvent, ne permet de résoudre rien de l'autre côté.
- MTU — facultative, mais c'est la ligne la plus utile à connaître. Elle manque dans la plupart des fichiers parce que la valeur par défaut convient ; voyez le dépannage pour le cas où elle ne convient pas.
Le bloc [Peer] : le côté du serveur
- PublicKey — la clé publique du serveur. La vôtre n'apparaît jamais dans votre propre fichier ; c'est le serveur qui la détient.
- Endpoint — où envoyer les paquets, sous la forme
host:port. WireGuard fonctionne uniquement en UDP, et51820est le port habituel, pas un port obligatoire. - AllowedIPs — les destinations qui passent par le tunnel.
0.0.0.0/0, ::/0signifie tout, ce qui est précisément le rôle d'un VPN de confidentialité. Une liste plus restreinte — par exemple uniquement le réseau interne de votre entreprise — n'envoie que cela dans le tunnel et laisse le reste sur votre connexion habituelle. Cette configuration s'appelle un split tunnel, et c'est un choix délibéré, pas un tunnel complet cassé. - PersistentKeepalive — envoie un petit paquet toutes les 25 secondes pour que l'équipement NAT entre vous et le serveur garde le chemin de retour ouvert. Nécessaire dès que vous êtes derrière un NAT, ce qui est toujours le cas sur un téléphone ou une connexion domestique.
Address et DNS ne sont pas du tout des paramètres WireGuard — ce sont des instructions pour l'utilitaire wg-quick, qui configure votre interface réseau. WireGuard lui-même ne les voit jamais. Vous pouvez le constater : wg-quick strip wg0 affiche la configuration que le noyau reçoit réellement, et les deux lignes ont tout simplement disparu. C'est important si vous configurez un jour un tunnel avec wg setconf au lieu de wg-quick, car alors rien ne vous attribue d'adresse ni de résolveur, et le tunnel démarre connecté à rien.Besoin d'un fichier de configuration à importer ? Un service HytHost VPN vous remet une configuration WireGuard prête à l'emploi dès €0.99/mois.
Voir les offres VPNWindows : importer le tunnel
Windows dispose d'une application WireGuard officielle, et y importer un fichier constitue tout le travail.
- Installez WireGuard depuis wireguard.com/install.
- Cliquez sur Ajouter le tunnel en bas à gauche, ce qui ouvre un sélecteur de fichiers filtré sur Fichiers de configuration (*.zip, *.conf). Choisissez votre
.conf: il apparaît dans la liste des tunnels, sous le nom du fichier. - Ou collez-le. La flèche à côté de Ajouter le tunnel propose Ajouter un tunnel vide…, qui vous donne une zone de texte — pratique quand la configuration est arrivée dans un message plutôt que sous forme de fichier. Une nouvelle clé privée y est déjà pré-remplie : supprimez cette ligne et collez votre propre configuration par-dessus.
- Cliquez sur Activer. L'état passe à Activée et le panneau commence à compter les octets transférés. Ce compteur est votre vérification la plus rapide : s'il montre des données qui partent et rien qui revient, votre handshake n'aboutit pas.
Android et iPhone : scanner le QR code ou importer le fichier
Sur un téléphone, vous avez deux options, et le QR code existe précisément parce que taper une clé de 44 caractères sur un écran tactile est un calvaire.
Android
- Installez WireGuard depuis le Play Store et appuyez sur le bouton +.
- L'écran Créer un tunnel WireGuard propose Importer depuis un QR code, Importer depuis un fichier ou une archive et la création d'un tunnel de zéro. Choisissez l'option qui correspond à ce que vous avez reçu.
- Donnez un nom au tunnel si on vous le demande, puis activez son interrupteur. Android demande une seule fois l'autorisation d'ajouter une configuration VPN — cette demande vient du système d'exploitation, pas de l'application.
iPhone et iPad
- Installez WireGuard depuis l'App Store et appuyez sur Ajouter un tunnel.
- Sous Ajouter un nouveau tunnel WireGuard, choisissez Créer à partir d'un code QR ou Créer depuis un fichier ou une archive. L'écran du scanner s'intitule Scanner le code QR ; après un scan réussi, il vous demande de nommer le tunnel.
- Activez-le et autorisez la configuration VPN quand iOS le demande.
Créer un QR code à partir d'un fichier de configuration que vous avez déjà
Un QR code n'a pas à vous être fourni par votre fournisseur — ce n'est que votre fichier de configuration dessiné sous forme d'image, et vous pouvez le produire vous-même en une commande. L'application WireGuard le suggère d'ailleurs elle-même :
# prints the code straight into the terminal, ready to scan off the screen qrencode -t ansiutf8 < wg0.conf # or write it to an image file qrencode -o wg0.png < wg0.conf
Sous Debian ou Ubuntu, qrencode s'installe avec apt install qrencode ; sous macOS, avec brew install qrencode.
macOS et Linux
macOS
Installez WireGuard depuis le Mac App Store. L'application Mac n'est pas l'application iPhone sur un plus grand écran : elle vit dans la barre des menus, et sa fenêtre s'ouvre depuis Gestion des tunnels. Cliquez sur Importer le(s) tunnel(s) à partir du fichier (la barre des menus propose la même chose sous Importer le(s) tunnel(s) à partir du fichier…), choisissez votre .conf, puis sélectionnez le tunnel et cliquez sur Activer. Le Mac n'a pas de scanner de QR code — les QR codes, c'est pour les téléphones —, alors utilisez le fichier lui-même, ou choisissez Ajouter un tunnel vide… et collez-y la configuration.
Si vous préférez travailler dans un terminal, brew install wireguard-tools vous donne les mêmes commandes wg-quick que sous Linux, décrites juste après.
Linux
- Installez les outils. Sous Debian ou Ubuntu :
sudo apt install wireguard. La plupart des distributions ont un paquet du même nom. - Placez le fichier là où wg-quick le cherche. C'est l'étape où l'on se trompe le plus, car le nom du fichier devient le nom de l'interface :
sudo install -m 600 -o root -g root wg0.conf /etc/wireguard/wg0.conf
Le600compte — le fichier contient votre clé privée et ne doit pas être lisible par les autres utilisateurs de la machine. Gardez un nom court et simple ; il doit être un nom d'interface réseau valide. - Démarrez-le :
sudo wg-quick up wg0 sudo wg show
wg showest la seule commande à retenir. Elle affiche le pair, l'endpoint, une ligne latest handshake et les compteurs de transfert. Un horodatage de handshake qui n'apparaît jamais est la signature du problème traité dans la section suivante. - Démarrage au boot :
sudo systemctl enable --now wg-quick@wg0. Pour arrêter le tunnel à la main,sudo wg-quick down wg0.
wg-quick: `/etc/wireguard/wg0.conf' does not exist signifie que le nom que vous avez passé ne correspond à aucun fichier de ce répertoire — vous avez demandé wg0 et le fichier s'appelle autrement. Et si le tunnel refuse de démarrer en se plaignant de resolvconf, c'est la ligne DNS : wg-quick a besoin de resolvconf ou de systemd-resolved pour l'appliquer. Installez l'un des deux, ou supprimez la ligne DNS et configurez vous-même votre résolveur.Sur le routeur, pour couvrir toute la maison
Placer le tunnel sur le routeur couvre tous les appareils qui se trouvent derrière, y compris ceux qui ne peuvent pas du tout faire tourner une application VPN — une console de jeux, une télévision, une enceinte connectée. Que ce soit possible dépend entièrement de votre firmware.
| Firmware | Prise en charge de WireGuard | Où regarder |
|---|---|---|
| OpenWrt | Oui, avec un paquet | Installez luci-proto-wireguard, puis ajoutez une interface de protocole WireGuard VPN et remplissez les champs à partir de votre fichier |
| Asus (firmware d'origine récent) | Oui sur de nombreux modèles | La section VPN comporte un client WireGuard qui importe directement un .conf |
| Asuswrt-Merlin | Oui | Même principe, avec plus de contrôle sur le routage |
| Mikrotik RouterOS 7 | Oui | WireGuard est intégré ; RouterOS 6 ne l'a pas du tout |
| Box classique fournie par le FAI | En général non | Pas de WireGuard et aucun moyen de l'ajouter — voir ci-dessous |
Si votre routeur est la box que votre fournisseur d'accès vous a remise, les options réalistes sont de placer derrière elle un routeur que vous contrôlez, ou de continuer avec des configurations par appareil. Aucune des deux n'est un échec ; une configuration par appareil est même souvent préférable, car vous pouvez laisser le tunnel désactivé sur les appareils qui n'en ont pas besoin.
Une chose à décider avant de faire passer toute la maison par un tunnel : tout y passera alors. Les sites bancaires qui n'aiment pas les adresses étrangères, les services de streaming qui vérifient votre région et tout ce qui communique avec des appareils de votre propre réseau peuvent se comporter différemment. C'est là qu'un AllowedIPs plus restreint prouve son utilité — n'envoyez que ce qui doit passer, et laissez le reste tranquille.
Connecté mais rien ne charge, et autres vrais problèmes
WireGuard est particulièrement silencieux quand il échoue, et c'est un choix de conception délibéré — un paquet non authentifié ne reçoit aucune réponse, si bien qu'un scanner ne peut pas savoir si quelque chose écoute. L'effet secondaire, c'est qu'une mauvaise clé, un mauvais port et un réseau bloqué se ressemblent parfaitement de votre côté : le silence. Partez du symptôme.
| Ce que vous voyez | Ce que c'est en général | Où regarder |
|---|---|---|
| Jamais de handshake ; les octets envoyés augmentent, les octets reçus restent à zéro | Rien ne répond, ou la réponse ne peut pas revenir | Endpoint, la PublicKey du serveur, UDP bloqué |
| Handshake correct, les petites choses marchent, les pages web restent à moitié chargées | MTU | Ajoutez une ligne MTU dans [Interface] |
| Connecté, mais aucun nom n'est résolu | DNS | La ligne DNS, et resolvconf sous Linux |
| Connecté, les noms sont résolus, mais aucun trafic ne passe par le tunnel | AllowedIPs trop restreint | AllowedIPs dans [Peer] |
| Fonctionne, puis s'arrête après une ou deux minutes d'inactivité | Le mappage NAT a expiré | PersistentKeepalive = 25 |
« Handshake did not complete »
Votre appareil a envoyé un paquet d'initiation et n'a rien reçu en retour. Vérifiez, dans cet ordre :
- L'endpoint. Bon hôte, bon port, et le port est en UDP. Une faute de frappe ici produit exactement ce symptôme et rien d'autre.
- Que l'UDP sorte bien vers l'extérieur. Les wifi invités, les réseaux d'hôtel, certains réseaux d'entreprise et quelques opérateurs mobiles n'autorisent que le TCP sur les ports courants. Si la même configuration fonctionne sur votre connexion domestique et échoue sur un réseau précis, la configuration est bonne et c'est le réseau qui pose problème.
- Que les clés soient dans le bon sens. La
PublicKeyde[Peer]est la clé publique du serveur, et le serveur doit de son côté détenir la clé publique qui correspond à votrePrivateKey. Une configuration copiée pour un autre appareil échoue à cette étape. - Votre horloge. Le handshake WireGuard inclut un horodatage et rejette celui qui est trop décalé. Rare, mais cela arrive sur des appareils qui ont perdu l'heure.
Si le tunnel fonctionne depuis chez vous mais jamais depuis une connexion mobile, la cause peut se trouver du côté de votre fournisseur plutôt que du vôtre — le carrier-grade NAT et les dispositifs similaires changent ce qui peut vous atteindre. Le guide sur la redirection de ports explique comment l'identifier depuis votre propre routeur en quelques minutes.
Le problème de MTU, qui vaut la peine d'être compris une fois
C'est le cas classique du « connecté mais Internet ne marche pas », et le schéma est caractéristique : le ping marche, le DNS marche, les petites pages s'affichent, et tout ce qui est un peu lourd bloque indéfiniment.
La cause, c'est la taille. Encapsuler votre trafic pour le tunnel ajoute des en-têtes, si bien qu'un paquet qui tenait tout juste sur votre connexion normale ne tient plus une fois dans WireGuard. Les petits paquets passent sans problème ; les gros sont abandonnés. Normalement, le réseau indique à l'expéditeur d'utiliser des paquets plus petits, mais le message qui s'en charge est fréquemment filtré : au lieu d'une erreur, vous attendez, tout simplement.
La solution consiste à dire à WireGuard d'utiliser des paquets plus petits dès le départ. wg-quick s'y emploie déjà : il prend la MTU de votre route normale et retire 80 octets pour la surcharge du tunnel, ce qui donne 1420 sur une connexion ordinaire à 1500 octets. Quand c'est encore trop — certains réseaux mobiles, la plupart des connexions qui passent déjà par un autre tunnel —, définissez-la explicitement et descendez progressivement :
[Interface] MTU = 1420 # what wg-quick would have picked # still stalling? try 1380, then 1280
1280 est le plancher à essayer, car c'est la plus petite taille de paquet qu'IPv6 impose à tous de transporter : elle passe donc à peu près sur n'importe quel chemin. Elle coûte un peu d'efficacité et vaut bien mieux qu'un tunnel qui se bloque.
Le tunnel est actif mais rien n'y passe
Vérifiez d'abord AllowedIPs. Ce n'est ni un pare-feu ni une liste d'autorisations — il décide quelles destinations sont routées dans le tunnel, tout simplement. S'il n'inclut pas 0.0.0.0/0, le trafic vers le reste d'Internet n'a jamais été censé passer par le tunnel, et votre connexion se comporte exactement comme elle a été configurée. Sous Linux, ip route show table all | grep wg0 montre ce qui a réellement été routé.
Si le routage est bon et que seuls les noms ne se résolvent pas, c'est la ligne DNS — soit elle manque, soit elle est présente mais n'est pas appliquée parce que resolvconf n'est pas installé.
D'où vient le fichier de configuration
Tout ce qui précède suppose que vous avez un fichier. Il y a exactement deux façons d'en obtenir un.
Faire tourner le serveur vous-même
Vous générez une paire de clés, installez WireGuard sur une machine dotée d'une adresse publique, ajoutez votre appareil comme pair et écrivez la configuration client à la main. Ce n'est pas difficile, et c'est une vraie compétence à acquérir. Le coût, lui, est permanent : un serveur à payer et à maintenir à jour, et une modification manuelle aux deux extrémités chaque fois que vous ajoutez un appareil — car, rappelez-vous, un pair correspond à un appareil.
L'obtenir auprès d'un fournisseur
L'autre possibilité, c'est que le fichier soit généré pour vous et que vous n'ayez qu'à le télécharger. Avec HytHost VPN, dès €0.99/mois, voici où il se trouve :
- Commandez le service et connectez-vous à l'espace client, puis ouvrez votre service VPN dans la liste.
- Repérez la section WireGuard Configuration. Elle vous propose deux boutons — Copy to Clipboard, qui copie le texte de la configuration dans votre presse-papiers, et Download Configuration, qui vous remet le fichier prêt à l'emploi.
- Si vous l'avez copiée, collez-la dans un éditeur de texte brut et enregistrez-la avec l'extension
.conf—wg0.confest un bon nom. Vérifiez que votre éditeur n'a pas ajouté.txtà la fin. - Importez-la en suivant la section ci-dessus correspondant à votre appareil. Sur un téléphone, transformez-la d'abord en QR code avec
qrencode.
La même page indique si le tunnel est actuellement connecté au serveur, ce qui tranche la question « est-ce que ça vient de moi ou d'eux » avant que vous ne commenciez à modifier des réglages. Il n'y a pas de bouton pour le QR code — générez-le vous-même à partir du fichier, ce qui signifie aussi que le code ne transite jamais là où il n'avait pas besoin d'aller.
Besoin d'un fichier de configuration à importer ? Un service HytHost VPN vous remet une configuration WireGuard prête à l'emploi dès €0.99/mois.
Voir les offres VPNQuestions fréquentes
Installez l'application WireGuard officielle, importez le fichier de configuration fourni par votre serveur ou votre fournisseur, puis activez le tunnel. Sous Windows, c'est Ajouter le tunnel puis Activer ; sur Android et iPhone, vous pouvez scanner le fichier sous forme de QR code au lieu de l'importer ; sous Linux, placez le fichier dans /etc/wireguard/ et lancez wg-quick up avec son nom. Un horodatage de handshake et des données reçues dans l'application confirment que la connexion est établie.
Un simple fichier texte, qui se termine normalement par .conf et contient deux blocs. [Interface] décrit votre appareil : sa clé privée, l'adresse qu'il prend dans le tunnel et le résolveur à utiliser. [Peer] décrit le serveur : sa clé publique, son hôte et son port UDP, et les destinations à router par le tunnel. Ce fichier constitue toute la connexion — rien d'autre n'est stocké sur votre appareil.
Pas de manière fiable, et la raison mérite d'être connue. Une configuration correspond à un pair, identifié par une paire de clés, et le serveur ne retient qu'un seul emplacement actuel par pair. Connectez un téléphone et un ordinateur portable avec le même fichier, et le serveur enverra le trafic de retour à celui qui a fait le dernier handshake : les deux connexions se coupent et reviennent sans cesse. Chaque appareil a besoin de sa propre configuration, avec sa propre paire de clés.
Vous le générez à partir du fichier de configuration que vous avez déjà — un QR code WireGuard n'est rien d'autre que ce fichier encodé en image. Lancez qrencode -t ansiutf8 < wg0.conf pour l'afficher dans un terminal et le scanner à l'écran, ou qrencode -o wg0.png < wg0.conf pour enregistrer une image. Comme le code contient la clé privée, traitez-le comme le fichier lui-même : ne le publiez jamais nulle part.
Non. La clé privée est ce qui identifie votre appareil sur le VPN, donc quiconque possède le fichier peut se connecter à votre place. Elle ne doit jamais être publiée dans un chat, un forum, un gestionnaire de tickets ou un ticket de support, et il en va de même pour un QR code ou une capture d'écran du fichier. Si une configuration a été exposée, la solution est de générer une nouvelle paire de clés et de remplacer le pair, plutôt que d'espérer que personne ne l'a lue.
Ce message signifie que le paquet d'initiation est parti et que rien n'est revenu, et WireGuard ne peut pas vous dire pourquoi puisqu'il n'a jamais reçu de réponse. Vérifiez l'hôte et le port de Endpoint, assurez-vous que le réseau sur lequel vous êtes autorise l'UDP sortant, et confirmez que la PublicKey sous [Peer] est bien la clé du serveur, tandis que le serveur détient la clé publique correspondant à votre clé privée. Si le même fichier fonctionne sur un autre réseau, le fichier est correct et c'est le réseau qui filtre l'UDP.
Ce schéma — handshake correct, ping correct, pages web qui bloquent — vient presque toujours de la MTU. Une fois le trafic encapsulé pour le tunnel, chaque paquet grossit, si bien que des paquets qui tenaient auparavant sont abandonnés, et le message qui devrait le signaler est souvent filtré. Ajoutez une ligne MTU dans [Interface] : 1420 est ce que wg-quick calculerait sur une connexion ordinaire, et 1380 ou 1280 fonctionnent là où c'est encore trop grand.
Pas pour utiliser un fichier de configuration. Le client établit une connexion UDP sortante vers le serveur, et la réponse revient par le mappage que cette connexion crée — c'est justement ce que PersistentKeepalive maintient ouvert. Un port n'a besoin d'être ouvert que du côté qui fait tourner le serveur WireGuard et doit accepter des connexions entrantes.
Auprès d'un fournisseur qui la génère pour vous. Un service HytHost VPN, dès €0.99/mois, affiche dans l'espace client une section WireGuard Configuration avec un bouton pour copier le texte de la configuration et un autre pour télécharger le fichier prêt à l'emploi. De là, il s'importe dans l'application WireGuard sur n'importe quel appareil, et la même page indique si le tunnel est actuellement connecté.
Un fichier de configuration qui vous appartient
HytHost VPN vous fournit une configuration WireGuard que vous téléchargez une fois et importez sur n'importe quel appareil — Windows, Android, iPhone, macOS, Linux ou votre routeur. Dès €0.99/mois.
Live chat 8 AM – 11 PM (Chișinău time) · tickets answered during business hoursCe guide vous a-t-il été utile ?