Solution communautaire

Acheminer les applications ZimaOS via un VPN avec Gluetun

A ZimaOS user looking for WireGuard client mode discovered Gluetun as the practical Docker VPN-client path. Later replies worked through qBittorrent routing, shared network namespaces, and port conflicts.

Si vous voulez que certaines applications ZimaOS envoient leur trafic via un VPN commercial, le fil de discussion de la communauté recommande Gluetun, plutôt que de considérer l’entrée WireGuard de l’App Store comme une simple interface permettant de téléverser la configuration de votre client. L’auteur d’origine a d’abord demandé comment utiliser WireGuard comme client, puis a trouvé Gluetun dans ZimaOS et documenté l’approche fondée sur le réseau Docker.

La conception clé consiste à faire partager à l’application cible l’espace de noms réseau de Gluetun. Gluetun gère le tunnel VPN, le pare-feu et les ports publiés ; qBittorrent ou une autre application utilise alors cette pile réseau au lieu de sa propre interface bridge standard.

WireGuard et Tailscale dans l’App Store de ZimaOS ne sont pas la même chose qu’un client VPN de fournisseur

Zima-Giorgio a répondu que WireGuard et Tailscale étaient disponibles dans l’App Store. L’auteur a ensuite précisé l’élément manquant : il souhaitait un workflow de client dans lequel une configuration de fournisseur pourrait être importée et utilisée pour acheminer le trafic des applications.

Cette distinction est importante. Tailscale et un point de terminaison WireGuard auto-hébergé sont utiles pour la mise en réseau d’accès distant privé, tandis que Gluetun est spécialement conçu pour connecter des charges de travail Docker à des fournisseurs VPN commerciaux pris en charge à l’aide d’OpenVPN ou de WireGuard.

La découverte de Gluetun dans le fil source

L’auteur a ensuite écrit que ZimaOS incluait Gluetun, même si la recherche du terme générique « VPN » dans l’App Store ne le rendait pas évident.

Le conseil donné à l’origine était de remplacer le mode réseau bridge normal de l’application utilisant le tunnel par l’espace de noms réseau de Gluetun et de supprimer les ports publiés par l’application, puisque Gluetun doit les publier à sa place.

network_mode: container:gluetun

Cette syntaxe est valide lorsqu’un conteneur externe rejoint un conteneur Gluetun déjà en cours d’exécution en utilisant son nom.

service:gluetun contre container:gluetun

La documentation actuelle de Gluetun distingue deux cas courants avec Compose :

# Même projet Compose
network_mode: "service:gluetun"

et :

# Projet Compose séparé / conteneur externe
network_mode: "container:gluetun"

Les deux formes sont apparues sur le plan conceptuel dans la discussion de la communauté. La bonne dépend de la question de savoir si Gluetun et l’application routée se trouvent dans la même pile Compose.

Guide actuel de la mise en réseau d’un conteneur Gluetun

Pourquoi qBittorrent peut malgré tout divulguer l’adresse IP du FAI

Un utilisateur a indiqué par la suite que Gluetun affichait bien une adresse IP NordVPN dans ses journaux, mais que qBittorrent semblait toujours utiliser l’adresse du FAI lors des tests. Ce symptôme signifie que « Gluetun est connecté » et que « qBittorrent partage effectivement la pile réseau de Gluetun » doivent être testés séparément.

Vérifiez la définition du conteneur qBittorrent et confirmez que son mode réseau est bien rattaché à Gluetun. Une interface bridge normale à côté de Gluetun peut laisser qBittorrent utiliser la route habituelle de l’hôte.

Déplacez les ports de qBittorrent vers le conteneur Gluetun

La documentation actuelle de Gluetun indique que lorsqu’un autre conteneur partage sa pile réseau, les ports de l’application cible doivent être publiés sur Gluetun.

Par exemple, si qBittorrent écoute en interne sur le port 8080 :

services:
  gluetun:
    image: qmcgaw/gluetun
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    ports:
      - "8080:8080"

  qbittorrent:
    image: votre-image-qbittorrent
    network_mode: "service:gluetun"

Ne publiez pas le même port qBittorrent sur les deux conteneurs. Cela crée les conflits de ports décrits dans le fil source.

Guide de mappage des ports de Gluetun

La vidéo mentionnée dans le fil de discussion de la communauté

Un participant ultérieur a précisé qu’il avait suivi la vidéo de DB Tech sur CasaOS en essayant de faire passer qBittorrent par Gluetun. Comme cette vidéo fait partie du parcours de dépannage du fil source, elle est conservée ici.

La vidéo est antérieure au fil ZimaOS et utilise CasaOS ; servez-vous-en pour comprendre l’architecture Docker/Gluetun plutôt que de reproduire littéralement chaque étape de l’interface.

Un utilisateur ultérieur a confirmé qu’une pile Compose personnalisée fonctionnait

En novembre 2025, un autre membre de la communauté a indiqué que la solution fiable consistait à déployer qBittorrent et Gluetun ensemble dans une pile d’application personnalisée/Compose, puis à configurer le fournisseur VPN à cet endroit. Il a signalé qu’en accédant à qBittorrent via le port hôte choisi, le trafic passait alors par le VPN.

Le fil source contient un lien vers un Gist créé par un utilisateur pour cette configuration. Considérez les fichiers Compose tiers comme des exemples : vérifiez les variables d’environnement, les versions des images, les secrets et les paramètres réseau avant de les déployer.

Gluetun fournit un coupe-circuit VPN

La documentation actuelle de Gluetun décrit son pare-feu comme un coupe-circuit réseau : lorsque le chemin VPN est indisponible, le pare-feu bloque le trafic qui ne devrait pas passer par l’interface normale. C’est l’une des raisons pour lesquelles il est préférable de partager la pile réseau de Gluetun plutôt que de simplement démarrer un conteneur VPN à côté de qBittorrent.

Ne désactivez pas les règles du pare-feu Gluetun simplement pour rendre un port accessible. Corrigez plutôt les routes prévues vers le réseau local et l’extérieur.

Autorisez délibérément l’accès au réseau local

Si l’application routée doit accéder aux sous-réseaux locaux, Gluetun prend en charge FIREWALL_OUTBOUND_SUBNETS. Par exemple :

FIREWALL_OUTBOUND_SUBNETS=192.168.1.0/24

Utilisez le sous-réseau réel de votre réseau local et évitez tout chevauchement avec la plage du tunnel VPN.

La redirection de ports du fournisseur VPN diffère de la correspondance des ports Docker

La documentation de Gluetun fait la distinction entre :

  • Publication de ports Docker : rendre l’interface Web de qBittorrent accessible sur votre réseau local.
  • Redirection de ports du fournisseur VPN : obtention d’un port entrant auprès d’un fournisseur VPN qui prend cette fonctionnalité en charge.

N’activez pas VPN_PORT_FORWARDING uniquement pour corriger l’accès local à l’interface Web de qBittorrent. Ils résolvent des problèmes différents.

Liste de vérification Gluetun pour ZimaOS

  1. Configurez Gluetun pour votre fournisseur VPN réel en vous appuyant sur la documentation actuelle de ce fournisseur.
  2. Vérifiez que les journaux de Gluetun affichent l’adresse IP de sortie VPN attendue.
  3. Placez l’application cible dans l’espace de noms réseau de Gluetun.
  4. Utilisez service:gluetun pour la même pile Compose ou container:gluetun pour un conteneur externe.
  5. Supprimez les ports publiés en double de l’application routée.
  6. Publiez les ports d’interface Web et d’écoute requis sur Gluetun.
  7. Redémarrez la pile.
  8. Testez indépendamment l’adresse IP publique de l’application cible, sans vous fier au journal de Gluetun.
  9. Conservez les identifiants VPN et les clés privées WireGuard hors des fichiers Compose publics.

FAQ du client VPN ZimaOS

ZimaOS peut-il faire passer uniquement qBittorrent par un VPN ?

Oui. Le fil de discussion de la communauté utilisait précisément Gluetun pour partager sa pile réseau VPN avec certaines applications Docker, au lieu de faire transiter tous les services ZimaOS par le tunnel.

Pourquoi Gluetun affichait-il l’adresse IP du VPN alors que qBittorrent affichait toujours celle du FAI ?

Parce que le conteneur VPN peut être sain alors que qBittorrent est toujours connecté à son réseau normal. Vérifiez le mode réseau réel de qBittorrent.

Pourquoi le changement des ports interrompt-il l’interface Web de qBittorrent ?

Lorsque qBittorrent partage l’espace de noms réseau de Gluetun, publiez le port de l’interface Web sur Gluetun plutôt que de publier le même port sur qBittorrent.

Dois-je utiliser service:gluetun ou container:gluetun ?

Utilisez service:gluetun lorsque les deux services se trouvent dans le même projet Compose. Utilisez container:gluetun lorsqu’un conteneur externe rejoint un conteneur Gluetun nommé.