-
Notifications
You must be signed in to change notification settings - Fork 0
Gluetun VPN FR
🇬🇧 English · 🇫🇷 Français
Faire tourner Hydra derrière un VPN avec gluetun est le setup supporté le plus casse-gueule, d'où sa propre page. Deux choses le rendent spécial :
- Le(s) port(s) forwardé(s) peu(ven)t tourner. Avec le port forwarding activé, gluetun donne à Hydra le port forwardé du provider ; chez certains il change à chaque reconnexion. Hydra rebind son listen port à chaud (sans restart — torrents et peers vivants restent up), mais il faut pousser le port courant.
- Un port inbound sert un moteur. race et hoard sont deux process qui ne peuvent pas partager un port TCP inbound. Donc le nombre de moteurs que tu peux seeder en inbound derrière un tunnel dépend de combien de ports ton provider forwarde.
Ça décide tout ton layout, et c'est une limite provider (combien de ports il laisse gluetun forwarder), pas une limite gluetun. gluetun fait du port forwarding pour ces providers — vérifie ton propre plan, mais à date :
| Provider | Ports forwardés par gluetun | Layout |
|---|---|---|
| AirVPN | jusqu'à 5 (réservés dans le panel AirVPN) | monolithe (race + hoard) sur un gluetun |
| Perfect Privacy | plusieurs (3 auto + jusqu'à 5 custom) | monolithe sur un gluetun |
| ProtonVPN | 1, random, tourne (NAT‑PMP)¹ | un moteur, ou front-only + un agent par gluetun |
| PIA | 1, dynamique | un moteur, ou split |
| PrivateVPN | 1 par serveur | un moteur, ou split |
¹ Le NAT‑PMP de ProtonVPN peut en mapper plus, mais gluetun n'expose qu'un seul port actuellement (le multi-port est une demande gluetun ouverte).
Règle du pouce : ≥ 2 ports forwardés → fais tourner un monolithe (race + hoard) derrière un gluetun. Un seul → fais tourner un moteur derrière, ou splitte en front-only + un agent par gluetun (plus bas).
-
VPN_PORT_FORWARDING=onl'active. -
VPN_PORT_FORWARDING_UP_COMMANDtourne quand le forwarding est en place (et à chaque renégociation). Placeholders :{{PORT}}= le premier port forwardé,{{PORTS}}= liste comma-séparée (ex.16171,16172). -
FIREWALL_VPN_INPUT_PORTS= ports autorisés en entrée dans le firewall de gluetun (mets-y tes ports forwardés pour que les peers t'atteignent). -
FIREWALL_OUTBOUND_SUBNETS= sous-réseaux LAN que Hydra a le droit d'atteindre en sortie. - Le port forwardé est aussi exposé sur le control server de gluetun et (avant
v4) le fichier
/tmp/gluetun/forwarded_port.
Hydra partage le netns de gluetun (network_mode: service:gluetun), donc son
UI/API (127.0.0.1:8199) et son egress vivent dans le tunnel. Pousse le port avec
l'API HTTP de Hydra : POST /api/{race,hoard}/listen-port {"port":N}.
Ces providers te donnent des ports forwardés fixes : tu les réserves dans le
panneau du provider et ils ne changent pas. Donc rien de dynamique à pousser
— pas d'UP_COMMAND. Il suffit de mettre le port d'écoute de chaque moteur en
dur dans default.toml (= tes ports réservés) et de les ouvrir en entrée sur le
firewall.
Disons que tu as réservé 16171 (race) et 16172 (hoard) dans le panneau AirVPN.
./config/default.toml :
[race]
listen_port = 16171
[hoard]
listen_port = 16172services:
gluetun:
image: qmcgaw/gluetun
cap_add: [NET_ADMIN]
ports:
- "8199:8199" # UI Hydra, via le conteneur tunnel
environment:
- VPN_SERVICE_PROVIDER=airvpn
- VPN_TYPE=wireguard
# Valeurs WireGuard depuis le Config Generator AirVPN (espace client) :
- WIREGUARD_PRIVATE_KEY=ta-cle-privee
- WIREGUARD_PRESHARED_KEY=ta-cle-preshared
- WIREGUARD_ADDRESSES=10.128.0.2/32
- SERVER_COUNTRIES=Netherlands # optionnel : choisir la sortie
- FIREWALL_VPN_INPUT_PORTS=16171,16172 # ouvrir tes ports réservés en entrée
- FIREWALL_OUTBOUND_SUBNETS=192.168.1.0/24 # joindre un qBit LAN, etc.
hydra:
image: ghcr.io/kheopsian/hydra:latest
network_mode: "service:gluetun"
depends_on: [gluetun]
volumes:
- ./config:/config
- /path/to/data:/dataLes deux moteurs ont du vrai inbound, les ports sont figés dans la config, et rien n'a besoin de tourner à la reconnexion. C'est le layout le plus simple quand ton provider te donne assez de ports.
Tu n'as qu'un port, donc tu ne peux pas donner de l'inbound aux deux moteurs derrière un seul tunnel. Deux options :
-
Un moteur derrière gluetun — même compose qu'en (A) mais pousse le seul
{{PORT}}àhoard(ourace) :VPN_PORT_FORWARDING_UP_COMMAND=/bin/sh -c 'wget -qO- --header="X-Api-Key: $${HYDRA_API_KEY}" --header="Content-Type: application/json" --post-data="{\"port\":{{PORT}}}" http://127.0.0.1:8199/api/hoard/listen-port' -
Inbound sur les deux — fais tourner un contrôleur
--front-onlyplus un moteur--agent-onlypar gluetun (chacun son port unique). Voir Topologies de déploiement. Un nœud--agent-onlyn'a pas d'API HTTP, donc pousse son port avec le CLI dans le conteneur agent (hydra set-listen-port /config/<moteur>.sock <port>), déclenché depuis le fichier forwarded-port / control-server de gluetun (un petit watcher) — leUP_COMMANDgluetun tourne dans le conteneur gluetun, où le binairehydran'est pas présent.
-
Le LAN est injoignable par défaut. Dans le tunnel,
localhostest le netns du VPN, pas ton hôte, et le LAN est firewallé. MetsFIREWALL_OUTBOUND_SUBNETS=192.168.x.0/24sur le service gluetun pour que Hydra joigne un service LAN (ex. un qBittorrent pour l'assistant d'import) ; utilise l'IP LAN, paslocalhost. -
Ouvre les ports forwardés en entrée avec
FIREWALL_VPN_INPUT_PORTS, sinon les peers ne peuvent pas t'atteindre. -
Le
listen_portdudefault.toml: sur les providers à port fixe (AirVPN, Perfect Privacy) c'est le VRAI port — mets-y ton port réservé. Ce n'est un placeholder (écrasé par l'up-command à chaque reconnexion) que sur les providers à port dynamique (Proton, PIA, PrivateVPN). -
Expose l'UI sur le service gluetun (
8199:8199), pas sur le service Hydra — Hydra n'a aucun port à lui sousnetwork_mode: service:gluetun.
Le
UP_COMMANDexact (wget vs curl, quoting) varie selon l'image gluetun et ton provider — traite les snippets ci-dessus comme un point de départ et vérifie-les contre un setup qui marche.
Voir aussi Modes réseau et Topologies de déploiement.
Hydra · 🇬🇧
Understand
Install & set up
- Installation & First Run
- Bare-metal Install
- Windows install
- Networking Modes
- Gluetun (VPN)
- Deployment Topologies
Use day-to-day
Reference
Hydra · 🇫🇷
Comprendre
Installer & mettre en place
- Installation & premier démarrage
- Installation bare-metal
- Installation Windows
- Modes réseau
- Gluetun (VPN)
- Topologies de déploiement
Utiliser au quotidien
Référence