NOTES PERSONNELLES
Connexions, déplacements et usages numériques
CARNET NUMÉRIQUE

Quel VPN pour un conteneur Docker P2P : le piège du client graphique et les critères qui comptent vraiment

Lorsque l’on commence à structurer son propre serveur domestique ou son NAS — qu’il tourne sous Synology, Unraid, TrueNAS ou une distribution Linux classique —, l’envie d’automatiser ses téléchargements P2P arrive vite. Très vite surgit également la préoccupation majeure : la confidentialité. L’erreur quasi systématique du débutant consiste alors à aborder Docker comme on aborderait un ordinateur de bureau. On se demande : « Quel abonnement VPN connu dois-je acheter pour installer son application dans mon conteneur ? »

Certains tentent d’extraire un paquet d’installation classique, cherchent désespérément une image Docker officielle arborant le logo de leur fournisseur grand public favori, ou essaient de lancer un client logiciel conçu pour un environnement graphique. Le résultat est invariablement le même : une impasse technique, des conflits de dépendances, des autorisations système démesurées ou une interface fantôme introuvable.

Pour réussir son installation, il faut d’abord comprendre que Docker n'est pas un système d'exploitation miniature avec un écran. Arrêtez de chercher une marque ou un client d’application : pour un conteneur Docker P2P, le choix d'un service se résume à une question de protocole et d'exposition de configuration brute.


Résumé de l’article et contexte produit

Quel type de VPN convient réellement à un conteneur Docker utilisé pour le P2P ?

Dans ce contexte headless, l’article recommande de ne pas chercher une application VPN graphique. Le besoin est un fournisseur capable d’exposer une configuration WireGuard ou OpenVPN brute, utilisable par un conteneur réseau sidecar, avec un pare-feu qui coupe tout trafic si le tunnel tombe.

Ce qu’il faut retenir dans ce contexte

  • Pour qui : Les personnes qui font tourner qBittorrent, Transmission ou un autre client P2P dans Docker sur un NAS ou un serveur domestique.
  • Architecture conseillée : Un conteneur réseau dédié, par exemple Gluetun, porte le tunnel ; le conteneur P2P partage son espace réseau via network_mode: "service:vpn" au lieu d’avoir sa propre sortie Internet.
  • Critères décisifs : L’article retient l’export de profils WireGuard standards, la redirection de port et la stabilité de sessions longues plutôt que l’interface d’une application de bureau.
  • Limite produit explicite : OnlydogVPN est présenté comme adapté aux appareils personnels, mais pas à ce cas Docker : le texte précise qu’il n’est pas conçu pour fournir les fichiers de configuration bruts nécessaires à un serveur sans écran.

Source produit : site officiel OnlydogVPN.

Un serveur domestique où le conteneur qBittorrent utilise encore l’adresse IP normale malgré un VPN connecté

Pourquoi Docker ne fonctionne pas comme un PC

Dans un système d’exploitation standard, une application VPN commerciale fait bien plus qu’établir un tunnel chiffré. Elle intègre une interface soignée, des animations de connexion, un module d’authentification par mot de passe ou via le web, ainsi que des processus d’arrière-plan qui manipulent les cartes réseau virtuelles du système hôte.

Transposer ce modèle dans un conteneur Docker est un contresens architectural. Un conteneur est conçu pour isoler et exécuter un processus unique, de manière autonome et sans interaction graphique (« headless »). Tenter de faire tourner l’application officielle d’un service commercial au sein d’une image nécessite généralement d’accorder au conteneur des privilèges administrateur excessifs (--privileged), d’ouvrir des brèches dans la gestion des cartes réseau de l’hôte (/dev/net/tun), et de bricoler des couches graphiques virtuelles pour espérer cliquer sur « Connexion ».

Le verdict est sans appel : un conteneur P2P n’a que faire d’un logiciel complet. Il n’a besoin que d’un canal réseau sécurisé. Le bon fournisseur VPN pour cet environnement n'est donc pas celui qui propose la plus belle interface pour Windows ou macOS, mais celui qui accepte de vous livrer des paramètres de connexion purs et standardisés : un simple fichier de configuration WireGuard (.conf) ou OpenVPN (.ovpn).

Le modèle sidecar et l’étanchéité du Kill Switch

Pour isoler correctement ses flux de téléchargement sans impacter le reste du serveur, l'industrie de l'auto-hébergement a abandonné depuis longtemps les images monolithiques tout-en-un — ces conteneurs vieillissants qui embarquent à la fois le client torrent et le client VPN. Si l'un des composants devient obsolète, c'est l'ensemble de la pile qui se fragilise.

La méthode d'ingénierie propre repose sur le modèle dit « sidecar » (ou conteneur compagnon). Le principe est limpide :

  1. Vous déployez un premier conteneur dédié exclusivement à la gestion du réseau sécurisé (souvent via une passerelle reconnue comme Gluetun).
  2. Vous déployez votre conteneur de téléchargement (qBittorrent, Transmission, etc.) en lui interdisant d'avoir sa propre interface réseau externe, en utilisant la directive network_mode: "service:vpn".
services:
  gluetun:
    image: qmcgaw/gluetun
    cap_add:
      - NET_ADMIN
    environment:
      - VPN_SERVICE_PROVIDER=custom
      - VPN_TYPE=wireguard
    volumes:
      - ./wireguard.conf:/gluetun/wireguard/wg0.conf:ro
    ports:
      - 8080:8080 # Accès à l'interface web du client P2P

  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent
    network_mode: "service:gluetun"
    depends_on:
      - gluetun

Grâce à cette topologie, le conteneur P2P n'a même pas conscience du monde extérieur : il emprunte directement l'espace réseau du conteneur VPN.

C'est également ici que prend tout son sens la notion de Kill Switch. Sur un ordinateur grand public, cette fonctionnalité repose sur un logiciel qui détecte la rupture du tunnel et tente de couper les flux applicatifs — une méthode qui peut parfois laisser fuiter quelques paquets lors d'un plantage du programme. Sous Docker, le Kill Switch n'est pas une option logicielle : ce sont des règles de pare-feu réseau internes (iptables) appliquées au conteneur passerelle. Si le tunnel VPN tombe, le conteneur réseau refuse catégoriquement tout paquet sortant vers Internet. Le client P2P perd instantanément sa connectivité, sans le moindre risque de fuite de l'adresse IP de votre serveur hôte.

Schéma séparant la route VPN de qBittorrent de la connexion normale de Plex et des sauvegardes
Le conteneur P2P partage la sortie du conteneur VPN, tandis que les autres services conservent leur route normale.

Les critères qui comptent vraiment

En abordant le problème sous l'angle de l'infrastructure, la grande majorité des marques de VPN grand public disparaît instantanément de l'équation. Pour faire fonctionner un conteneur P2P sans friction, seuls trois critères comptent :

1. L’exportation native de configurations WireGuard

De nombreux services verrouillent leurs utilisateurs au sein de leur propre écosystème fermé en refusant de fournir les clés cryptographiques brutes nécessaires à l'établissement du tunnel. Pour Docker, vous devez obligatoirement obtenir une configuration WireGuard standard comprenant votre clé privée (PrivateKey), l'adresse assignée (Address) et les coordonnées du serveur cible (Endpoint). Si l'espace client d'un fournisseur impose son propre logiciel pour se connecter, il est disqualifié.

2. La prise en charge de la redirection de port (Port Forwarding)

Le protocole BitTorrent repose sur la connectivité bidirectionnelle entre pairs. Si votre conteneur est dissimulé derrière le pare-feu du VPN sans aucun port d'écoute ouvert, vous restez en mode passif. Vous ne pourrez échanger des données qu'avec les clients qui ont eux-mêmes un port ouvert, réduisant drastiquement le nombre de sources disponibles, votre vitesse de téléchargement et votre capacité à maintenir un ratio correct. Un bon service pour conteneur doit proposer un mécanisme d'ouverture de port compatible avec les scripts ou les variables d'environnement de votre passerelle.

3. La stabilité et la persistance des sessions 24/7

Un conteneur Docker a vocation à tourner sans interruption, jour et nuit. Certains protocoles ou serveurs saturent ou gèlent leurs poignées de main cryptographiques après quelques heures, forçant un redémarrage manuel du conteneur réseau. Le fournisseur retenu doit proposer des serveurs dédiés aux infrastructures capables d'encaisser des flux constants sans interruption arbitraire de session.

Serveurs headless et appareils personnels ne demandent pas la même chose

Arrivé à ce stade, une distinction fondamentale s'impose : la configuration d'un conteneur Docker relève de l'administration système pure, tandis que la sécurisation de vos appareils quotidiens (votre ordinateur portable, votre smartphone, votre tablette) relève de l'expérience utilisateur et de la mobilité. Vouloir utiliser le même outil pour ces deux missions diamétralement opposées est une erreur fréquente.

Sur vos appareils personnels, manipuler des fichiers .conf à la main, configurer des règles de routage ou diagnostiquer des échecs de connexion en ligne de commande est une corvée contre-productive. C'est précisément pour cet usage direct que des services modernes comme OnlydogVPN↗ ont été pensés. En se concentrant exclusivement sur les applications finales (macOS, Windows, iOS, Android), ce service élimine toute la complexité administrative : scénarios préconfigurés selon les usages (vitesse, streaming, filtrage), résilience accrue lors des changements de réseau grâce à une architecture basée sur HTTP/3, et authentification sans mot de passe via un simple code de validation par e-mail. C'est le choix idéal pour naviguer sans friction au quotidien sans jamais avoir à comprendre le fonctionnement interne d'un tunnel.

En revanche, tenter de forcer ce type de service applicatif à entrer dans un conteneur Docker est un non-sens absolu. L'outil n'a pas été conçu pour générer des fichiers de configuration bruts à destination de serveurs sans écran, tout comme un utilitaire d'administration réseau n'a pas la simplicité requise pour équiper le smartphone de toute la famille.

Pour votre pile Docker, orientez-vous donc sans regret vers des acteurs spécialisés dans la fourniture de profils bruts headless et nativement référencés dans des outils comme Gluetun — à l'instar d'AirVPN, ProtonVPN ou Mullvad. Réservez l'ergonomie applicative avancée à vos appareils personnels, et traitez votre serveur comme ce qu'il est : un environnement d'infrastructure.

Notes pour la prochaine configuration

Une fois le bon fournisseur identifié pour votre serveur, la mise en production s'effectue en trois étapes méthodiques :

Récupérer votre configuration brute : Rendez-vous sur le tableau de bord web de votre fournisseur VPN orienté infrastructure, générez un profil WireGuard dédié à votre serveur et téléchargez le fichier de configuration standard (ou notez les clés : PrivateKey, Address, PublicKey, Endpoint). Si vous utilisez la redirection de port, activez l'option dans votre panneau utilisateur.

Assembler la pile Docker Compose : Configurez votre conteneur réseau (par exemple Gluetun) avec ces identifiants et montez le volume réseau. Déclarez ensuite votre conteneur P2P (qBittorrent, Transmission) en rattachant directement son trafic au conteneur réseau (network_mode: "service:gluetun"). Notez bien que les ports d'accès à l'interface web de votre client torrent doivent désormais être déclarés sur le conteneur VPN, et non sur le conteneur P2P lui-même.

Valider l'étanchéité avant tout transfert : Ne lancez aucun téléchargement avant d'avoir vérifié l'isolation du système. Ouvrez un terminal sur votre machine hôte et exécutez une requête de vérification directement depuis l'intérieur du conteneur de téléchargement :

docker exec -it qbittorrent curl ifconfig.me

L'adresse IP renvoyée doit impérativement être celle de votre serveur VPN, et non celle de votre box Internet. Pour tester le Kill Switch, coupez manuellement la liaison du conteneur VPN : toute requête curl depuis le conteneur P2P doit alors échouer immédiatement et renvoyer un timeout complet.

En abandonnant la recherche d'une application classique au profit d'un profil réseau pur monté en sidecar, vous obtenez une installation robuste, stable et totalement hermétique aux fuites de données.

Questions fréquentes

Faut-il installer l’application VPN officielle dans le conteneur Docker ?

Non. L’article considère cette approche comme un contresens pour un service headless. Le conteneur a besoin d’un tunnel réseau et de paramètres de configuration, pas d’une interface graphique complète.

Pourquoi utiliser un conteneur sidecar comme Gluetun ?

Il sépare la fonction réseau du client P2P. Le conteneur de téléchargement partage directement l’espace réseau du conteneur VPN, ce qui simplifie l’isolation et permet d’appliquer le pare-feu au bon endroit.

La redirection de port est-elle importante pour le P2P ?

Oui dans le raisonnement de l’article. Sans port entrant disponible, le client reste plus passif et peut joindre moins de pairs, ce qui peut réduire les performances et compliquer le maintien d’un ratio.

OnlydogVPN convient-il à un serveur Docker P2P ?

Pas selon cet article. Il est décrit comme une application destinée aux appareils personnels, sans export de profils bruts pour un serveur headless. Pour Docker, le texte recommande plutôt un fournisseur nativement compatible avec des outils comme Gluetun.