Projet open source
passteque/gluetun avatar
passteque/gluetun

Gluetun, placer des conteneurs derrière un VPN

Client VPN dans un conteneur Docker léger pour plusieurs fournisseurs VPN, écrit en Go et utilisant OpenVPN ou Wireguard, DNS sur TLS, avec quelques serveurs proxy intégrés.

15 499 étoiles618 forksGoMIT

En bref

De quoi s’agit-il ?
Gluetun, placer des conteneurs derrière un VPN. Fonctionnement, périmètre documenté et vérifications concrètes.
À qui s’adresse-t-il ?
Gluetun, placer des conteneurs derrière un VPN convient aux équipes dont le besoin correspond à OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys. Il convient moins à celles qui attendent une garantie absente du README.
Puis-je l’utiliser commercialement ?
Oui. MIT est une licence permissive : vous pouvez utiliser, modifier et vendre un logiciel qui en dépend, à condition de conserver les mentions de droit d’auteur et de licence.
Est-il encore maintenu ?
Oui. Les derniers commits datent d’il y a 2 jours.
En quel langage est-il écrit ?
Principalement Go, d’après les statistiques de langage de GitHub.

Ces réponses reposent sur les données GitHub du projet (dernière synchronisation le 14 septembre 2026) et sur notre analyse. Elles ne constituent pas un avis juridique.

ANALYSE OPEN SOURCE APPROFONDIE

Le problème concret traité par le dépôt : OpenVPN

Angle 1 de Gluetun, placer des conteneurs derrière un VPN, consacré à OpenVPN. Le README commence par décrire Gluetun comme un client VPN léger, de type couteau suisse, qui tourne dans un conteneur Docker fin et se connecte à plusieurs fournisseurs de services VPN. Les métadonnées du dépôt indiquent le langage Go, avec 15 081 étoiles, 605 forks et 329 problèmes ouverts, et le dépôt n'est pas archivé. Le README contient un avertissement selon lequel ce dépôt et le gluetun-wiki sont les seuls sites officiels de Gluetun, et que les autres sites se présentant comme officiels sont des arnaques. Il annonce également que le dépôt migrera vers github.com/passteque/gluetun le 2026-05-21, sous une organisation contrôlée uniquement par le mainteneur, et que les noms des images Docker resteront les mêmes. La raison invoquée est un transfert de GitHub Sponsors vers l'Open Source Collective pour des formalités administratives personnelles.

Le README liste 23 fournisseurs : AirVPN, Cybe

Dans la section 1, Gluetun, placer des conteneurs derrière un VPN se lit à partir de passteque/gluetun. Le README décrit OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys; il ne permet pas d attribuer au dépôt une fonction qui n y figure pas. Le point intéressant ici est la relation entre l entrée, le composant appelé et le résultat observable. Cette précision compte lorsque le logiciel dépend d un service externe, d une image Docker, d une permission Android, d une extension PostgreSQL ou d une version particulière de Node, Go, PHP ou Julia.

Pour le contrôle 1, lancez docker compose avec NET_ADMIN et /dev/net/tun. Notez le fichier touché, la sortie obtenue et l erreur éventuelle. Avec passteque/gluetun, le contrôle utile porte sur OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys, pas sur une promesse générale d automatisation. Comparez le comportement aux exemples du README et conservez la configuration qui l a produit. La licence MIT doit être examinée selon le mode de redistribution envisagé.

Les composants qui portent la promesse : WireGuard

Angle 2 de Gluetun, placer des conteneurs derrière un VPN, consacré à WireGuard. rghost, ExpressVPN, FastestVPN, Giganews, HideMyAss, IPVanish, IVPN, Mullvad (Wireguard uniquement), NordVPN, Perfect Privacy, Privado, Private Internet Access, PrivateVPN, ProtonVPN, PureVPN, SlickVPN, Surfshark, TorGuard, VPNSecure.me, VPNUnlimited, Vyprvpn et Windscribe. OpenVPN est pris en charge pour tous les fournisseurs de cette liste. Wireguard est pris en charge à la fois en espace noyau et en espace utilisateur pour un sous-ensemble : AirVPN, FastestVPN, Ivpn, Mullvad, NordVPN, Perfect Privacy, ProtonVPN, Surfshark et Windscribe. Pour Cyberghost, Private Internet Access, PrivateVPN, PureVPN, Torguard, VPN Unlimited et VyprVPN, Wireguard est disponible via le fournisseur personnalisé, qui accepte également des configurations Wireguard personnalisées. AmneziaWG n'est pris en charge que via le fournisseur personnalisé pour l'instant, et le README indique que la prise en charge d'autres fo

Dans la section 2, Gluetun, placer des conteneurs derrière un VPN se lit à partir de passteque/gluetun. Le README décrit OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys; il ne permet pas d attribuer au dépôt une fonction qui n y figure pas. Le point intéressant ici est la relation entre l entrée, le composant appelé et le résultat observable. Cette précision compte lorsque le logiciel dépend d un service externe, d une image Docker, d une permission Android, d une extension PostgreSQL ou d une version particulière de Node, Go, PHP ou Julia.

Pour le contrôle 2, lancez docker compose avec NET_ADMIN et /dev/net/tun. Notez le fichier touché, la sortie obtenue et l erreur éventuelle. Avec passteque/gluetun, le contrôle utile porte sur OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys, pas sur une promesse générale d automatisation. Comparez le comportement aux exemples du README et conservez la configuration qui l a produit. La licence MIT doit être examinée selon le mode de redistribution envisagé.

L installation et le premier résultat : DNS over TLS

Angle 3 de Gluetun, placer des conteneurs derrière un VPN, consacré à DNS over TLS. urnisseurs Wireguard est en cours, en référence au problème #134.

Gluetun intègre DNS over TLS et permet à l'utilisateur de choisir les fournisseurs de DNS over TLS. Il bloque au niveau DNS les noms d'hôtes et adresses IP malveillants ou publicitaires, avec une mise à jour en direct toutes les 24 heures. En sélectionnant plusieurs fournisseurs DNS over TLS, le DNS split horizon devient possible. Le conteneur inclut un kill switch de pare-feu qui autorise uniquement le trafic vers les serveurs VPN nécessaires et les appareils LAN. Trois serveurs proxy sont intégrés : un serveur proxy Shadowsocks, décrit comme un protocole SOCKS5 avec une couche de chiffrement qui tunnelise TCP et UDP ; un serveur proxy SOCKS5 qui tunnelise TCP et UDP ; et un proxy HTTP qui tunnelise HTTP et HTTPS via TCP. Le README remercie @angelakis et @adjscent pour une partie du travail sur le proxy SOCKS5. Il liste aussi la

Dans la section 3, Gluetun, placer des conteneurs derrière un VPN se lit à partir de passteque/gluetun. Le README décrit OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys; il ne permet pas d attribuer au dépôt une fonction qui n y figure pas. Le point intéressant ici est la relation entre l entrée, le composant appelé et le résultat observable. Cette précision compte lorsque le logiciel dépend d un service externe, d une image Docker, d une permission Android, d une extension PostgreSQL ou d une version particulière de Node, Go, PHP ou Julia.

Pour le contrôle 3, lancez docker compose avec NET_ADMIN et /dev/net/tun. Notez le fichier touché, la sortie obtenue et l erreur éventuelle. Avec passteque/gluetun, le contrôle utile porte sur OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys, pas sur une promesse générale d automatisation. Comparez le comportement aux exemples du README et conservez la configuration qui l a produit. La licence MIT doit être examinée selon le mode de redistribution envisagé.

Les limites visibles dans les fichiers : le coupe-circuit et les proxys

Angle 4 de Gluetun, placer des conteneurs derrière un VPN, consacré à le coupe-circuit et les proxys. redirection de port côté serveur VPN pour Perfect Privacy, Private Internet Access, PrivateVPN et ProtonVPN.

L'image est basée sur Alpine 3.23 et fait 43,1 Mo, ce que le README qualifie de petit. Elle prend en charge amd64, i686 (32 bits), ARM 64 bits, ARM 32 bits v6 et v7, ainsi que ppc64le. Le README indique également que Gluetun peut fonctionner comme conteneur sidecar Kubernetes, avec des remerciements à @rorph. La section de configuration renvoie au wiki pour les instructions spécifiques à chaque fournisseur et inclut un exemple de docker-compose.yml. L'exemple utilise l'image qmcgaw/gluetun, exige la capacité NET_ADMIN et le périphérique /dev/net/tun, mappe le port 8888 pour le proxy HTTP et 8388 pour Shadowsocks en TCP et UDP, monte un volume dans /gluetun et définit des variables d'environnement telles que VPN_SERVICE_PROVIDER, VPN_TYPE, OPENVPN_USER, OPENVPN_PASSWORD, WIREGUARD_PRIVAT

Dans la section 4, Gluetun, placer des conteneurs derrière un VPN se lit à partir de passteque/gluetun. Le README décrit OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys; il ne permet pas d attribuer au dépôt une fonction qui n y figure pas. Le point intéressant ici est la relation entre l entrée, le composant appelé et le résultat observable. Cette précision compte lorsque le logiciel dépend d un service externe, d une image Docker, d une permission Android, d une extension PostgreSQL ou d une version particulière de Node, Go, PHP ou Julia.

Pour le contrôle 4, lancez docker compose avec NET_ADMIN et /dev/net/tun. Notez le fichier touché, la sortie obtenue et l erreur éventuelle. Avec passteque/gluetun, le contrôle utile porte sur OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys, pas sur une promesse générale d automatisation. Comparez le comportement aux exemples du README et conservez la configuration qui l a produit. La licence MIT doit être examinée selon le mode de redistribution envisagé.

Le contrôle adapté à ce projet : OpenVPN

Angle 5 de Gluetun, placer des conteneurs derrière un VPN, consacré à OpenVPN. E_KEY, WIREGUARD_ADDRESSES, TZ et UPDATER_PERIOD. L'image est également disponible sous ghcr.io/qdm12/gluetun.

Le README ne contient pas d'instructions de configuration complètes ; il dirige les utilisateurs vers le gluetun-wiki pour des conseils par fournisseur. Le wiki se trouve sur github.com/qdm12/gluetun-wiki, et le README renvoie à ses pages d'erreurs courantes et de FAQ, ainsi qu'aux pages sur la connexion d'autres conteneurs, la connexion d'appareils LAN, la mise à jour de la liste des serveurs VPN et l'ajout d'un fournisseur. Le docker-compose.yml du README est décrit comme étant pour les plus paresseux. Ses commentaires indiquent que la ligne container_name doit être décommentée pour permettre aux conteneurs externes de se connecter. Le bloc d'environnement contient à la fois des variables OpenVPN et Wireguard, avec un commentaire renvoyant à la page de configuration du wiki. Le READM

Dans la section 5, Gluetun, placer des conteneurs derrière un VPN se lit à partir de passteque/gluetun. Le README décrit OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys; il ne permet pas d attribuer au dépôt une fonction qui n y figure pas. Le point intéressant ici est la relation entre l entrée, le composant appelé et le résultat observable. Cette précision compte lorsque le logiciel dépend d un service externe, d une image Docker, d une permission Android, d une extension PostgreSQL ou d une version particulière de Node, Go, PHP ou Julia.

Pour le contrôle 5, lancez docker compose avec NET_ADMIN et /dev/net/tun. Notez le fichier touché, la sortie obtenue et l erreur éventuelle. Avec passteque/gluetun, le contrôle utile porte sur OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys, pas sur une promesse générale d automatisation. Comparez le comportement aux exemples du README et conservez la configuration qui l a produit. La licence MIT doit être examinée selon le mode de redistribution envisagé.

À qui l outil peut réellement convenir : WireGuard

Angle 6 de Gluetun, placer des conteneurs derrière un VPN, consacré à WireGuard. E inclut également un lien vers une discussion sur la correction du modèle Unraid et un tracker de problèmes pour les suggestions.

Gluetun est publié sous licence MIT, copyright (c) 2018 Quentin McGaw. La licence accorde la permission d'utiliser, copier, modifier, fusionner, publier, distribuer, sous-licencier et vendre des copies du logiciel, à condition que l'avis de droit d'auteur et l'avis de permission soient inclus dans toutes les copies ou portions substantielles. Elle précise également que le logiciel est fourni tel quel, sans garantie d'aucune sorte, et que les auteurs ou titulaires du droit d'auteur ne sont pas responsables des réclamations ou dommages découlant de son utilisation. Le README ne décrit pas les garanties de sécurité, le modèle de support ni la fréquence des versions ; ces éléments devraient être vérifiés dans le wiki, l'historique des versions ou le tracker de problèmes.

Dans la section 6, Gluetun, placer des conteneurs derrière un VPN se lit à partir de passteque/gluetun. Le README décrit OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys; il ne permet pas d attribuer au dépôt une fonction qui n y figure pas. Le point intéressant ici est la relation entre l entrée, le composant appelé et le résultat observable. Cette précision compte lorsque le logiciel dépend d un service externe, d une image Docker, d une permission Android, d une extension PostgreSQL ou d une version particulière de Node, Go, PHP ou Julia.

Pour le contrôle 6, lancez docker compose avec NET_ADMIN et /dev/net/tun. Notez le fichier touché, la sortie obtenue et l erreur éventuelle. Avec passteque/gluetun, le contrôle utile porte sur OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys, pas sur une promesse générale d automatisation. Comparez le comportement aux exemples du README et conservez la configuration qui l a produit. La licence MIT doit être examinée selon le mode de redistribution envisagé.

Conclusion éditoriale

Gluetun, placer des conteneurs derrière un VPN convient aux équipes dont le besoin correspond à OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys. Il convient moins à celles qui attendent une garantie absente du README. Commencez par docker compose avec NET_ADMIN et /dev/net/tun, contrôlez OpenVPN, WireGuard, DNS over TLS, le coupe-circuit et les proxys, puis décidez à partir du résultat observé dans passteque/gluetun.

Sources officielles

  1. Official documentation
  2. Official README
  3. Project repository
  4. Release notes
Notes de la communauté

Notes de la communauté