Web Analytics

wg-cmd

⭐ 216 stars French by AndrianBdn

WG Commander

alias "wg-cmd" — Interface utilisateur en mode texte pour gérer les fichiers de configuration WireGuard

Go Report Card

capture d'écran

Fonctionnalités

Limitations actuelles

Installation

Assurez-vous d’avoir WireGuard et iptables installés (apt install wireguard-tools sous Ubuntu / Debian, dnf install wireguard-tools iptables sous Rocky/Alma 9).

Pour télécharger avec curl, exécutez :

# for x86_64 
curl -SL https://github.com/andrianbdn/wg-cmd/releases/download/v0.1.7/wg-cmd-0.1.7-linux-amd64 -o /usr/local/bin/wg-cmd

for arm64

curl -SL https://github.com/andrianbdn/wg-cmd/releases/download/v0.1.7/wg-cmd-0.1.7-linux-arm64 -o /usr/local/bin/wg-cmd

Définissez les permissions appropriées et exécutez l’outil :

chmod 755 /usr/local/bin/wg-cmd
wg-cmd
Si vous n'avez pas /usr/local/bin dans $PATH, vous devrez exécuter la commande /usr/local/bin/wg-cmd en utilisant le chemin complet.

WG Commander nécessite les permissions root pour ajuster automatiquement sysctl, créer des unités systemd et écrire dans /etc/wireguard.

Utilisation

Lors du premier lancement, WG Commander affichera l'assistant de configuration, qui permet de configurer une nouvelle interface WireGuard de manière interactive.

Lors des lancements suivants (si l'assistant a réussi), il affichera simplement l'interface de gestion TUI.

Note concernant le code QR : certains appareils (Android ?) peuvent nécessiter un code QR de meilleure qualité. WG Commander augmentera automatiquement la qualité lorsque vous augmentez la résolution de la fenêtre du Terminal (police plus petite, fenêtre plus grande).

Utilisation avancée

Vous pouvez exécuter WG Commander en tant qu'utilisateur non-root si vous modifiez les permissions sur /etc/wireguard et configurez sysctl/systemd manuellement.

WG Commander conserve sa propre configuration d'interface dans ~/.config/wg-cmd/wg-cmd.toml

Les options les plus importantes sont :

WireguardDir = "/etc/wireguard"

directory for WireGuard configuration files

DatabaseDir = "/etc/wireguard"

directory for WG Commander database files (wgc-)

Vous pouvez modifier ces options pour pointer vers des répertoires auxquels vous avez accès en écriture.

Options spéciales

Exécutez wg-cmd new pour démarrer l'assistant de configuration d'une nouvelle interface.

Exécutez wg-cmd pour basculer vers une interface spécifique (doit être créée auparavant avec wg-cmd).

Exécutez wg-cmd make pour générer la configuration Wireguard sans afficher l'interface utilisateur.

Configuration

WG Commander utilise des répertoires comme sa « base de données ». Il stocke la configuration de l'interface dans le répertoire /etc/wireguard/wgc-.

La configuration est stockée au format de fichier TOML.

La plupart des clés de configuration sont similaires à celles de WireGuard.

#### configuration serveur (0001-server.toml) Certaines clés dans ce fichier de configuration seront en fait utilisées pour générer les fichiers de configuration client.

ClientRoute - AllowedIPs pour la configuration client

ClientDNS - valeur de configuration DNS pour tous les clients

ClientServerEndpoint - Endpoint pour la configuration client

ClientPersistentKeepalive - PersistentKeepalive pour la configuration client

MTU - MTU pour le serveur et le client (0 — laisser WireGuard choisir)

#### configuration client (nnnn-%client%.toml)

ClientRoute - remplace complètement le ClientRoute de la configuration serveur

AddServerRoute - ajoute un réseau supplémentaire à AllowedIPs pour le client côté serveur (utile lorsque vous souhaitez router le trafic d'un client vers le réseau d'un autre client via le serveur)

MTU - Remplacer le MTU du serveur par une valeur différente pour ce client. Mettez -1 pour omettre le MTU de cette configuration client WireGuard.

DNS - Remplacer le paramètre ClientDNS du serveur pour tous les clients. Spécifiez une liste d’IP séparées par des virgules. Mettez no ou none pour omettre le DNS de cette configuration client WireGuard.

Les fichiers de configuration client contiennent le champ PrivateKey. Si vous le trouvez inacceptable, vous pouvez le retirer du fichier après avoir exporté la configuration (ou le code QR) vers le client.

Autres OS que Linux

WG Commander est conçu pour fonctionner sous Linux, car il utilise procfs, systemd, iptables, sysctl. Cependant, il est écrit en Go simple, donc il devrait fonctionner sur tout OS supporté par Go.

ou surveiller les fichiers /etc/wireguard/wg*.conf pour les changements et recharger WireGuard automatiquement.

Les PR sont les bienvenues pour ajouter le support d’autres OS.

Exécution dans Docker

Bien que ce soit possible, il n’est pas recommandé d’exécuter WG Commander dans Docker.

L’Assistant de configuration ne fonctionnera pas correctement, car il doit créer des unités systemd et modifier sysctl.

Désinstallation

Pour désinstaller WG Commander, il suffit de supprimer le binaire de /usr/local/bin/wg-cmd. Vous pouvez aussi supprimer les répertoires /etc/wireguard/wgc-* et ~/.config/wg-cmd

Si vous avez créé des unités systemd, vous devrez les supprimer manuellement.

Voici un exemple de suppression de l’interface gérée par WG Commander wg7 (changez-la pour l’interface que vous souhaitez supprimer) :

systemctl stop wgc-wg7.{path,service}
systemctl disable wgc-wg7.{path,service}
rm /etc/systemd/system/wgc-wg7.{path,service}
systemctl stop wg-quick@wg7.service
systemctl disable wg-quick@wg7.service
rm /etc/wireguard/wg7.conf
rm -Rf /etc/wireguard/wgc-wg7

Testé

WG Commander devrait bien fonctionner sur toute distribution Linux basée sur systemd avec WireGuard, iptables, sysctl, procfs disponibles.

Il a été testé sur :

Contribution

Les contributions sont les bienvenues. Veuillez consulter CONTRIBUTING.md pour les directives, y compris notre politique de divulgation liée à l'IA.

Remarques

Il n’y a aucun but commercial derrière WG Commander. Le projet est sous licence MIT License.

Ce projet n’est PAS lié au créateur de WireGuard®. Le projet WG Commander n’est PAS approuvé, sponsorisé, ni affilié à WireGuard® ou à la communauté WireGuard®.

--- Tranlated By Open Ai Tx | Last indexed: 2026-06-07 ---