Optimiser qBittorrent avec NordVPN sur NAS Synology
Configuration Docker + GlueTUN + NordLynx. Simple à mettre en place mais sans port forwarding, les débits et ratio seront limités.
Ce guide a un but éducatif. monratio.fr n'encourage en aucun cas le piratage ou le téléchargement illégal de contenus protégés par le droit d'auteur.
Contrairement à ProtonVPN, NordVPN a supprimé le port forwarding en 2023. Concrètement, sur votre NAS : aucun peer ne pourra initier une connexion vers vous, la flamme de qBittorrent restera orange, vos débits seront limités et votre ratio progressera lentement.
Ce guide fonctionne et sécurise vos téléchargements, mais si votre objectif est la performance maximale sur un tracker privé, ProtonVPN sur NAS Synology reste nettement plus adapté (port forwarding natif via NAT-PMP, débits ×8).
Synology DS418play (Intel Celeron J3355, 2 Go de RAM), HDD classiques en SHR, fibre 800 Mb/s, Docker avec GlueTUN + qBittorrent + NordVPN (serveur P2P France).
Résultat mesuré : débits stables autour de 8 à 12 Mo/s, limités par l'absence de port forwarding.
🐢 Pourquoi votre NAS rame avec OpenVPN
Votre NAS télécharge à 2-3 Mo/s alors que vous avez une fibre à 800 Mb/s ? Le coupable principal n'est pas NordVPN ni votre connexion. C'est le protocole VPN que vous utilisez.
Il existe deux grandes technologies pour chiffrer votre trafic VPN :
Comparaison OpenVPN vs NordLynx (WireGuard) sur NAS :
Sur NordVPN, le protocole moderne s'appelle NordLynx. C'est simplement WireGuard avec une couche maison pour gérer l'authentification. Dans GlueTUN, on peut l'utiliser en mode wireguard. C'est LA première chose à activer si vous voulez des débits corrects.
Attention : même avec NordLynx parfaitement configuré, les débits resteront inférieurs à ce qu'on obtient avec ProtonVPN + port forwarding. C'est une limite structurelle de NordVPN, pas un problème de config.
OpenVPN = chiffrement userland, overhead CPU massif sur Celeron. NordLynx = WireGuard kernel-level, zéro overhead. Résultat mesuré : ×3 à ×4 en débit sur le même serveur NordVPN (limite réelle = absence de port forwarding).
Benchmark DS418play (Celeron J3355) :
# OpenVPN (avant)
$ top
CPU : 98.2% user, openvpn pid 1234
$ iperf3 -c test.nordvpn
[ 5] 0.00-10.00 sec 28 MBytes 24 Mbits/sec
# NordLynx / WireGuard (après)
$ top
CPU : 14.8% user, wireguard kernel
$ iperf3 -c test.nordvpn
[ 5] 0.00-10.00 sec 120 MBytes 100 Mbits/sec
# Note : plafond ~100 Mbits/s côté P2P NordVPN
# car pas de port forwarding = moins de peers entrants Pourquoi la différence est si grande ? OpenVPN fait passer chaque paquet réseau par plusieurs couches logicielles avant de le chiffrer. NordLynx (WireGuard) intercepte les paquets directement dans le noyau du système, là où c'est le plus rapide. Sur un PC avec un CPU puissant, vous ne verrez pas la différence. Mais sur un petit NAS, c'est le jour et la nuit.
🔑 Récupérer vos identifiants NordVPN
GlueTUN a besoin d'identifiants spécifiques pour se connecter à NordVPN. Attention : ce ne sont pas vos identifiants NordVPN classiques (email + mot de passe). Ce sont des identifiants de service dédiés à la configuration manuelle.
- Connectez-vous sur nordaccount.com/dashboard/nordvpn/manual-configuration
- Cherchez la section "Service credentials" (identifiants de service)
- Copiez le username et le password affichés. Ils sont longs et aléatoires, c'est normal.
- Gardez ces deux valeurs sous la main pour l'étape suivante.
Ce que vous devez récupérer :
Option NordLynx (WireGuard natif) : si vous voulez utiliser NordLynx plutôt qu'OpenVPN, il faut récupérer votre clé privée WireGuard. La procédure officielle est simple mais un peu technique :
Extraire la clé privée NordLynx via Docker (temporaire) :
# Lancer un conteneur Nord temporaire pour extraire la clé
docker run --rm --cap-add=NET_ADMIN \
-e NORDVPN_LOGIN_TOKEN=<votre_token> \
ghcr.io/bubuntux/nordlynx \
sh -c "nordvpn login --token $NORDVPN_LOGIN_TOKEN && \
wg showconf nordlynx | grep PrivateKey"
# Token récupérable sur nordaccount.com → Accès tokens Si cette manip vous semble trop technique, restez sur OpenVPN avec vos identifiants de service : plus lent mais bien plus simple à configurer. C'est ce qu'on utilise par défaut dans le docker-compose ci-dessous.
Sur nordaccount.com/dashboard/nordvpn/manual-configuration → section Service credentials :
# GlueTUN OpenVPN
OPENVPN_USER=<service_credential_user>
OPENVPN_PASSWORD=<service_credential_password>
# GlueTUN NordLynx (WireGuard)
# → extraire la clé via conteneur nordlynx temporaire
WIREGUARD_PRIVATE_KEY=<clé_extraite>
# Address WireGuard = 10.5.0.2/16 (par défaut Nord) NB : ces identifiants sont distincts du login Nord classique. Ne pas réutiliser email/password compte.
Pourquoi des identifiants séparés ? NordVPN utilise un jeton différent pour les accès manuels (OpenVPN, WireGuard, routeurs). Ça leur permet de révoquer un accès sans vous forcer à changer votre mot de passe principal. Notez-les dans votre gestionnaire de mots de passe : vous en aurez besoin à chaque redéploiement Docker.
🐳 Créer le docker-compose GlueTUN + qBittorrent
Docker est déjà installé sur votre Synology (depuis DSM 7.2, c'est Container Manager). On va utiliser Docker Compose qui permet de lancer plusieurs conteneurs en une seule commande.
On va lancer 2 conteneurs qui travaillent ensemble :
Créez un fichier docker-compose.yml dans /volume1/docker/qbittorrent/ et collez le code ci-dessous. Remplacez les deux lignes OPENVPN_USER et OPENVPN_PASSWORD par vos identifiants de service récupérés à l'étape 2.
docker-compose.yml (version OpenVPN, la plus simple) :
services:
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
environment:
- VPN_SERVICE_PROVIDER=nordvpn
- VPN_TYPE=openvpn
- OPENVPN_USER=VOTRE_SERVICE_USERNAME
- OPENVPN_PASSWORD=VOTRE_SERVICE_PASSWORD
- SERVER_COUNTRIES=France
- OPENVPN_CATEGORIES=P2P
- TZ=Europe/Paris
ports:
- 9775:9775
volumes:
- /volume1/docker/gluetun:/gluetun
restart: always
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
container_name: qbittorrent
network_mode: "service:gluetun"
depends_on:
gluetun:
condition: service_healthy
environment:
- PUID=1026
- PGID=100
- TZ=Europe/Paris
- WEBUI_PORT=9775
volumes:
- /volume1/docker/qbittorrent:/config
- /volume1/docker/qbittorrent/downloads:/downloads
restart: always Si vous préférez utiliser NordLynx (WireGuard, plus rapide), remplacez le bloc environment de GlueTUN par la version ci-dessous (clé privée extraite à l'étape 2) :
Variante NordLynx / WireGuard :
environment:
- VPN_SERVICE_PROVIDER=nordvpn
- VPN_TYPE=wireguard
- WIREGUARD_PRIVATE_KEY=VOTRE_CLE_PRIVEE_NORDLYNX
- WIREGUARD_ADDRESSES=10.5.0.2/32
- SERVER_COUNTRIES=France
- TZ=Europe/Paris Lancez ensuite les conteneurs. Dans Container Manager (DSM 7.2+), cliquez sur "Project" puis "Create", sélectionnez votre fichier docker-compose.yml et validez.
Décortiquons les lignes les plus importantes :
VPN_SERVICE_PROVIDER=nordvpn: indique à GlueTUN qu'il doit utiliser les serveurs NordVPN et la bonne méthode d'authentification.OPENVPN_CATEGORIES=P2P: ligne cruciale. Sans elle, GlueTUN peut vous connecter à un serveur qui bloque le BitTorrent. Cette variable force Nord à ne sélectionner que des serveurs marqués "P2P autorisé".network_mode: "service:gluetun": qBittorrent utilise le réseau de GlueTUN. Si le VPN tombe, qBittorrent perd Internet. C'est votre kill switch automatique.PUID=1026 PGID=100: les identifiants utilisateur/groupe sur Synology. Vérifiez les vôtres en SSH avecid.- Absence de
VPN_PORT_FORWARDING: NordVPN ne supporte pas cette fonctionnalité. On n'en met pas, c'est volontaire. Si vous ajoutez ces variables quand même, GlueTUN les ignorera.
Fichier /volume1/docker/qbittorrent/docker-compose.yml :
services:
gluetun:
image: qmcgaw/gluetun:latest
container_name: gluetun
cap_add: [NET_ADMIN]
devices: [/dev/net/tun:/dev/net/tun]
environment:
- VPN_SERVICE_PROVIDER=nordvpn
- VPN_TYPE=openvpn # ou wireguard pour NordLynx
- OPENVPN_USER=<service_user>
- OPENVPN_PASSWORD=<service_pass>
- SERVER_COUNTRIES=France
- OPENVPN_CATEGORIES=P2P # IMPORTANT
# Variante NordLynx :
# - VPN_TYPE=wireguard
# - WIREGUARD_PRIVATE_KEY=<key>
# - WIREGUARD_ADDRESSES=10.5.0.2/32
ports: [9775:9775]
volumes: [/volume1/docker/gluetun:/gluetun]
restart: always
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
network_mode: "service:gluetun"
depends_on: { gluetun: { condition: service_healthy } }
environment:
- PUID=1026
- PGID=100
- WEBUI_PORT=9775
volumes:
- /volume1/docker/qbittorrent:/config
- /volume1/docker/qbittorrent/downloads:/downloads Déploiement :
# En SSH sur le NAS
cd /volume1/docker/qbittorrent
docker-compose up -d
docker logs -f gluetun # Vérifier "VPN is up"
# NB : pas de "port forwarded" dans les logs → normal sur Nord Le kill switch automatique. Grâce à network_mode: "service:gluetun", qBittorrent ne peut passer que par le VPN. Si GlueTUN s'arrête ou perd la connexion, qBittorrent perd Internet instantanément. Aucun risque de fuite de votre vraie IP, même pendant une fraction de seconde. C'est le seul vrai avantage de ce setup vs l'app Nord officielle sur PC.
💾 Régler qBittorrent pour HDD classiques
Les disques durs mécaniques sont le deuxième goulot d'étranglement après le VPN. Un HDD lit/écrit à 100-150 Mo/s quand les données sont séquentielles. Mais BitTorrent télécharge par petits morceaux en désordre : c'est ce qu'on appelle les écritures aléatoires, et ça tue les performances.
L'astuce : utiliser la RAM du NAS comme tampon pour absorber ces écritures en vrac, puis les écrire sur le disque de façon plus ordonnée.
Connectez-vous à l'interface web de qBittorrent (http://IP-NAS:9775), puis allez dans Paramètres → Avancé :
Paramètres → Avancé :
Puis dans Comportement :
Paramètres → Comportement :
Paramètres → Avancé :
- Fils d'E/S asynchrones :
10 - Fils de hachage :
2 - Taille file disque :
1024Kio - Type E/S :
Compatible POSIX - Mode R/W E/S :
Cache du système d'exploitation - Affinité extension :
Oui
Comportement :
- Limite mémoire :
128 Mio(2Go) /512 Mio(4+Go) - Mémoire vérification :
128 Mio - Interface réseau :
tun0(kill switch)
Pourquoi upgrader la RAM fait une différence. Plus votre NAS a de RAM libre, plus le cache d'écriture peut absorber de données avant de les écrire sur le disque. Sur DS418play, passer de 2 Go à 6 Go coûte ~20€ et double facilement les débits sur HDD. C'est l'upgrade avec le meilleur rapport qualité/prix.
🎯 Limiter les torrents actifs
Ça peut sembler contre-intuitif : pourquoi limiter le nombre de téléchargements si on veut aller vite ? Parce que chaque torrent actif écrit sur le disque en même temps. Plus il y en a, plus le disque doit sauter entre des fichiers différents, et plus il ralentit.
C'est comme un serveur dans un restaurant : s'il sert 3 tables, tout va bien. S'il en sert 15, tout le monde attend.
Allez dans Paramètres → BitTorrent → File d'attente :
Résultat concret : passer de 15 torrents actifs à 3 peut doubler votre débit effectif sur HDD, y compris avec NordVPN.
Paramètres → BitTorrent → File d'attente :
- DL actifs :
3 - UL actifs :
5 - Total actifs :
8 - Vérification :
1
Moins de torrents parallèles = I/O plus séquentielles = ×2 débit sur HDD.
📦 Préallouer l'espace disque
Dans Paramètres → Téléchargements, cochez "Préallouer l'espace disque pour tous les fichiers".
Que fait cette option ? Quand vous lancez un torrent de 20 Go, qBittorrent réserve immédiatement 20 Go d'espace continu sur le disque, avant même de commencer le téléchargement. Sans ça, les morceaux du fichier atterrissent un peu partout (fragmentation), ce qui ralentit tout : le téléchargement, le seeding, et même la lecture si vous utilisez Plex.
Le seul inconvénient : le démarrage d'un torrent prend quelques secondes de plus. Mais le gain en performance sur la durée en vaut largement la peine.
Paramètres → Téléchargements → cocher Préallouer l'espace disque pour tous les fichiers. Réduit la fragmentation HDD, améliore les perfs de seeding et de lecture Plex/Jellyfin.
🟠 Vérification : la flamme orange est normale
Une fois tout lancé, regardez en bas à droite de l'interface web de qBittorrent. Vous y verrez une petite icône de connexion. Avec NordVPN, elle restera orange, et c'est normal.
Ce qui est important à vérifier, c'est que le VPN est bien actif et que votre vraie IP ne fuit pas :
- Vérifiez les logs GlueTUN : dans Container Manager, ouvrez les logs du conteneur
gluetun. Cherchez une ligne typeVPN is upouConnected to. C'est la preuve que le tunnel est établi. - Vérifiez votre IP publique : dans qBittorrent, allez dans Outils → Vérification IP (ou passez par un service comme ipleak.net via le WebUI). L'IP affichée doit être celle d'un serveur NordVPN en France, pas la vôtre.
- Vérifiez l'interface tun0 : Paramètres → Avancé → Interface réseau =
tun0. Si la case n'est pas cochée, qBittorrent peut passer par votre IP réelle en cas de chute du VPN.
Flamme orange → c'est le comportement attendu, pas une erreur.
Limites à accepter avec ce setup : votre ratio progressera plus lentement qu'avec un VPN qui supporte le port forwarding. Sur les trackers privés exigeants (TL, PTP, BTN…), ça peut devenir un vrai handicap. Voir le bloc de recommandation en bas de page si c'est votre cas.
Icône de connexion qBittorrent sur NordVPN :
- 🟠 Orange : port fermé = état normal et attendu (pas de port forwarding chez Nord)
- 🟢 Verte : impossible à obtenir sans port forwarding côté VPN
Vérifications essentielles :
# 1. VPN actif
docker logs gluetun 2>&1 | grep -E "VPN is up|Connected"
# 2. IP publique vue depuis le conteneur
docker exec gluetun wget -qO- https://ipinfo.io/ip
# → doit être une IP NordVPN, pas la vôtre
# 3. Interface réseau qBittorrent
curl http://NAS_IP:9775/api/v2/app/preferences \
| jq .current_network_interface
# → "tun0"
# 4. Test kill switch (stopper gluetun)
docker stop gluetun
curl -m 5 http://NAS_IP:9775 # → timeout attendu Ratio impact : sans PF, uniquement connexions sortantes. Attendez-vous à ~30-50% du débit d'un setup ProtonVPN équivalent sur trackers privés.
Résultats mesurés sur le setup testé. Avant : OpenVPN + réglages par défaut + Nord = 2-3 Mo/s. Après : NordLynx + réglages optimisés HDD = 8-12 Mo/s. C'est ×3 à ×4, mais on plafonne à cause du port forwarding absent.
Pour aller plus loin : si les débits restent insuffisants ou si votre ratio n'avance pas sur un tracker privé, envisagez ProtonVPN (port forwarding natif) ou, pour les volumes vraiment importants, une seedbox dédiée.
Si votre objectif est de maximiser votre ratio et de tenir le rythme sur des trackers comme TL, PTP ou BTN, NordVPN va vous brider à cause de l'absence de port forwarding. ProtonVPN Plus supporte NAT-PMP nativement dans GlueTUN : flamme verte garantie, peers entrants, débits ×8 sur le même hardware.
Voir le guide NAS Synology + ProtonVPN →Vous avez votre NAS sous NordVPN. Et le reste ?
Un seul abonnement NordVPN protège jusqu'à 10 appareils. Continuez à sécuriser votre écosystème.