Optimiser qBittorrent avec AirVPN sur NAS Synology
0 / 7
← Tous les guides

Optimiser qBittorrent avec AirVPN sur NAS Synology

Configuration Docker + GlueTUN. Port forwarding disponible pour maximiser votre ratio, à 3€/mois.

Choisissez votre guide

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.

Setup testé dans ce guide

Synology DS418play (Intel Celeron J3355, 2 Go de RAM), HDD classiques en SHR, fibre 800 Mb/s, Docker avec GlueTUN + qBittorrent + AirVPN (abonnement à 3€/mois).

Résultat mesuré : de 3 Mo/s à 25 Mo/s sur le même hardware, grâce au port forwarding AirVPN.

1

🐢 Pourquoi votre NAS rame

Votre NAS télécharge à 3 Mo/s alors que vous avez une fibre à 800 Mb/s ? Le coupable n'est pas votre connexion. C'est le protocole VPN que vous utilisez.

Il existe deux grandes technologies pour chiffrer votre trafic VPN :

Comparaison OpenVPN vs WireGuard sur NAS :

OpenVPN (l'ancien)
Tourne comme un programme classique. Votre CPU doit faire tout le chiffrement. Sur un petit CPU type Celeron, il sature à 100% et freine tout.
CPU : 100% · Débit : 3 Mo/s
WireGuard (le moderne)
Tourne au cœur du système (kernel). Quasi aucune charge CPU. Même sur un petit NAS, il délivre.
CPU : 15% · Débit : 25 Mo/s (×8)

Dans mes tests, le passage de l'un à l'autre a multiplié le débit par 8 sur le même serveur AirVPN, sans rien toucher d'autre. C'est LA première chose à changer.

Et bonne nouvelle : AirVPN propose le port forwarding, ce qui est crucial pour maximiser votre ratio. Contrairement à Mullvad ou NordVPN qui ont supprimé cette fonctionnalité, AirVPN la maintient depuis toujours et à un prix imbattable (3€/mois).

OpenVPN = chiffrement userland, overhead CPU massif sur Celeron. WireGuard = kernel-level, zéro overhead. Résultat mesuré : ×8 en débit sur le même serveur AirVPN.

Benchmark DS418play (Celeron J3355) :

# OpenVPN (avant)
$ top
CPU : 98.2% user, openvpn pid 1234
$ iperf3 -c test.airvpn
[  5]   0.00-10.00  sec   36 MBytes   30 Mbits/sec

# WireGuard (après)
$ top
CPU : 14.8% user, wireguard kernel
$ iperf3 -c test.airvpn
[  5]   0.00-10.00  sec  240 MBytes  201 Mbits/sec

Atout AirVPN : port forwarding natif et fixe (pas dynamique comme ProtonVPN). Une fois le port attribué, il ne change plus, pas besoin de script de mise à jour automatique.

Pourquoi la différence est si grande ? OpenVPN fait passer chaque paquet réseau par plusieurs couches logicielles avant de le chiffrer. WireGuard, lui, 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.

2

🔑 Configurer le port forwarding AirVPN

C'est l'étape cruciale. AirVPN est l'un des rares VPN qui propose encore le port forwarding, et c'est ce qui va faire passer votre flamme d'orange à verte dans qBittorrent.

La démarche se fait en deux temps sur le site airvpn.org : d'abord réserver un port, puis générer la config WireGuard associée.

  1. Connectez-vous sur airvpn.org avec votre compte
  2. Allez dans Client Area → Forwarded Ports
  3. Cliquez sur "Add new port", sélectionnez un port aléatoire (ou choisissez le vôtre), validez
  4. Notez bien le numéro de port attribué, vous en aurez besoin partout

Client Area → Forwarded Ports :

Port attribué 54321 (exemple)
Protocole TCP + UDP
✓ Port forwarding fixe PERMANENT
Avantage AirVPN : le port reste fixe, pas besoin de script dynamique pour le mettre à jour.

Maintenant, générez votre config WireGuard avec le Config Generator :

  1. Allez dans Client Area → Config Generator
  2. Sélectionnez "Linux" comme plateforme
  3. Choisissez "WireGuard" comme protocole
  4. Sélectionnez un serveur en France (le plus proche = meilleur ping)
  5. Cliquez sur "Generate" et téléchargez le fichier .conf

Ouvrez le fichier .conf avec un éditeur de texte. Vous y trouverez trois infos importantes :

Contenu du fichier .conf AirVPN :

[Interface]
Address = 10.150.x.x/32  ← Notez cette ligne
PrivateKey = xxxxx...xxxxx  ← Notez cette ligne
DNS = 10.128.0.1

[Peer]
PublicKey = ...
PresharedKey = yyyyy...yyyyy  ← Notez cette ligne
AllowedIPs = 0.0.0.0/0
Endpoint = france.vpn.airdns.org:1637

Gardez ces trois valeurs sous la main (PrivateKey, PresharedKey, Address). On va les coller dans le docker-compose à l'étape suivante.

Sur airvpn.org, deux étapes :

# 1. Client Area → Forwarded Ports → Add new port
Port forwardé : 54321 (exemple, fixe et permanent)

# 2. Client Area → Config Generator
Platform: Linux
Protocol: WireGuard
Server: France

# Récupérer dans le .conf :
PrivateKey = xxxxx
PresharedKey = yyyyy
Address = 10.150.X.X/32

Spécificité AirVPN vs ProtonVPN : le port est fixe, pas besoin de VPN_PORT_FORWARDING_UP_COMMAND pour synchroniser qBittorrent après reconnexion. Configuration plus simple et plus robuste.

Pourquoi AirVPN est un choix pertinent en 2026 ? Alors que Mullvad a supprimé le port forwarding en 2023 et que NordVPN ne l'a jamais proposé, AirVPN le maintient nativement. Combiné au prix imbattable (3€/mois en engagement long), c'est le meilleur rapport qualité/prix pour un seedbox-like sur NAS. Le port est fixe et permanent : pas besoin de script de synchronisation, c'est configuré une fois pour toutes.

3

🐳 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 :

🔒 GlueTUN
Gère la connexion VPN. Crée le tunnel WireGuard vers AirVPN.
→
📥 qBittorrent
Le client torrent. Passe par le réseau de GlueTUN. Aucun accès direct à Internet.

Créez un fichier docker-compose.yml dans /volume1/docker/qbittorrent/ et collez le code ci-dessous. Remplacez les valeurs entre crochets par celles récupérées à l'étape 2.

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=airvpn
      - VPN_TYPE=wireguard
      - WIREGUARD_PRIVATE_KEY=VOTRE_CLE_PRIVEE
      - WIREGUARD_PRESHARED_KEY=VOTRE_PRESHARED_KEY
      - WIREGUARD_ADDRESSES=10.150.x.x/32
      - SERVER_COUNTRIES=France
      - FIREWALL_VPN_INPUT_PORTS=54321
      - 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

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=airvpn : dit à GlueTUN d'utiliser les serveurs AirVPN. GlueTUN supporte nativement AirVPN depuis plusieurs versions.
  • FIREWALL_VPN_INPUT_PORTS=54321 : ouvre le port forwardé AirVPN dans le firewall de GlueTUN. Remplacez 54321 par le port attribué dans votre Client Area.
  • 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 avec id.
  • Pas besoin de UP_COMMAND comme avec ProtonVPN : le port AirVPN est fixe et permanent, vous le renseignerez une seule fois dans qBittorrent.

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=airvpn
      - VPN_TYPE=wireguard
      - WIREGUARD_PRIVATE_KEY=<key>
      - WIREGUARD_PRESHARED_KEY=<psk>
      - WIREGUARD_ADDRESSES=10.150.x.x/32
      - SERVER_COUNTRIES=France
      - FIREWALL_VPN_INPUT_PORTS=54321
    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

Adaptation AirVPN : le port forwarding est fixe (pas dynamique comme Proton). Pas besoin de UP_COMMAND automatique. Le port se renseigne manuellement une seule fois dans qBittorrent (étape 4).

Déploiement :

# En SSH sur le NAS
cd /volume1/docker/qbittorrent
docker-compose up -d
docker logs -f gluetun   # Vérifier "Wireguard is up"

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.

4

💾 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.

D'abord, on va renseigner le port AirVPN dans qBittorrent. Connectez-vous à l'interface web (http://IP-NAS:9775), puis allez dans Paramètres → Connexion :

Paramètres → Connexion :

Port d'écoute 54321 (votre port AirVPN)
UPnP / NAT-PMP Décoché (inutile)
Important : ce port doit être identique à celui réservé dans votre Client Area AirVPN et à celui déclaré dans FIREWALL_VPN_INPUT_PORTS.

Ensuite, allez dans Paramètres → Avancé :

Paramètres → Avancé :

Fils d'E/S asynchrones 10
Fils de hachage 2
Taille file d'attente disque 1024 Kio
Type d'E/S du disque Compatible POSIX
Mode d'écriture E/S disque Cache du système ⭐
Mode de lecture E/S disque Cache du système
Affinité par extension de morceau Oui
⭐ Le plus important : le "cache du système" utilise la RAM libre du NAS comme tampon d'écriture.

Puis dans Comportement :

Paramètres → Comportement :

Limite mémoire physique 128 Mio (2Go RAM) / 512 Mio (4+Go)
Mémoire en suspens (vérification) 128 Mio
Interface réseau 🛡️ tun0 (obligatoire)
🛡️ Interface tun0 = kill switch de qBittorrent. Si le VPN tombe, aucun trafic ne sort.

Connexion :

  • Port d'écoute : 54321 (port AirVPN fixe)
  • UPnP/NAT-PMP : décoché

Paramètres → Avancé :

  • Fils d'E/S asynchrones : 10
  • Fils de hachage : 2
  • Taille file disque : 1024 Kio
  • 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.

5

🎯 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 :

Téléchargements actifs max 3
Envois actifs max 5
Torrents actifs max 8
En vérification max 1

Résultat concret : passer de 15 torrents actifs à 3 peut doubler votre débit effectif sur HDD.

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.

6

📦 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.

Sans préallocation
Fichier éparpillé sur le disque
Avec préallocation
Fichier continu, lecture rapide

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.

7

✅ Vérification : la flamme verte

Une fois tout lancé, comment savoir si ça fonctionne ? Regardez en bas à droite de l'interface web de qBittorrent. Vous y verrez une petite icône de connexion :

🟢 Verte : tout est bon
Le port AirVPN est ouvert, les autres peers peuvent se connecter à vous. Débits optimaux.
🟠 Orange : port fermé
Personne ne peut initier une connexion vers vous. Débits limités. À corriger.

Si l'icône reste orange, voici comment diagnostiquer :

  1. Vérifiez les logs GlueTUN : dans Container Manager, ouvrez les logs du conteneur gluetun. Cherchez les lignes Wireguard is up et healthy. Si elles n'apparaissent pas, la connexion VPN a échoué : revérifiez votre PrivateKey, PresharedKey et Address.
  2. Vérifiez les 3 ports identiques : le port déclaré dans votre Client Area AirVPN, celui dans FIREWALL_VPN_INPUT_PORTS du docker-compose, et celui dans qBittorrent → Connexion doivent être strictement identiques. C'est l'erreur la plus fréquente.
  3. Testez le port depuis AirVPN : dans votre Client Area → Forwarded Ports, il y a un bouton "Check" qui vérifie si le port est bien accessible depuis l'extérieur. Si ce test passe mais que qBittorrent reste orange, le problème vient du côté qBittorrent (mauvais numéro, interface tun0 pas sélectionnée).
🎉
Setup complet !
Votre NAS est optimisé : 25 Mo/s constants, kill switch actif, port forwarding AirVPN activé.
CPU à 20%, RAM à 40%, Plex fluide en parallèle. Et tout ça pour 3€/mois.

Icône de connexion qBittorrent :

  • 🟢 Verte : port ouvert, OK
  • 🟠 Orange : port fermé, à corriger

Si orange :

# 1. Logs GlueTUN : vérifier la connexion WireGuard
docker logs gluetun 2>&1 | grep -i "wireguard\|healthy"

# 2. Vérifier les 3 ports identiques :
#    - AirVPN Client Area → Forwarded Ports
#    - docker-compose → FIREWALL_VPN_INPUT_PORTS
#    - qBittorrent → Connexion → Port d'écoute

# 3. Test du port depuis airvpn.org
#    Client Area → Forwarded Ports → Check

# 4. qBittorrent API : vérifier le listen_port
curl http://NAS_IP:9775/api/v2/app/preferences | jq .listen_port

Résultats mesurés sur le setup testé. Avant : OpenVPN + réglages par défaut = 3 Mo/s. Après : WireGuard + AirVPN + réglages optimisés HDD = 25 Mo/s (×8). Le CPU tourne à 20%, la RAM à 40%, Plex continue de streamer pendant les téléchargements, aucun lag système. Le port forwarding AirVPN reste actif en permanence, sans script de synchronisation.

Pour aller plus loin : si vos HDD restent le goulot malgré tout, upgrader la RAM du NAS (sur DS418play, 2→6 Go pour ~20€) fait une vraie différence. Sinon, une seedbox pour les gros téléchargements est la solution ultime.

Vous avez votre NAS qui seed 24/7. Et le reste ?

Un seul abonnement AirVPN protège plusieurs appareils en simultané (5 par défaut). Continuez à sécuriser votre écosystème.

🤝
Besoin d'un coup de main ?

Je peux vous aider à configurer tout ça à distance. Petit forfait ou au chapeau, on s'arrange.

Me contacter