FAQ Instructions simples pour travailler avec le service Profitserver
Entrée FAQ Guide de déploiement du serveur AmneziaWG

Guide de déploiement du serveur AmneziaWG


De plus en plus de personnes utilisent leur propre VPN plutôt que de recourir à des services payants : c’est moins cher, plus respectueux de la vie privée et cela permet un contrôle total du serveur. L’une des solutions les plus efficaces pour les régions où le blocage de réseau est strict est AmneziaWG, un protocole développé par le projet Amnezia sur la base de WireGuard.

WireGuard classique est rapide et fiable, mais sa structure de paquets fixe et son protocole d'établissement de liaison prévisible permettent aux systèmes DPI (inspection approfondie des paquets) de l'identifier et de le bloquer efficacement. AmneziaWG résout ce problème : il ajoute des paquets parasites à la connexion WireGuard standard, randomise les en-têtes et modifie la taille des champs d'établissement de liaison. Ainsi, la signature caractéristique de WireGuard disparaît et le trafic ne se distingue plus du trafic UDP ordinaire.

Vous utilisez déjà un tunnel VPN classique et vous vous demandez s'il est judicieux de changer ? Comparez cette configuration à une configuration OpenVPN/PPTP simple dans l'article « Configuration d'un serveur VPN sous Linux : PPTP ou OpenVPN ? » , ou à une configuration WireGuard standard (sans obfuscation) dans l'article « Comment configurer un VPN WireGuard sur votre serveur ».

Ce guide explique comment configurer manuellement un serveur AmneziaWG, sans Docker ni interface web : une solution ultra-légère qui minimise l’impact sur votre VPS, entièrement configurée en ligne de commande. Elle est idéale pour les VPS économiques, car elle ne nécessite ni interface graphique, ni base de données, ni proxy inverse. L’adresse IP du serveur d’exemple ci-dessous est fictive ; remplacez-la par celle de votre propre VPS.

Vous aurez besoin d'un VPS sous Ubuntu 22.04/24.04 ou Debian 11/12, d'un accès root et de l'adresse IP de votre VPS. Un nom de domaine n'est pas nécessaire : AmneziaWG n'utilise pas de certificats, il n'y a donc rien à renouveler et aucune vérification DPI à effectuer (ni négociation TLS, ni autre).

Vous n'avez pas encore de serveur ? Consultez la page « Comment commander un serveur ».

Connexion au serveur

Windows (PuTTY)

Ouvrez PuTTY, entrez l'adresse IP de votre VPS dans le champ Nom d'hôte, définissez le port sur 22 et connectez-vous en tant que root en utilisant le mot de passe que votre fournisseur de VPS vous a envoyé par e-mail.

Adresse IP du serveur : votre adresse IP

Se connecter en tant que : root

Mot de passe : votre mot de passe

1. Ouvrez PuTTY, entrez l'adresse IP de votre VPS dans le champ Nom d'hôte.  

Fenêtre de configuration PuTTY par défaut, avant la saisie des informations de connexion.

2. Réglez le port sur 22. 

La session s'est remplie avec l'adresse IP du VPS et le port 22, la session enregistrée « Mon VPS » étant sélectionnée et prête à être ouverte.

3. Connectez-vous en tant que root. 

Une nouvelle fenêtre de terminal PuTTY ouvre la session SSH et demande le nom d'utilisateur de connexion.

4. En utilisant le mot de passe que votre fournisseur de VPS vous a envoyé par e-mail.

Après avoir saisi « root », PuTTY demande le mot de passe du compte.

Le résultat devrait être le suivant :

Connexion réussie : la bannière du message du jour de Debian suivie de l’invite de commande du shell root (root@copywr:~#).

Pour une description détaillée de la connexion via PuTTY/SSH, consultez Comment se connecter à un serveur Linux via SSH

Linux / macOS (terminal)

ssh root@YOUR_SERVER_IP

Toutes les commandes ci-dessous sont exécutées sur le serveur, dans cette même session SSH — cela couvre les sections 2 à 5, ainsi que les vérifications côté serveur de la section 9. Les sections 6 à 8 (installation et configuration du client VPN) se déroulent quant à elles sur votre propre appareil Windows/macOS/Linux, puisque c'est sur cet appareil que le VPN doit s'exécuter ; chacune de ces sections indique explicitement quelles lignes, le cas échéant, touchent encore le serveur.

Préparation du serveur

Mettre à jour le système

Avant toute installation, actualisez la liste des paquets et mettez à jour les paquets installés :

apt update -y && apt upgrade -y

Si cette opération met à jour le noyau, redémarrez avant de compiler le module noyau AmneziaWG (voir section 3). Sinon, DKMS risque d'utiliser des en-têtes de noyau incorrects et le module ne pourra pas se charger. (Pour un rappel sur apt et le fonctionnement des gestionnaires de paquets Linux, consultez la documentation relative aux gestionnaires de paquets Linux .) Vérifiez auprès de :

cat /var/run/reboot-required
Apt upgrade télécharge un nouveau paquet noyau (linux-image-6.1.0-52-amd64) pendant la mise à jour du système. La mise à niveau d'apt est terminée : l'initramfs est régénéré et les services concernés sont redémarrés.

Activer le transfert IP

Ce paramètre permet au serveur de transférer les paquets des clients sur Internet ; sans lui, le tunnel sera établi mais aucun trafic ne le traversera.

echo "net.ipv4.ip_forward = 1" > /etc/sysctl.d/00-amnezia.conf
sysctl --system

La première commande crée un fichier de configuration dédié ; la seconde l’applique sans redémarrer le serveur.

sysctl --system appliquant chaque fichier de configuration sysctl.d, confirmant que net.ipv4.ip_forward = 1 est maintenant actif.

Configurer le pare-feu (UFW)

Pour en savoir plus sur les règles UFW, consultez la section Configuration du pare-feu sous Linux.

Ouvrez les deux ports dont vous aurez besoin : le port 22/tcp pour SSH (ignorez cette règle et vous risquez de perdre l’accès au serveur) et le port 42666/udp, le port sur lequel AmneziaWG écoutera.

apt install ufw -y
ufw allow 22/tcp
ufw allow 42666/udp
ufw --force enable
ufw status

Les deux règles devraient apparaître comme AUTORISÉES dans la sortie d'état ufw.

L'état du pare-feu UFW confirme que les ports 22/tcp et 42666/udp sont autorisés pour IPv4 et IPv6, avec le pare-feu actif.

Installation d'AmneziaWG

Debian ne prend pas directement en charge les PPA de type Ubuntu ; le dépôt doit donc être ajouté manuellement plutôt qu'avec la commande `add-apt-repository`. La procédure est identique sur Ubuntu.

Ajouter le dépôt manuellement

Ajouter le dépôt
echo "deb [arch=amd64] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list

Ajouter la clé de signature GPG

Utilisez un fichier de trousseau de clés désarmé plutôt que la commande apt-key obsolète et récupérez la véritable clé de signature du PPA (empreinte digitale 75C9DD72C799870E310542E24166F2C257290828) :

apt install -y gnupg2
gpg --keyserver keyserver.ubuntu.com --recv-keys 57290828
gpg --export 57290828 | tee /usr/share/keyrings/amnezia.gpg > /dev/null
echo "deb [arch=amd64 signed-by=/usr/share/keyrings/amnezia.gpg] https://ppa.launchpadcontent.net/amnezia/ppa/ubuntu jammy main" > /etc/apt/sources.list.d/amnezia.list

Mettre à jour et installer

apt update
apt install -y amneziawg
Sortie de la commande apt install -y amneziawg : DKMS construit le module noyau amneziawg par rapport au noyau en cours d'exécution et termine l'installation.

Vérifiez que le module est chargé.

modprobe amneziawg
lsmod | grep amnezia
Modprobe amneziawg suivi de lsmod, confirmant que le module amneziawg et ses dépendances (curve25519, chacha20poly1305, etc.) sont chargés.

Génération de la configuration du serveur et du client

Installer les utilitaires auxiliaires

Installez la dépendance qrcode, puis créez un répertoire de travail dédié et téléchargez-y le script community config-generator :

apt install -y python3-qrcode
mkdir -p ~/awg && cd ~/awg
wget -O awgcfg.py \
  https://gist.githubusercontent.com/remittor/8c3d9ff293b2ba4b13c367cc1a69f9eb/raw/awgcfg.py

Si python3-qrcode n'est pas disponible dans les dépôts de votre distribution, utilisez pip3 install qrcode --break-system-packages (cette option est requise sur Debian 12+/Ubuntu 24.04, qui bloquent par défaut les installations via pip non gérées). N'effectuez pas les deux installations simultanément : choisissez-en une.

Awgcfg.py est un script communautaire non officiel (créé par l'utilisateur GitHub « remittor »), et non un outil officiel du projet Amnezia. L'URL ci-dessus pointe vers le contenu brut du gist sans hachage de révision ; elle récupère donc toujours la dernière modification apportée par l'auteur. Une mise à jour silencieuse (ou la suppression du gist) pourrait perturber votre configuration sans avertissement. Dans la mesure du possible, utilisez plutôt une révision spécifique : ouvrez l'historique des révisions du gist, copiez le hachage de la version que vous avez testée et utilisez… URL de la forme de ce guide. 

Générer la configuration du serveur

Créez le fichier /etc/amnezia/amneziawg/awg0.conf. Vous pouvez conserver les valeurs par défaut du sous-réseau interne et du port UDP du tunnel ou définir vos propres paramètres :

python3 awgcfg.py --make /etc/amnezia/amneziawg/awg0.conf \
  -i 10.10.8.1/24 -p 42666

L'option -i définit l'adresse réseau interne et le masque du tunnel ; -p définit le port UDP du serveur (le même que celui ouvert à l'étape 2.3).

Awgcfg.py --make créant /etc/amnezia/amneziawg/awg0.conf et détectant l'interface réseau principale du serveur (ens3).

Créer le modèle de configuration client

python3 awgcfg.py --create

Cela enregistre un modèle dans le même dossier à partir duquel les configurations individuelles des clients sont construites — il comprend déjà la clé publique du serveur, son adresse IP et les paramètres d'obfuscation (Jc, Jmin, Jmax, S1, S2, H1–H4) qui distinguent AmneziaWG de WireGuard simple.

Awgcfg.py --create écriture de _defclient.config, le modèle à partir duquel les nouvelles configurations client seront générées.

Ajouter des clients

Créez une entrée par appareil — le nom peut être n'importe quoi, par exemple le nom de l'appareil :

python3 awgcfg.py -a "laptop"
python3 awgcfg.py -a "phone"
Awgcfg.py -a enregistre les clients « ordinateur portable » et « téléphone », chacun se voyant attribuer sa propre adresse IP de tunnel (10.10.8.2/32 et 10.10.8.3/32).

Générer des fichiers clients et des codes QR

python3 awgcfg.py -c -q

Le dossier ~/awg contiendra désormais des fichiers tels que laptop.conf et phone.conf, ainsi que des codes QR PNG correspondants que vous pourrez scanner directement dans une application mobile.

Ce script communautaire présente un défaut connu : son exécution peut supprimer d’autres fichiers .init/state que vous auriez pu placer dans le même dossier. Réservez le répertoire ~/awg aux seuls fichiers d’AmneziaWG et sauvegardez les clés du serveur (la clé privée [Interface] dans awg0.conf) ailleurs avant de régénérer les configurations.
Contenu du fichier laptop.conf généré : l’adresse du client, le DNS, les paramètres d’obfuscation et la section [Peer] pointant vers le serveur.

Le dossier ~/awg contiendra désormais des fichiers tels que laptop.conf et phone.conf, ainsi que des codes QR PNG correspondants que vous pourrez scanner directement dans une application mobile.

Ce script communautaire présente un défaut connu : son exécution peut supprimer d’autres fichiers .init/state que vous auriez pu placer dans le même dossier. Réservez le répertoire ~/awg aux seuls fichiers d’AmneziaWG et sauvegardez les clés du serveur (la clé privée [Interface] dans awg0.conf) ailleurs avant de régénérer les configurations.

Démarrage du service et activation du démarrage automatique

Activez l'interface awg0 et configurez-la pour qu'elle démarre automatiquement au redémarrage :

systemctl enable --now awg-quick@awg0
systemctl restart [email protected]
systemctl status [email protected]

L'état devrait indiquer « actif » (terminé) avec l'unité activée au démarrage. Si la console semble se bloquer sur l'affichage des journaux, appuyez sur Q pour quitter.

La commande Systemctl status confirme que awg-quick@awg0.service est actif (terminé) et activé, avec les commandes de configuration ip/iptables de l'interface dans le journal.

Consultez la liste des pairs actifs et le trafic par pair avec :

awg show
La commande Awg show liste les paramètres d'obfuscation de l'interface awg0 et ses deux pairs configurés (ordinateur portable et téléphone), chacun avec son adresse IP autorisée.

Connexion depuis Windows

Tout ce qui est décrit dans cette section se déroule sur votre PC Windows, et non via SSH : le client VPN doit être installé sur l’appareil qui utilisera le tunnel. La seule interaction avec le serveur est le téléchargement via scp (étape 6.2), et même cette commande est saisie sur votre PC, téléchargeant un fichier déjà généré par le serveur dans la section 4.

Installer le client

AmneziaWG dispose d'une application Windows dédiée ; son interface est similaire à celle du client WireGuard standard, mais elle prend en charge les paramètres d'obfuscation. Téléchargez le programme d'installation depuis le dépôt officiel du projet :

https://github.com/amnezia-vpn/amneziawg-windows-client/releases

Le lien ci-dessus vous dirige vers la page des versions du client Windows maintenu ; téléchargez-y le fichier .msi/.exe le plus récent. Ouvrez cette page dans votre navigateur, il ne s'agit pas d'une commande à copier dans un terminal.

Exécutez le programme d'installation et suivez les instructions de l'assistant de configuration ; il n'est pas nécessaire de modifier les paramètres par défaut.

Importer la configuration

Copiez le fichier de configuration client du serveur vers votre ordinateur — le moyen le plus simple est d'utiliser scp, exécuté dans PowerShell sur votre ordinateur, et non sur le serveur :

Une invite Windows PowerShell vide sur le PC client, prête à exécuter la commande scp ci-dessous.
scp root@YOUR_SERVER_IP:~/awg/laptop.conf .

Dans l'application AmneziaWG, cliquez sur « Importer le(s) tunnel(s) depuis un fichier », sélectionnez laptop.conf et activez le bouton à bascule en regard du nouveau tunnel.

Connexion depuis macOS

Tout se passe ici sur votre Mac, et non via SSH. La commande scp ci-dessous est saisie dans le Terminal de votre Mac et récupère la configuration générée par le serveur dans la section 4 ; elle ne s’exécute pas dans votre session SSH racine sur le VPS.

Deux options sont possibles :

  • AmneziaWG (Mac App Store) : client léger, compatible avec macOS 12 et versions ultérieures. Recherchez « AmneziaWG » dans l’App Store, installez-le, puis utilisez « Importer un ou plusieurs tunnels depuis un fichier » et sélectionnez votre fichier .conf — la procédure est identique à celle du client Windows.
  • AmneziaVPN (application complète, macOS 14+) : téléchargez le fichier .pkg depuis github.com/amnezia-vpn/amnezia-client/releases/latest si vous préférez utiliser l’application Amnezia complète plutôt que le client léger AmneziaWG uniquement.

Copiez d'abord la configuration du client si nécessaire, comme à l'étape 6.2 :

scp root@YOUR_SERVER_IP:~/awg/laptop.conf .

Connexion depuis Linux

Les deux options ci-dessous s'exécutent sur votre ordinateur de bureau/portable Linux, c'est-à-dire dans une session SSH distincte (ou un shell local) sur cette machine — et non dans la session SSH racine du VPS de la section 1. Les commandes semblent identiques à celles côté serveur car le même paquet amneziawg-tools est utilisé des deux côtés, mais leur exécution ici installe et démarre un tunnel client sur votre propre machine, et non sur le serveur.

Sur un ordinateur de bureau ou portable Linux, vous avez deux options :

  • Interface graphique : installez le client de bureau AmneziaVPN complet depuis github.com/amnezia-vpn/amnezia-client/releases, puis importez le fichier .conf de la même manière que sous Windows/macOS.
  • CLI, utilisant les mêmes outils amneziawg que ceux utilisés sur le serveur (awg / awg-quick) :
apt install -y amneziawg
cp laptop.conf /etc/amnezia/amneziawg/awg0.conf
awg-quick up awg0

Exécutez ce code pour vous déconnecter.

awg-quick down awg0 

Pour que le tunnel s'ouvre automatiquement à l'ouverture de session, activez-le en tant que service :

systemctl enable --now awg-quick@awg0

Vérification de la connexion

Une fois le tunnel actif (voir section 6, 7 ou 8), retournez sur votre appareil (et non dans la session SSH) et ouvrez un outil de vérification d'adresse IP dans un navigateur : l'adresse affichée doit correspondre à celle de votre VPS. Pour vérifier depuis la session SSH, exécutez la commande `awg show` sur le serveur et assurez-vous que le client a bien établi une connexion et que le trafic est actif.

Référence:

Champ

Valeur

Adresse

VOTRE_ADRESSE_IP_TUNNEL (l'adresse du client à l'intérieur du tunnel, par exemple 10.10.8.2/32 — attribuée automatiquement lorsque le client a été ajouté à l'étape 4.4)

Endpoint

VOTRE_ADRESSE_IP_SERVEUR:42666 (Adresse IP externe du serveur et port UDP auquel le client se connecte.)

DNS

8.8.8.8

Jc / Jmin / Jmax

Le nombre et la taille des paquets « indésirables » envoyés avant l'établissement de la connexion peuvent différer entre le serveur et le client sans interrompre la connexion.

S1 / S2

La taille des champs de remplissage de la négociation de connexion doit correspondre octet par octet entre le serveur et chaque client.

H1 – H4

Les en-têtes de type paquet qui masquent le protocole en le faisant passer pour du trafic ordinaire doivent également correspondre exactement et être uniques les uns par rapport aux autres.

Seuls S1/S2 et H1–H4 doivent être identiques aux deux extrémités du tunnel ; Jc, Jmin et Jmax concernent uniquement la manière dont chaque côté remplit son propre trafic indésirable sortant, de sorte que les valeurs du client et du serveur peuvent légitimement différer, comme c’est le cas dans l’exemple ci-dessus.

Conclusion

En suivant ce guide, votre VPS exécutera son propre serveur AmneziaWG : un protocole compatible WireGuard avec obfuscation du trafic, nettement plus difficile à distinguer du trafic UDP ordinaire par les systèmes DPI que WireGuard seul. Ce service s'exécute en tant qu'unité systemd awg-quick@awg0 et reste actif après un redémarrage du serveur sans aucune intervention de votre part.

Les fichiers .conf et les codes QR résultants dans ~/awg fonctionnent non seulement avec le client Windows, mais peuvent également être importés dans les applications AmneziaWG ou Amnezia pour Android, iOS, macOS et Linux, ainsi que dans les routeurs Keenetic et OpenWrt.

Ajoutez de nouveaux clients à tout moment en répétant les étapes 4.4–4.5 (python3 awgcfg.py -a "nom", puis awgcfg.py -c -q) et en redémarrant l'interface avec systemctl restart [email protected].

Quelques habitudes à conserver une fois le serveur en marche :

  • Maintenez le système à jour. Relancez régulièrement les commandes `apt update -y && apt upgrade -y` et redémarrez après chaque mise à jour du noyau afin que DKMS puisse reconstruire le module amneziawg avec le nouveau noyau.
  • Sauvegardez le répertoire ~/awg. Il contient la clé privée de chaque client et la paire de clés propre au serveur dans awg0.conf ; sa perte implique de régénérer les configurations pour chaque appareil.
  • Révoquez rapidement les périphériques perdus. Supprimez le bloc [Peer] correspondant du fichier /etc/amnezia/amneziawg/awg0.conf et exécutez la commande systemctl restart [email protected].

Si la connexion ne s'établit pas, vérifiez dans l'ordre :

  • l'état du service (systemctl status) [email protected])
  • les règles du pare-feu (état ufw — le port 42666/udp doit être ouvert)
  • l'état du module DKMS si l'interface ne démarre même pas (dkms status, lsmod | grep amnezia)
  • la liste des pairs actifs sur le serveur (awg show)
  • que la configuration du client pointe vers l'adresse IP correcte du serveur externe

Vous souhaitez comparer AmneziaWG à d'autres solutions avant de vous engager ? Consultez les articles « Configuration d'un serveur VPN sous Linux : PPTP ou OpenVPN ? » et « Comment configurer WireGuard VPN sur votre serveur » . Si vous n'avez besoin que d'un simple proxy plutôt que d'un tunnel VPN complet, la configuration de 3proxy sous CentOS/Arch Linux est une alternative plus légère. Pour renforcer la sécurité de votre serveur une fois le VPN opérationnel, consultez la section « Utilisateurs Linux : Gestion et permissions ».

❮ Article précédent Configuration d'Hysteria2 et de TUIC
Article suivant ❯ Guide pratique Xray VLESS : VPS, Windows, Mac, Android, iPhone

Demandez-nous des informations sur VPS

Nous sommes toujours prêts à répondre à vos questions à toute heure du jour ou de la nuit.