Introduction
Dans cet article, vous apprendrez à configurer une connexion manuelle OpenVPN NordVPN à l'intérieur d'un conteneur Docker Gluetun. Gluetun est un conteneur client VPN léger qui achemine le trafic de vos autres conteneurs Docker via NordVPN sur OpenVPN. L'étape clé qui pose problème à la plupart des utilisateurs est l'authentification : NordVPN n'accepte plus votre e-mail et votre mot de passe pour les applications tierces, vous devez donc utiliser à la place les identifiants du service.
Avant de commencer
- Une installation Docker (et éventuellement Docker Compose) fonctionnelle.
- Vos identifiants de service NordVPN (nom d'utilisateur et mot de passe) : il ne s'agit PAS de votre adresse e-mail et de votre mot de passe du Nord-Account.
- Le ou les emplacements du serveur OpenVPN de NordVPN auxquels vous souhaitez vous connecter (pays, région ou ville).
Voici ce qu'il faut faire
Étape 1 : Obtenez vos identifiants de service
- Connectez-vous à votre Nord Account.
- Cliquez sur NordVPN, puis faites défiler vers le bas jusqu'à Paramètres avancés (Configuration manuelle) et cliquez sur Configurer NordVPN manuellement.
- Vous recevrez un code de vérification à l'adresse e-mail que vous utilisez pour NordVPN. Saisissez le code pour confirmer.
- Ouvrez l'onglet Informations d'identification de service. Copiez le Nom d'utilisateur et le Mot de passe qui y sont indiqués : ce sont les valeurs dont Gluetun a besoin.
REMARQUE : Les identifiants de service sont différents de vos identifiants de connexion habituels pour votre Nord Account. Si votre connexion échoue ultérieurement lors de l'authentification, vérifiez que vous avez copié les bons identifiants de service.
Étape 2 : Créez la configuration Gluetun
Dans Gluetun, NordVPN via OpenVPN utilise ces variables d'environnement :
VPN_SERVICE_PROVIDER=nordvpnVPN_TYPE=openvpn-
OPENVPN_USER- votre nom d'utilisateur d'identification de service -
OPENVPN_PASSWORD- votre mot de passe d'identification de service -
OPENVPN_PROTOCOL- facultatif,udp(par défaut) outcp
Les variables facultatives de sélection de serveur comprennent SERVER_COUNTRIES, SERVER_REGIONS, et SERVER_CITIES (listes séparées par des virgules).
Étape 3 : Exécutez avec Docker Compose
Créez un fichier docker-compose.yml comme suit :
services : gluetun : image : qmcgaw/gluetun container_name : gluetun cap_add : - NET_ADMIN devices : - /dev/net/tun:/dev/net/tun ports : - 8000:8000 # Serveur de contrôle Gluetun (facultatif) environment : - VPN_SERVICE_PROVIDER=nordvpn - VPN_TYPE=openvpn - OPENVPN_USER=YOUR_SERVICE_USERNAME - OPENVPN_PASSWORD=YOUR_SERVICE_PASSWORD - OPENVPN_PROTOCOL=udp - SERVER_COUNTRIES=United States restart : unless-stopped
Remplacez YOUR_SERVICE_USERNAME et YOUR_SERVICE_PASSWORD par les identifiants de service de l'étape 1, et ajustez SERVER_COUNTRIES à votre emplacement favori.
Étape 4 : Démarrez et vérifiez la connexion
- Démarrez le conteneur :
- Vérifiez les journaux pour confirmer que le tunnel est activé :
- Confirmez que votre trafic sort via NordVPN en exécutant une vérification d'IP depuis l'espace de noms réseau du conteneur :
docker compose up -d
docker logs -f gluetun
docker exec gluetun wget -qO- https://ipinfo.io/ip
L'adresse IP renvoyée doit être celle d'un serveur NordVPN, et non la vôtre.
Étape 5 : Acheminer les autres conteneurs via Gluetun
Pour envoyer le trafic d'un autre conteneur via le tunnel, configurez ce conteneur pour qu'il partage le réseau de Gluetun et supprimez ses propres ports (publiez-les plutôt sur le service Gluetun) :
yourapp : image : your/app-image network_mode : "service:gluetun" depends_on : - gluetun
Conseils supplémentaires
- Si vous voyez une erreur « AUTH_FAILED / Your credentials might be wrong », vous utilisez presque certainement l'adresse e-mail et le mot de passe de votre Nord Account au lieu des identifiants de service. Recopiez-les depuis l'onglet Informations d'identification de service.
- Si le protocole par défaut
udpest bloqué sur des réseaux restrictifs, passez àOPENVPN_PROTOCOL=tcpet recréez le conteneur. - Gluetun inclut un Kill Switch intégré, de sorte que les conteneurs dépendants perdent l'accès Internet si le VPN est interrompu, empêchant ainsi les fuites d'IP. (Selon le comportement par défaut documenté de Gluetun ; vérifiez dans le wiki actuel pour votre version.)