WireGuard Easy : VPN WireGuard avec interface web sur VPS Linux
WireGuard Easy (wg-easy) est un conteneur Docker qui associe le daemon WireGuard et une interface web d'administration. Il permet de créer, modifier, désactiver et supprimer des clients VPN depuis un navigateur, de télécharger les fichiers de configuration ou d'afficher le QR code de connexion, sans éditer manuellement les configurations WireGuard. Le projet compte plus de 27 000 étoiles sur GitHub et est activement maintenu (version 15 en octobre 2026).
Comparé au guide WireGuard en ligne de commande, wg-easy est recommandé quand vous gérez plusieurs pairs VPN et souhaitez une interface graphique pour éviter les erreurs dans les configurations. Il tourne en conteneur Docker sur votre VPS Linux ElypseCloud.
Prérequis
- Un VPS Linux (Ubuntu 22.04, Ubuntu 24.04 ou Debian 12) avec une adresse IP publique fixe.
- Au minimum 512 Mo de RAM ; 1 Go recommandés pour les VPS accueillant d'autres services.
- Docker installé et daemon actif (guide d'installation Docker).
- Accès SSH root ou sudo.
- Ports UDP 51820 (tunnel VPN) et TCP 51821 (interface web) ouverts dans le pare-feu.
Ouvrir les ports dans le pare-feu
Autorisez les deux ports réseau avant de démarrer wg-easy. Avec UFW (guide UFW) :
ufw allow 51820/udpufw allow 51821/tcpufw reloadLe port UDP 51820 transporte les connexions WireGuard chiffrées entre le VPS et les clients. Le port TCP 51821 est l'interface web d'administration. Si vous utilisez nftables, ajoutez les règles pare-feu équivalentes. Vérifiez les règles actives avec ufw status.
wg-easy configure automatiquement le NAT et le routage des paquets entre le réseau local virtuel WireGuard et Internet. La directive sysctl net.ipv4.ip_forward=1 est activée par le conteneur pour autoriser ce transit. Le serveur DNS utilisé par les clients VPN est configurable dans les paramètres wg-easy (par défaut : 1.1.1.1).
Installer WireGuard Easy avec Docker Compose
Créez le répertoire de configuration et téléchargez la configuration officielle :
mkdir -p /etc/docker/containers/wg-easy
cd /etc/docker/containers/wg-easy
curl -o docker-compose.yml https://raw.githubusercontent.com/wg-easy/wg-easy/master/docker-compose.ymlLa configuration du serveur wg-easy v15 (fichier docker-compose.yml officiel) expose deux volumes, les ports réseau et les capacités Linux nécessaires (NET_ADMIN, SYS_MODULE) pour configurer les interfaces réseau et les règles de routage :
volumes:
etc_wireguard:
services:
wg-easy:
image: ghcr.io/wg-easy/wg-easy:15
volumes:
- etc_wireguard:/etc/wireguard
- /lib/modules:/lib/modules:ro
ports:
- "51820:51820/udp"
- "51821:51821/tcp"
restart: unless-stopped
cap_add:
- NET_ADMIN
- SYS_MODULE
sysctls:
- net.ipv4.ip_forward=1Démarrez le conteneur et vérifiez les logs pour détecter d'éventuelles erreurs de configuration du serveur :
docker compose up -d && docker logs wg-easyAssocier un nom de domaine (recommandé)
Associer un nom de domaine à l'adresse IP de votre VPS simplifie la connexion des clients VPN. Configurez un enregistrement DNS de type A pointant vers l'IP du VPS : les clients renseignent vpn.mondomaine.com dans leurs fichiers de configuration au lieu d'une adresse IP. La propagation DNS prend généralement quelques minutes. Pour les VPS avec adresse IP dynamique, un service DDNS met à jour automatiquement l'enregistrement via le serveur DNS de votre registrar.
Accéder à l'interface web et configurer l'authentification
Ouvrez votre navigateur à http://adresse-ip-vps:51821. La première connexion vous invite à créer un mot de passe administrateur. Ce mot de passe est ensuite stocké dans le volume Docker etc_wireguard et persiste entre les redémarrages.
Sécurité recommandée : ne laissez pas l'interface web accessible en HTTP sans protection. Placez wg-easy derrière un reverse proxy Nginx en HTTPS avec des certificats TLS valides fournis par Certbot.
Créer et gérer les clients VPN
Depuis l'interface web, cliquez sur + Client. Donnez un nom descriptif au nouveau pair (telephone, laptop-bureau, serveur-distant). wg-easy génère automatiquement les clés cryptographiques, l'adresse IP interne et les fichiers de configuration du pair.
Pour chaque client, l'interface propose :
- QR code : à scanner depuis l'application WireGuard mobile (Android, iOS), connexion rapide sans saisir manuellement les fichiers de configuration.
- Téléchargement du fichier
.conf: à importer dans le client WireGuard Desktop ou à déposer sur un serveur distant. - Activer / désactiver : bloquer temporairement un client sans révoquer ses fichiers de configuration.
- Statistiques réseau : paquets envoyés/reçus, date et heure de la dernière connexion.
Chaque client reçoit une adresse IP dans le réseau local WireGuard (par défaut 10.8.0.x). Le trafic de ces adresses est routé par le VPS via le NAT interne du conteneur. Le serveur DNS assigné aux clients est configurable (1.1.1.1 par défaut) : vous pouvez le remplacer par l'adresse IP du VPS pour résoudre les noms de domaine internes.
Redémarrer et mettre à jour WireGuard Easy
Pour mettre à jour wg-easy, tirez la nouvelle image et redémarrez le conteneur :
cd /etc/docker/containers/wg-easy && docker compose pull && docker compose up -dLes fichiers de configuration des pairs VPN sont persistés dans le volume etc_wireguard entre les mises à jour. Consultez les logs après un redémarrage pour confirmer que le daemon WireGuard s'est bien relancé sans erreur.
Restreindre l'accès à l'interface d'administration
Restreignez le port TCP 51821 à votre adresse IP uniquement dans le pare-feu :
ufw allow from VOTRE_IP to any port 51821 proto tcpufw deny 51821/tcpTestez la connexion VPN depuis un client, puis accédez à un service interne du VPS via son adresse IP dans le réseau local WireGuard. Consultez les logs du système pour vérifier l'activité réseau. La commande docker logs wg-easy affiche les connexions et déconnexions des pairs en temps réel.
Besoin d'un VPS Linux pour déployer WireGuard Easy et sécuriser votre réseau ? Découvrez les offres VPS Linux ElypseCloud.
Voir les VPS Linux ElypseCloud