VPN Wireguard · 16 min read · Oct 05, 2025
Comment installer Wireguard VPN sur Debian 11

Wireguard est un protocole VPN gratuit et open-source, alternatif à IPSec, IKEv2 et OpenVPN. Wireguard est conçu pour les systèmes d’exploitation Linux et Unix. Il fonctionne dans l’espace noyau Linux, ce qui rend Wireguard plus rapide et plus fiable. Wireguard est utilisé pour créer des connexions de tunnel sécurisées entre deux ordinateurs ou plus.
Wireguard vise à remplacer les protocoles VPN tels qu’IPSec, IKEv2 et OpenVPN. Wireguard est plus léger, plus rapide, facile à configurer et plus efficace. Et en même temps, Wireguard n’a pas sacrifié l’aspect sécurité du protocole VPN. Wireguard prend en charge une cryptographie moderne à la pointe de la technologie comme le cadre de protocole Noise, Curve25519, ChaCha20, Poly1305, BLAKE2, SipHash24, HKDF et des constructions sécurisées et fiables.
Comparé à d’autres protocoles VPN tels qu’OpenVPN, IPSec et IKEv2, Wireguard est un nouveau protocole VPN. Wireguard a été publié en 2015 par Jason A. Donenfeld comme un protocole VPN alternatif, il a été intégré au noyau Linux v5.6 par Linus Torvalds en 2020, et la même année, il a également été porté sur FreeBSD 13.
Dans ce tutoriel, vous allez installer et configurer un serveur VPN via Wireguard sur des serveurs Debian 11. Vous allez configurer un serveur VPN Wireguard avec un serveur Debian 11, puis configurer une machine cliente pour se connecter au serveur VPN Wireguard.
En ce qui concerne la machine cliente, vous pouvez utiliser n’importe quelle distribution Linux, mais cet exemple utilise une machine Debian.
Prérequis
Pour commencer ce tutoriel, vous devez avoir les exigences suivantes :
- Un serveur Debian 11 - Cet exemple utilise un serveur Debian avec le nom d’hôte ‘ wireguard-server ‘ et une adresse IP statique externe ‘ SERVER-IP ‘.
- Une machine Linux qui sera utilisée comme client - Vous pouvez utiliser n’importe quelle distribution Linux, mais cet exemple utilise une machine Debian avec le nom d’hôte ‘client1’.
- Un utilisateur non-root avec des privilèges sudo/root d’administrateur.
Si toutes ces exigences sont prêtes, commençons.
Installation de Wireguard
Avant d’installer Wireguard, exécutez la commande apt ci-dessous pour mettre à jour et rafraîchir votre index de paquets Debian.
sudo apt updateUne fois les dépôts Debian mis à jour, exécutez la commande apt ci-dessous pour installer le paquet Wireguard sur votre serveur Debian. Cela installera également le paquet wireguard-tools qui sera utilisé pour gérer votre installation de serveur Wireguard.
sudo apt install wireguardLorsque vous êtes invité à confirmer, saisissez y pour confirmer et appuyez sur ENTRÉE pour continuer. Maintenant, l’installation devrait commencer.

Avec Wireguard installé sur votre serveur, vous êtes prêt à générer une paire de clés publique et privée pour le serveur et le client Wireguard.
Génération de la paire de clés publique/privée
Dans cette étape, vous allez générer une paire de clés publique et privée pour le serveur Wireguard et la machine cliente. Cela peut être fait via la ligne de commande ‘wg’ fournie par le paquet wireguard-tools.
La paire de clés pour le serveur sera utilisée par le serveur Wireguard, et la machine cliente utilisera la paire de clés pour le client. Si vous avez plusieurs machines clientes, vous pouvez générer plusieurs paires de clés pour vos clients.
Génération de la paire de clés pour le serveur Wireguard
Exécutez la commande ‘ wg genkey ‘ ci-dessous pour générer la clé privée pour le serveur Wireguard. Ensuite, changez la permission de la clé privée à ‘ 0400 ‘, ce qui désactivera l’accès en lecture et en écriture pour le groupe et les autres.
Dans cet exemple, vous allez générer la clé privée ‘/etc/wireguard/server.key’.
wg genkey | sudo tee /etc/wireguard/server.key
sudo chmod 0400 /etc/wireguard/server.keyVous recevrez ensuite une sortie de clé aléatoire en base64 sur votre écran de terminal.
Ensuite, exécutez la commande ci-dessous ‘ wg pubkey ‘ pour générer la nouvelle clé publique du serveur dans ‘ /etc/wireguard/server.pub ‘. La clé publique du serveur est dérivée de la clé privée du serveur ‘ /etc/wireguard/server.key ‘.
sudo cat /etc/wireguard/server.key | wg pubkey | sudo tee /etc/wireguard/server.pubVous recevrez ensuite une sortie d’une clé publique aléatoire en base64 sur votre terminal.

Maintenant que vous avez généré des paires de clés publique et privée pour le serveur Wireguard. La clé privée est située à ‘/etc/wireguard/server.key’, et la clé publique est située à ‘/etc/wireguard/server.pub ‘.
Exécutez la commande ci-dessous pour afficher et vérifier la paire de clés générée pour le serveur Wireguard.
cat /etc/wireguard/server.key
cat /etc/wireguard/server.pubGénération de la paire de clés pour le client
Pour la paire de clés du client, vous pouvez la générer sur n’importe quelle machine (serveur Wireguard ou client) avec les wireguard-tools installés. Dans cette étape, vous allez générer une paire de clés cliente depuis le serveur Wireguard.
Le processus de génération d’une paire de clés pour le serveur et le client est le même, en utilisant la commande ‘ wg genkey ‘ pour générer la clé privée et en utilisant ‘ wg pubkey ‘ pour générer la clé publique, qui est dérivée de la clé privée.
Maintenant, exécutez la commande ci-dessous pour créer un nouveau répertoire ‘ /etc/wireguard/clients ‘. Ce répertoire sera utilisé pour stocker la paire de clés du client.
mkdir -p /etc/wireguard/clientsExécutez la commande ‘wg genkey’ ci-dessous pour générer la clé privée du client dans ‘ /etc/wireguard/clients/client1.key ‘. Ensuite, générez la clé publique du client via la commande ‘ wg pubkey ‘ dans ‘/etc/wireguard/clients/client1.pub ‘.
wg genkey | tee /etc/wireguard/clients/client1.key
cat /etc/wireguard/clients/client1.key | wg pubkey | tee /etc/wireguard/clients/client1.pub
Maintenant que la paire de clés du client est générée, la clé publique est située à ‘/etc/wireguard/clients/client1.pub’ et la clé privée est ‘ /etc/wireguard/clients/client1.key ‘. Exécutez la commande ci-dessous pour afficher et vérifier la paire de clés générée.
cat /etc/wireguard/clients/client1.key
cat /etc/wireguard/clients/client1.pub
Configurer le serveur Wireguard
Vous allez créer un nouveau fichier de configuration pour le serveur Wireguard dans cette étape. Mais avant cela, vous devez décider quels sous-réseaux vous allez utiliser pour le serveur VPN Wireguard. Vous pouvez également décider d’activer ou de désactiver IPv6 pour votre serveur VPN Wireguard.
Dans cet exemple, le serveur VPN Wireguard aura des adresses IP avec le sous-réseau ‘10.8.0.2/24’ et désactiver l’IPv6 pour le VPN Wireguard.
Créez un nouveau fichier de configuration Wireguard ‘/etc/wireguard/wg0.conf ‘ en utilisant la commande de l’éditeur nano ci-dessous.
sudo nano /etc/wireguard/wg0.confTout d’abord, ajoutez les lignes suivantes au fichier pour définir les détails du serveur Wireguard. Et assurez-vous de changer la ‘ PrivateKey ‘ avec la clé privée du serveur Wireguard ‘ server.key ‘. Avec cela, l’interface du serveur Wireguard fonctionnera sur l’adresse IP ‘ 10.8.0.1 ‘, ouvrira le port UDP 51820 qui est disponible pour les clients pour se connecter, et le paramètre SaveConfig garantira que toutes les modifications seront enregistrées dans le fichier de configuration, même lorsque l’interface Wireguard est désactivée.
[Interface]
# Clé privée du serveur Wireguard - server.key
PrivateKey = SIybp8GHtKIPtHPBOQFP1kbQg4UCLCMyNIfCLBQR2EA=
# L'interface Wireguard fonctionnera à 10.8.0.1
Address = 10.8.0.1/24
# Les clients se connecteront au port UDP 51820
ListenPort = 51820
# Assurez-vous que toutes les modifications seront enregistrées dans le fichier de configuration Wireguard
SaveConfig = trueEnsuite, ajoutez les lignes ci-dessous pour définir la connexion du pair client. Changez le paramètre ‘ PublicKey ‘ avec la clé publique du client ‘ client1.pub ‘. Et le paramètre ‘ AllowedIPs ‘ spécifiera quels clients Wireguard sont autorisés à accéder à ce pair. Dans cet exemple, seuls les clients avec l’IP ‘ 10.8.0.2 ‘ seront autorisés à accéder à cette connexion pair. Mais vous pouvez également autoriser la plage de sous-réseaux tels que ‘ 10.8.0.0/24 ‘.
[Peer]
# Clé publique du client Wireguard - client1.pub
PublicKey = ENokvIsS2euXrmM4OVFHPmTdCZ4wfEIR/UHuGCW64lw=
# adresses IP VPN des clients que vous autorisez à se connecter
# possible de spécifier le sous-réseau ⇒ [10.8.0.0/24]
AllowedIPs = 10.8.0.2/24Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.
Avec le fichier de configuration du serveur Wireguard créé et la connexion du pair client ajoutée, vous allez ensuite configurer le transfert de port sur le serveur Wireguard et configurer le pare-feu pour établir le routage du trafic.
Activer le transfert de port via /etc/sysctl.conf
Dans cette étape, vous allez activer le transfert de port sur le serveur Wireguard via le fichier /etc/sysctl.conf’. Vous pouvez activer le transfert de port pour IPv4 et IPv6 sur le serveur Wireguard.
Pour commencer, ouvrez le fichier de configuration ‘/etc/sysctl.conf ‘ en utilisant la commande de l’éditeur nano ci-dessous.
sudo nano /etc/sysctl.confAjoutez les lignes suivantes au fichier. Cela activera le transfert de port sur votre serveur Wireguard. Vous pouvez utiliser les deux pour IPv4 et IPv6, ou vous pouvez utiliser IPv4 si vous avez désactivé IPv6 sur votre serveur Wireguard.
# Transfert de port pour IPv4
net.ipv4.ip_forward=1
# Transfert de port pour IPv6
net.ipv6.conf.all.forwarding=1Enregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.
Ensuite, exécutez l’utilitaire de commande sysctl ci-dessous pour appliquer les modifications.
sudo sysctl -pVous recevrez une sortie comme ceci - Le transfert de port devrait être activé immédiatement.

Avec le transfert de port activé sur le serveur Wireguard, vous allez ensuite configurer le pare-feu qui dirigera le trafic des clients Wireguard vers l’interface réseau spécifique.
Configurer le pare-feu pour le serveur Wireguard
Dans cette étape, vous allez configurer le pare-feu qui sera utilisé pour le serveur Wireguard afin de diriger les connexions des clients vers l’interface réseau appropriée qui sera utilisée pour accéder à Internet. Cela permettra également aux clients Wireguard d’accéder à Internet via l’interface spécifique sur le serveur Wireguard.
Tout d’abord, exécutez la commande apt ci-dessous pour installer le paquet de pare-feu ufw sur votre serveur Debian.
sudo apt install ufwSaisissez y lorsque vous y êtes invité et appuyez sur ENTRÉE pour continuer.

Après l’installation de ufw, exécutez la commande ci-dessous pour ouvrir le service SSH et activer le pare-feu ufw.
sudo ufw allow OpenSSH
sudo ufw enableLorsque vous êtes invité à confirmer l’activation du pare-feu ufw, saisissez y et appuyez sur ENTRÉE. Le pare-feu ufw devrait maintenant être en cours d’exécution sur votre système et il est également activé.

Vérifiez maintenant l’état du pare-feu ufw via la commande ci-dessous. Vous devriez recevoir une sortie telle que ‘ Status: active ‘, ce qui signifie que le statut du pare-feu ufw est en cours d’exécution.
sudo ufw statusAvec le pare-feu ufw en cours d’exécution, vous allez ensuite le configurer pour diriger les connexions des clients Wireguard vers l’interface réseau spécifique.
Exécutez maintenant la commande ci-dessous pour vérifier l’interface de la table de routage par défaut sur le serveur Wireguard. La plupart du temps, cela détectera une interface qui est utilisée pour accéder à Internet ou où l’adresse IP publique est disponible au-dessus.
ip route list defaultVous recevrez une sortie comme ceci - Cet exemple montre que l’interface eth0 est la table de routage par défaut pour le serveur Wireguard. Et c’est l’interface qui est utilisée pour accéder à Internet. Vous pouvez avoir un nom d’interface différent.
Ensuite, ouvrez le fichier de configuration du serveur Wireguard ‘ /etc/wireguard/wg0.conf ‘ en utilisant la commande de l’éditeur nano ci-dessous.
sudo nano /etc/wireguard/wg0.confAjoutez les lignes suivantes à la section ‘ [Interface] ‘.
[Interface]
...
....
PostUp = ufw route allow in on wg0 out on eth0
PostUp = iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PostUp = ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE
PreDown = ufw route delete allow in on wg0 out on eth0
PreDown = iptables -t nat -D POSTROUTING -o eth0 -j MASQUERADE
PreDown = ip6tables -t nat -D POSTROUTING -o eth0 -j MASQUERADEEnregistrez le fichier et quittez l’éditeur lorsque vous avez terminé.
- Le paramètre ‘ PostUp ‘ sera exécuté chaque fois que le serveur Wireguard démarre le tunnel VPN.
- Le paramètre ‘ PreDown ‘ sera exécuté chaque fois que le serveur Wireguard arrête le tunnel VPN.
- La commande ‘ ufw route allow in on wg0 out on eth0 ‘ permet le transfert du trafic entrant sur l’interface wg0 vers l’interface Internet eth0.
- La commande ‘iptables -t nat -I POSTROUTING -o eth0 -j MASQUERADE’ activera le masquage et réécrit le trafic IPv4 de l’interface wg0 pour le faire apparaître comme une connexion directe depuis le serveur Wireguard.
- La commande ‘ ip6tables -t nat -I POSTROUTING -o eth0 -j MASQUERADE ‘ activera le masquage et réécrit le trafic IPv6 de l’interface wg0 pour le faire apparaître comme une connexion directe depuis le serveur Wireguard.
Exécutez maintenant la commande ufw ci-dessous pour ouvrir le port UDP 51820 où les clients se connecteront.
sudo ufw allow 51820/udpEnfin, exécutez la commande ci-dessous pour recharger le pare-feu ufw et appliquer les modifications. Ensuite, vérifiez la liste des règles ufw via la commande ci-dessous.
sudo ufw reload
sudo ufw statusVous recevrez une sortie comme cette capture d’écran - Le port UDP 51820 que le serveur Wireguard utilisera pour les connexions des clients a été ajouté au pare-feu ufw.

Maintenant, vous avez activé le transfert de port et configuré le pare-feu sur le serveur Wireguard. Vous êtes maintenant prêt à démarrer le serveur Wireguard.
Démarrer le serveur Wireguard
Dans cette étape, vous allez démarrer et activer le serveur Wireguard. Vous allez également vérifier le serveur Wireguard et vérifier l’interface wg0 qui sera créée par le service Wireguard.
Exécutez l’utilitaire de commande systemctl ci-dessous pour démarrer et activer le service Wireguard. Le service ‘ [email protected] ‘ créera et activera l’interface Wireguard ‘ wg0 ‘ sur votre serveur Wireguard.
sudo systemctl start [email protected]
sudo systemctl enable [email protected]Vérifiez maintenant le service Wireguard via la commande ci-dessous.
sudo systemctl status [email protected]Vous recevrez une sortie similaire à la capture d’écran suivante - Le service Wireguard ‘ [email protected] ‘ est en cours d’exécution et il est activé. Cela signifie également que l’interface ‘ wg0 ‘ est créée et en cours d’exécution.

Exécutez la commande ci-dessous pour vérifier l’interface ‘wg0’ sur votre serveur Wireguard.
ip a show wg0Vous devriez recevoir une sortie comme ceci - L’interface Wireguard wg0 obtient une adresse IP ‘ 10.8.0.1 ‘, comme décrit dans le fichier de configuration Wireguard ‘ /etc/wireguard/wg0.conf ‘.

De plus, vous pouvez également démarrer et arrêter Wireguard via la commande ‘ wg-quick k’ comme ci-dessous. La commande ‘ wg-quick up ‘ démarrera le serveur Wireguard, et la commande ‘wg-quick down ‘ arrêtera le serveur Wireguard.
sudo wg-quick up /etc/wireguard/wg0.conf
sudo wg-quick down /etc/wireguard/wg0.confAvec le serveur Wireguard en cours d’exécution, vous allez ensuite configurer la machine cliente et la connecter au serveur Wireguard.
Configurer la machine cliente et se connecter au serveur Wireguard
Dans cette étape, vous allez configurer la machine cliente en installant les wireguard-tools, en créant une nouvelle configuration Wireguard pour le client, en vous connectant au serveur VPN Wireguard, et enfin en vérifiant la connexion et en vous assurant que la machine cliente peut atteindre Internet et le réseau VPN local.
Installez le paquet ‘ wireguard-tools ‘ sur la machine cliente. Cela utilise Debian comme client, donc la commande APT sera utilisée.
sudo apt install wireguard-toolsL’installation devrait commencer automatiquement.

Après l’installation des wireguard-tools, créez un nouveau fichier de configuration ‘ /etc/wireguard/wg-client1.conf ‘ en utilisant la commande de l’éditeur nano ci-dessous.
sudo nano /etc/wireguard/wg-client1.confAjoutez les lignes suivantes au fichier.
[Interface]
# Définir l'adresse IP pour le client - doit correspondre à wg0 sur le serveur Wireguard
Address = 10.8.0.2/24
# serveur DNS spécifique
DNS = 1.1.1.1
# Clé privée pour le client - client1.key
PrivateKey = KPI59QH0jwc9wkUsW5Byci9ojXhz1322QXK52fQCE3E=
[Peer]
# Clé publique du serveur Wireguard - server.pub
PublicKey = Qt6oRLtlfAR490lTNb2K8TlbpwADV1j8NX7D5HY38EM=
# Autoriser tout le trafic à être routé via le VPN Wireguard
AllowedIPs = 0.0.0.0/0
# Adresse IP publique du serveur Wireguard
Endpoint = SERVER-IP:51820
# Envoi de Keepalive toutes les 25 secondes
PersistentKeepalive = 25Enregistrez et fermez le fichier lorsque vous avez terminé.
Dans la section ‘ [Interface] ‘, vous devez définir ce qui suit :
- L’adresse IP du client doit correspondre au sous-réseau du serveur Wireguard. Le client Wireguard obtiendra l’adresse IP ‘10.8.0.2’ dans cet exemple.
- Spécifiez le serveur DNS pour le client.
- Changez le paramètre ‘ PrivateKey ‘ avec la clé privée du client que vous avez générée, ‘ client1.key ‘.
Dans la section ‘ [Peer]’ , vous devez ajouter ce qui suit :
- La clé publique du serveur Wireguard ‘ server.pub ‘ au paramètre PublicKey.
- Spécifiez ‘ AllowedIPs ‘ pour restreindre l’accès sur le pair VPN, vous pouvez spécifier des sous-réseaux de réseaux ou simplement mettre 0.0.0.0/0 pour acheminer tout le trafic via le VPN.
- Spécifiez le paramètre Endpoint avec l’adresse IP publique du serveur Wireguard ou utilisez un nom de domaine.
Après la création de la configuration du client, exécutez la commande ci-dessous pour démarrer Wireguard sur la machine cliente.
wg-quick up wg-client1Vous devriez recevoir une sortie similaire à cette capture d’écran - La nouvelle interface Wireguard ‘ wg-client1 ‘ sera créée et la machine cliente devrait être connectée au serveur Wireguard qui fonctionne sur ‘ SERVER-IP:51820 ‘.

Exécutez la commande ci-dessous pour vérifier l’interface Wireguard ‘ wg-client1 ‘.
ip a show wg-client1Vous devriez recevoir une sortie comme ceci - L’interface wg-client1 est active avec une adresse IP ‘ 10.8.0.2 ‘, qui fait partie du sous-réseau du serveur Wireguard ‘ 10.8.0.0/24’.

Vous pouvez également vérifier la connexion Wireguard via la commande ‘ wg show ‘.
Exécutez la commande ‘ wg show’ sur la machine cliente et vous devriez recevoir une sortie comme ceci.
wg showSi vous êtes connecté au bon serveur Wireguard, vous devriez voir l’adresse IP du serveur Wireguard dans la section ‘ endpoint ‘ et voir la clé publique du serveur Wireguard ‘ server.pub ‘.

Maintenant, passez au serveur Wireguard et exécutez la commande ‘ wg show ‘.
wg showVous devriez recevoir une sortie similaire à ceci - Dans la section endpoint, vous verrez l’adresse IP publique du client, et dans la section pair, vous verrez la clé publique du client ‘client1.pub ‘.

Enfin, exécutez la commande ci-dessous pour vous assurer que la machine cliente peut accéder à Internet ou accéder au réseau interne du sous-réseau du VPN Wireguard.
ping -c5 10.8.0.1
ping -c5 1.1.1.1
ping -c5 duckduckgo.comVoici la sortie que vous devriez recevoir :
La machine cliente peut se connecter au serveur Wireguard avec une adresse IP ‘10.8.0.1 ‘.

La machine cliente peut accéder à Internet. Tout le trafic est acheminé via l’adresse IP publique du serveur Wireguard.

Maintenant, si vous souhaitez arrêter le Wireguard sur la machine cliente, vous pouvez exécuter la commande ‘ wg-quick down ‘ ci-dessous.
wg-quick down wg-client1Vous recevrez une sortie comme ceci. De plus, l’interface wg-client1 disparaîtra de la machine cliente.

Maintenant, vous avez configuré le VPN Wireguard sur la machine cliente. Vous avez également vérifié la connexion entre la machine cliente et le serveur Wireguard.
Conclusion
Dans ce tutoriel, vous avez installé et configuré Wireguard VPN sur un serveur Debian 11. Vous avez également configuré une machine Debian et vous êtes connecté avec succès au serveur VPN Wireguard.
En détail, vous avez installé le paquet VPN Wireguard, généré une paire de clés publique et privée pour le serveur et le client, configuré le pare-feu UFW pour acheminer le trafic VPN vers l’interface réseau spécifique, et activé le transfert de port via le fichier /etc/sysctl.conf.
Avec cela en tête, vous pouvez maintenant ajouter plus de clients à votre serveur VPN Wireguard en générant une autre paire de clés pour le client, en définissant la connexion pair sur le serveur Wireguard, puis en créant un nouveau fichier de configuration Wireguard que la machine cliente utilisera. Pour en savoir plus sur Wireguard, visitez la documentation officielle de Wireguard.
Recevez de nouveaux articles dans votre boîte de réception.
Aucun spam. Désabonnez-vous à tout moment.