Repository navigation
Managed WireGuard FR
S'applique à Hydranos 4.4.
Pour qui veut mettre chaque moteur dans un VPN sans monter les tunnels soi-même. Vous téléversez le .conf WireGuard que vous donne votre fournisseur, vous en affectez un à chaque moteur, et Hydranos monte le tunnel au démarrage, y épingle le moteur, demande un port entrant au fournisseur et résout les noms des trackers à travers lui. L'hôte garde sa propre route par défaut. Les autres sorties (Direct, Gluetun, SOCKS5), le kill switch et les requêtes du démon lui-même sont sur VPN & sortie réseau.
-
Un tunnel par moteur, nommé
wg-<engine>(wg-race,wg-hoard, …). Deux moteurs peuvent utiliser deux fournisseurs, ou deux serveurs d'un même fournisseur. Un nom d'interface Linux fait au plus 15 caractères : un identifiant de moteur de 12 caractères au plus donnewg-<id>; un identifiant plus long n'est pas refusé, son périphérique est raccourci enwg-, les 7 premiers caractères de l'identifiant,-et 4 caractères hexadécimaux dérivés de l'identifiant entier (proton-europe-1→wg-proton--+ 4 hex), identiques à chaque démarrage. -
wg-quickn'est jamais lancé. Le.confest analysé, et Hydranos lanceipetwglui-même. UnAllowedIPs = 0.0.0.0/0dans le fichier d'un fournisseur ne devient donc jamais la route par défaut de l'hôte : les routes vont dans une table de routage propre au tunnel.Table,PreUp,PostUpet les autres clés dewg-quickne sont pas appliquées. -
Le moteur est épinglé au périphérique (
bind_interface = wg-<engine>, posé par Hydranos en mémoire à chaque démarrage et jamais écrit dans le fichier, si bien qu'un moteur supplémentaire du même rôle n'en hérite pas) : écoute, uTP, connexions sortantes, annonces, DHT, LSD et webseeds passent tous par le tunnel. Un tunnel tombé signifie aucun réseau pour ce moteur, jamais la route par défaut. - Le port entrant est demandé à la passerelle du tunnel par NAT-PMP (Proton VPN, ou tout fournisseur dont la passerelle répond au NAT-PMP), ou saisi à la main pour les fournisseurs qui l'attribuent sur leur site web.
-
Les noms des trackers sont résolus par le serveur
DNS =du.conf, à travers le tunnel.
| Nécessaire | Pourquoi | Refus quand il manque |
|---|---|---|
| Linux | Épinglage au périphérique (SO_BINDTODEVICE) et routage par règles (policy routing) |
« Le WireGuard géré nécessite Linux. Sur ce système, montez le tunnel vous-même et choisissez son interface en mode Direct. » (Managed WireGuard needs Linux. On this system, bring the tunnel up yourself and pick its interface in Direct mode.) |
CAP_NET_ADMIN dans l'ensemble effectif du processus |
ip link add, ip rule, wg setconf
|
« Le WireGuard géré nécessite la capacité NET_ADMIN, et Hydranos ne l'a pas. Sous Docker, ajoutez cap_add: [NET_ADMIN] (docker run --cap-add=NET_ADMIN) ; avec PUID/PGID, définissez aussi HYDRANOS_CAP_NET_ADMIN=1. » (Managed WireGuard needs the NET_ADMIN capability, and Hydranos does not have it. In Docker, add cap_add: [NET_ADMIN] (docker run --cap-add=NET_ADMIN); with PUID/PGID, also set HYDRANOS_CAP_NET_ADMIN=1.) |
ip (iproute2) et wg (wireguard-tools) dans le PATH
|
Les commandes que lance Hydranos | « Le WireGuard géré nécessite les commandes ip (iproute2) et wg (wireguard-tools), et l'une d'elles n'est pas installée. » (Managed WireGuard needs the ip (iproute2) and wg (wireguard-tools) commands, and one of them is not installed.) |
La vérification est faite au chargement de l'onglet Réseau, à l'affectation des tunnels et au démarrage. Là où elle échoue, la carte WireGuard, managed by Hydranos est grisée avec la phrase affichée dessus et ne peut pas être choisie, POST /api/network/mode avec "mode": "wireguard" et une affectation de tunnel répondent tous deux 409 avec la phrase (en anglais), et GET /api/network/mode porte wireguard: {"supported": false, "reason": …}.
L'image embarque iproute2 et wireguard-tools. Le conteneur a besoin de la capacité, et du sysctl si vous voulez de l'IPv6 dans le tunnel :
services:
hydranos:
image: ghcr.io/kheopsian/hydranos:v4.4.1
cap_add:
- NET_ADMIN
sysctls:
net.ipv6.conf.default.disable_ipv6: 0
environment:
PUID: "1000"
PGID: "1000"
HYDRANOS_CAP_NET_ADMIN: "1" # seulement avec PUID/PGID-
cap_add: NET_ADMIN(docker run --cap-add=NET_ADMIN) accorde la capacité au conteneur. Ledocker-compose.ymllivré a ces lignes en commentaire. -
HYDRANOS_CAP_NET_ADMIN=1ne compte qu'avecPUID/PGID: l'entrypoint garde alorsCAP_NET_ADMINcomme capacité ambiante à travers l'abandon des privilèges, si bien queipetwgen héritent. Si le conteneur n'a pas reçu la capacité, l'entrypoint ditCAP_NET_ADMIN not available, add --cap-add=NET_ADMIN for managed WireGuard and fwmark routinget démarre sans elle. En root (sansPUID/PGID),cap_addseul suffit. - Le sysctl garde l'IPv6 sur le nouveau périphérique. Sans lui, Docker crée les interfaces avec l'IPv6 désactivé et le tunnel ne transporte que l'IPv4 (voir IPv6 plus bas).
-
Le réseau bridge (par défaut) est l'endroit recommandé : les tunnels vivent dans l'espace de noms réseau propre au conteneur. Sous
--network host, ils sont créés sur l'hôte (voir Sous --network host). - Les ports de pairs publiés sur l'hôte (16171, 16172) ne servent pas à un moteur dans un tunnel : ses pairs arrivent par le tunnel.
Le service a besoin de CAP_NET_ADMIN et des deux commandes installées. L'unité livrée tourne en User=hydranos sans capacités, donc le mode y est refusé tant que vous n'en accordez pas une (par exemple AmbientCapabilities=CAP_NET_ADMIN dans un drop-in ; non testé par le mainteneur). Voir Linux (bare metal).
Dans Config › Paramètres avancés (default.toml) (Advanced settings (default.toml)) › Réseau (Network) :
- Choisissez la carte WireGuard, managed by Hydranos. Le bloc WireGuard apparaît.
- Sous Configuration files, Add a file : choisissez le
.confde votre fournisseur et cliquez sur Envoi (Upload). La réponse est « Enregistré. Choisissez-le pour un engine ci-dessous, puis enregistrez les tunnels. » (Stored. Pick it for an engine below, then save the tunnels.). Recommencez pour chaque fichier (un par moteur). - Pour chaque moteur (blocs intitulés
local-<engine>) :-
Sortie (Way out) : un fichier
.conf, Direct (interface par défaut) (Direct (default interface)) (la route de l'hôte, en connaissance de cause), ou Non affecté (bloqué par le kill switch) (Not assigned (blocked by the kill switch)). - Provider : le fournisseur d'où vient le fichier. Sa note dit comment le port entrant est obtenu.
- Port given by the provider : affiché seulement pour les fournisseurs qui attribuent le port sur leur site web (AirVPN, Private Internet Access, Windscribe).
-
Sortie (Way out) : un fichier
- Cliquez sur Save the tunnels. Affecter au moins un tunnel écrit
[network] mode = "wireguard"et retire les clés des autres modes, comme le fait l'enregistrement d'un mode. - Redémarrez (Appliquer et redémarrer (Apply and restart) dans le bandeau). Les tunnels montent au démarrage, avant le démarrage des moteurs.
Règles vérifiées à l'enregistrement (400 avec la raison) : le fichier doit exister et s'analyser, un fournisseur doit être choisi, et un fichier par moteur (deux moteurs sur un même fichier partageraient une adresse et un port). Avertissements, enregistrés quand même : un fournisseur à port manuel sans port saisi, un fournisseur sans redirection de port (« This engine takes no incoming connection »), et un moteur laissé Non affecté (bloqué par le kill switch) (« The kill switch keeps this engine off the network until it is given one »).
La section Ports masque ensuite le port d'écoute des moteurs dont le port vient du tunnel : un fournisseur NAT-PMP (sauf si wireguard_port_forward dit manual ou off), ou un tunnel que ce processus a tenté de monter et qui porte un port (port saisi à la main compris, même si le tunnel a échoué). Ce port est affiché sur la ligne du tunnel.
[network]
mode = "wireguard"
[race]
wireguard_enabled = true
wireguard_config = "proton-nl-12.conf" # un nom de fichier dans <data_dir>/wireguard
wireguard_provider = "proton"
wireguard_port = 0 # le port du fournisseur, pour les fournisseurs manuels
wireguard_port_forward = "" # vide : ce que fait le fournisseur
[hoard]
allow_direct = true # « Direct (interface par défaut) »
wireguard_config = ""
wireguard_provider = "proton"
wireguard_port = 0
wireguard_port_forward = ""- Un moteur Non affecté (bloqué par le kill switch) n'a ni
wireguard_enabledniallow_direct. -
wireguard_port_forwardremplace la méthode du fournisseur :manual,natpmp, ouoff/none. L'onglet Réseau l'écrit toujours vide ; ne le définissez à la main que pour forcer autre chose. - Un moteur supplémentaire n'hérite pas du tunnel de son rôle : affectez-lui le sien.
- Un fichier enregistré du temps où le bloc WireGuard avait une case à cocher par moteur (
wireguard_enabled = falsepour un moteur laissé décoché) est lu, en mode WireGuard, comme Direct. - Enregistrer n'importe quel autre mode retire toutes les clés
wireguard_*, et démonte aussitôt les tunnels en service (tunnels_downdans la réponse) : les moteurs qui y sont épinglés ne joignent plus personne jusqu'au redémarrage que demande cet enregistrement.
- Stockés dans
<data_dir>/wireguard(/config/wireguardsous Docker), dossier en mode 0700, chaque fichier en 0600 dès son premier octet. - Nom : lettres, chiffres,
.,-et_, 96 caractères au plus, se terminant par.conf. 64 Kio au plus. - Analysé avant d'être stocké : il doit avoir une
PrivateKey, uneAddressdans[Interface]et au moins un[Peer]avec unePublicKey; sinon le téléversement est refusé avec la raison. -
Jamais renvoyé. L'API liste le nom, l'adresse, le point de terminaison (endpoint) et la clé publique du premier pair ; la clé privée reste sur le disque. La clé est passée à
wg setconfsur l'entrée standard, jamais sur une ligne de commande. - Supprimer (Remove) efface le fichier. Un moteur qui y est encore affecté ne monte pas au démarrage suivant tant qu'un autre fichier n'est pas choisi.
-
<data_dir>/wireguard/managed.listenregistre les périphériques créés par Hydranos, afin qu'un tunnel qui n'est plus voulu (moteur supprimé, mode changé pendant l'arrêt) soit démonté au démarrage suivant, sans toucher à un périphériquewg-…créé par l'hôte lui-même.
Au démarrage, avant qu'aucun moteur ne rejoigne le réseau :
sequenceDiagram
participant D as démarrage de Hydranos
participant K as noyau (ip, wg)
participant G as passerelle du tunnel
participant E as moteur
D->>K: démonter les périphériques de managed.list qui ne sont plus voulus
D->>D: vérifier Linux, NET_ADMIN, ip et wg, puis lire le .conf
D->>K: supprimer les anciennes règles et le périphérique wg-engine
D->>K: ip link add wg-engine type wireguard
D->>K: wg setconf (clés et pairs sur stdin)
D->>K: adresses, MTU (1420 si absent), lien activé
D->>K: routes AllowedIPs dans la table propre au tunnel
D->>K: ip rule oif wg-engine lookup cette table
D->>K: ip rule from adresse du tunnel lookup cette table
D->>D: serveurs DNS du .conf enregistrés pour wg-engine
D->>D: verdicts du kill switch, moteurs bloqués ignorés
D->>G: NAT-PMP map TCP et UDP (fournisseurs NAT-PMP, 2 essais)
G-->>D: port externe, ou pas encore de réponse
D->>E: démarrage, épinglé à wg-engine, annonces retenues jusqu'à un port
loop à chaque demi-bail (bail de 60 s), 15 s après un échec
D->>G: renouveler TCP et UDP sur le même port interne
G-->>D: port externe, annoncé aux trackers
end
-
Routage. Chaque tunnel reçoit la table
0x48590000plus son emplacement (slot : la position du moteur dans la liste des moteurs locaux :race0,hoard1, puis les moteurs supplémentaires locaux), une règleoifà la préférence5100plus l'emplacement, et une règlefromà6100plus l'emplacement. Les emplacements sont recalculés à chaque démarrage : retirez un moteur du milieu de la liste et les moteurs qui le suivent descendent d'un emplacement au démarrage suivant. Les règlesoifd'un tunnel sont retirées par nom de périphérique, et sa règlefromremplace ce qui occupait son nouvel emplacement ; une règlefromlaissée à un emplacement qu'aucun tunnel ne prend plus est le cas du bug connu ci-dessous. La règleoifattrape toute socket liée au périphérique. La règlefromrenvoie par le tunnel ce que le noyau émet de lui-même avec l'adresse du tunnel (TCP reset, réponses ICMP), qui sinon sortirait par la route par défaut. Rien d'autre ne change dansip routeniip rule. - Idempotent. Chaque démarrage retire d'abord ce qu'une exécution précédente a laissé sur ce périphérique.
-
Un échec (fichier invalide, commande refusée, capacité manquante) est journalisé sous la forme
wireguard: the tunnel did not come up; the engine stays pinned to it and reaches nobody (no direct fallback), le périphérique à moitié construit est retiré, et le moteur démarre épinglé à un périphérique qui n'existe pas. -
À l'arrêt, les tunnels sont démontés après l'écriture de l'état de reprise (
wireguard: tunnels taken down). - Avec
HYDRANOS_ENGINE_NET=0, aucun tunnel n'est monté.
Bug connu en 4.4 : démonter un tunnel (à l'arrêt, quand un autre mode est enregistré, après un démarrage raté, ou à un démarrage où ce moteur n'a plus de tunnel) retire ses règles
oifet son périphérique, pas sa règlefrom(préférence6100plus l'emplacement). Cette règle pointe vers une table laissée vide, elle ne change donc aucune route tant que cette table reste vide. Elle n'est remplacée que lorsqu'un tunnel remonte à cet emplacement avec une adresse de la même famille (et sans conflit d'adresse avec une autre interface) ; quand un tunnel monte à cet emplacement mais que la règle n'est pas remplacée à cause d'un conflit d'adresse, la table contient de nouveau des routes et l'ancienne règle envoie les paquets émis depuis l'ancienne adresse par ce tunnel. Sinon elle reste (sous--network host, dans la listeip rulede l'hôte) jusqu'à la disparition de l'espace de noms ou de l'hôte.
| Fournisseur (tel que listé) | Comment le port est obtenu |
|---|---|
| AirVPN | Manuel : créez le port dans l'espace client, saisissez-le dans Port given by the provider |
| Mullvad | Aucun : pas de connexions entrantes |
| Other (NAT-PMP capable) | NAT-PMP, passerelle = la première adresse IPv4 DNS = du fichier |
| Other / none | Aucun (saisissez un port à la main si le fournisseur en redirige un) |
| Private Internet Access | Manuel (l'API de port propre à PIA n'est pas automatisée) |
| Proton VPN | NAT-PMP, passerelle 10.2.0.1 (utilisez un serveur marqué P2P) |
| Windscribe | Manuel : le port de son panneau web |
-
NAT-PMP redirige TCP et UDP sur le même port. Le bail demandé est de 60 s, renouvelé à la moitié de la durée accordée (au moins toutes les 5 s), et retenté toutes les 15 s après un échec. Une redirection UDP refusée ne coûte que l'uTP et est journalisée (
UDP not forwarded, uTP peers cannot reach this engine: …). -
Le port est traduit, pas déplacé. Le moteur continue d'écouter sur son
listen_port; les trackers (et les pairs, dans la poignée de main d'extension) reçoivent le port externe accordé par la passerelle. Les renouvellements demandent toujours le même port interne, donc le port externe reste stable tant que la passerelle le permet. -
Les annonces sont retenues jusqu'à l'arrivée du premier port :
wireguard port forward: announces held until the gateway gives a port. Si aucun n'arrive au démarrage, le journal ditwireguard: no port yet; the engine starts with its announces held, et le moteur n'annonce rien tant qu'il n'en a pas. -
Port manuel :
wireguard_portdevient lelisten_portdu moteur (le fournisseur redirige le même numéro). Le port 0 signifie aucune connexion entrante. -
GET /api/port-forwardsignale un tel moteur avecforward.by = "wireguard". Le routeur de la maison n'est jamais sollicité pour le port d'un moteur dans un tunnel, et les routes de changement de port d'écoute à chaud répondent 409 pour un moteur qui suit le port de son tunnel.
Les adresses DNS = du .conf sont enregistrées pour le périphérique avant le démarrage du moteur. Les annonces HTTP, les annonces UDP, les webseeds et l'amorçage DHT du moteur y résolvent les noms : A et AAAA en UDP, depuis une socket épinglée au tunnel, 2 s par essai et 2 essais par serveur, réponses gardées en cache 5 à 60 s. Si le serveur du tunnel ne répond pas, la résolution échoue : elle ne se rabat jamais sur l'hôte.
Un .conf sans DNS = fonctionne quand même, mais les noms des trackers sont alors résolus par le résolveur de l'hôte : l'essaim ne voit que le tunnel, le fournisseur DNS de l'hôte voit à quels trackers parle le moteur. C'est journalisé (wireguard: the file has no DNS line …), affiché sous la forme noms des trackers résolus par le DNS de l'hôte (fuite des noms) (tracker names resolved by the host's DNS (name leak)) sur la ligne du tunnel, et listé comme une faille par le kill switch. Correctif : ajoutez une ligne DNS = avec le résolveur du fournisseur.
Les requêtes propres au démon utilisent aussi le DNS du tunnel quand [daemon] egress emprunte un tunnel (voir plus bas).
En mode WireGuard, le kill switch est armé par défaut, et seuls les trois choix de Sortie comptent :
| Sortie | Verdict |
|---|---|
un .conf
|
couvert : son tunnel (un tunnel tombé signifie aucun réseau) |
| Direct (interface par défaut) | direct en connaissance de cause |
| Non affecté (bloqué par le kill switch) | BLOQUÉ : ni écoute, ni connexion sortante, ni annonce, ni DHT, ni LSD |
Une interface saisie pour un moteur dans un autre mode n'est pas un tunnel ici. Avec [daemon] egress laissé sur auto, les requêtes propres au démon (listes, vérification de mise à jour, webhooks, URL de .torrent) passent par le tunnel de race, sinon par celui du premier moteur dans un tunnel ; sans tunnel à emprunter et avec le kill switch armé, elles sont refusées. hydranos-update trouve le même périphérique. Détails : VPN & sortie réseau.
Le bloc WireGuard affiche Live tunnels, une ligne par tunnel (local-<engine>, périphérique, fournisseur) :
| Affiché | Signification |
|---|---|
| carrying traffic | Dernière poignée de main il y a moins de 180 s |
| no recent handshake | Périphérique présent, pas de poignée de main depuis 180 s ou plus |
| coupé : cet engine ne joint personne (down: this engine reaches nobody) | Périphérique non créé, ou disparu |
port N / no incoming port
|
Le port redirigé, s'il y en a un |
handshake … ago, endpoint |
Tiré de wg show <device> latest-handshakes et endpoints
|
| IPv4 only | L'IPv6 a été abandonné (survolez pour la raison) |
DNS … par le tunnel (DNS … through the tunnel) / noms des trackers résolus par le DNS de l'hôte (fuite des noms)
|
Où les noms sont résolus |
| last attempt failed | La dernière mise en place ou demande de port a échoué (survolez pour l'erreur) |
| Route | Rôle |
|---|---|
GET /api/network/wireguard |
configs (sans clés), directory, engines (par moteur : assignment = tunnel/direct/none, config_file, provider, manual_port, port_forward, device), providers, supported, unsupported_reason, tunnels (null quand il n'y en a aucun ; chacun avec created, present, up, handshake_age_seconds, endpoint, forwarded_port, degraded, last_error, dns, dns_leak) |
POST /api/network/wireguard/configs |
Stocker un fichier : champ multipart file, ou corps brut avec ?name=provider.conf. Accepté même là où les tunnels ne peuvent pas être montés |
DELETE /api/network/wireguard/configs/:name |
Supprimer un fichier ; 404 s'il n'existe pas |
POST /api/network/wireguard/engines |
{"engines":[{"engine_id","assignment","config_file","provider","manual_port","port_forward"}]} ; répond restart_required, warnings, note. 409 avec la raison sur un hôte qui ne peut pas monter de tunnels |
Toutes exigent la clé API, comme le reste de l'API REST (API REST).
Un .conf double pile reçoit les deux familles. Si l'adresse ou la route IPv6 ne peut pas être ajoutée (Docker sans le sysctl ci-dessus), le tunnel continue en IPv4 seulement et dit pourquoi : IPv6 is disabled on new interfaces here; the tunnel carries IPv4 only. To keep both, start the container with --sysctl net.ipv6.conf.default.disable_ipv6=0 (or set that sysctl on the host under --network host).
Les tunnels sont alors créés dans l'espace de noms réseau de l'hôte, à côté des interfaces de l'hôte. Seuls les périphériques enregistrés dans managed.list sont démontés quand ils ne sont plus voulus, et les tables de routage qu'utilise Hydranos sont loin de celle de wg-quick par défaut (51820), donc un tunnel que l'hôte fait tourner lui-même n'est pas touché (ne nommez pas l'un des vôtres wg-<engine>). Si une autre interface détient déjà l'adresse du tunnel (un fournisseur qui donne la même adresse à tous ses clients, avec l'hôte qui fait tourner son propre tunnel), la règle from n'est pas posée, et le journal avertit : les réponses propres au noyau sur cette adresse peuvent sortir par la route par défaut. Faites tourner Hydranos dans son propre espace de noms réseau (un réseau bridge) pour fermer ce trou.
Le WireGuard géré est réservé à Linux. Sous Windows et macOS, la carte est grisée avec « Le WireGuard géré nécessite Linux. … » (Managed WireGuard needs Linux. …). Faites plutôt tourner le client VPN pour tout le système (voir Windows et macOS sur VPN & sortie réseau et Windows).
| Symptôme | Cause | Correctif |
|---|---|---|
| La carte est grisée | L'un des trois prérequis manque ; la carte le nomme | Ajoutez cap_add: NET_ADMIN (et HYDRANOS_CAP_NET_ADMIN=1 avec PUID/PGID), installez iproute2 et wireguard-tools, ou utilisez Linux |
| coupé : cet engine ne joint personne après un redémarrage | Le tunnel n'est pas monté : voyez wireguard: the tunnel did not come up … et son erreur dans le journal, ou last attempt failed
|
Corrigez la cause (fichier supprimé, capacité perdue), puis redémarrez. Le moteur ne se rabat jamais sur la route par défaut |
| no recent handshake | Le serveur du fournisseur ne répond pas : clés erronées ou révoquées, serveur arrêté, UDP vers l'endpoint bloqué | Téléchargez un .conf neuf, essayez un autre serveur |
Tunnel monté, no incoming port
|
Fournisseur sans redirection (Mullvad, Other / none), port manuel non saisi, ou pas de réponse NAT-PMP (Proton : un serveur non marqué P2P) | Choisissez un serveur P2P, ou saisissez le port du fournisseur |
| Les torrents n'annoncent jamais | Les annonces sont retenues jusqu'à ce que la passerelle donne un port | Comme ci-dessus ; ou définissez wireguard_port_forward = "off" pour ce moteur afin qu'il cesse d'attendre |
| Un moteur est BLOQUÉ | Sortie laissée sur Non affecté (bloqué par le kill switch) | Donnez-lui un fichier ou Direct (interface par défaut), enregistrez, redémarrez |
| noms des trackers résolus par le DNS de l'hôte (fuite des noms) | Le .conf n'a pas de ligne DNS =
|
Ajoutez le serveur DNS du fournisseur au fichier et téléversez-le de nouveau |
| IPv4 only | IPv6 désactivé sur les nouvelles interfaces (Docker) | Ajoutez le sysctl net.ipv6.conf.default.disable_ipv6: 0
|
| Les requêtes du démon sont refusées |
egress = auto, kill switch armé, et aucun moteur n'a de tunnel à prêter |
Affectez un tunnel à race, ou définissez [daemon] egress (voir VPN & sortie réseau) |
Plus de symptômes réseau : Dépannage.
Hydranos wiki — documents v4.4.1. · 🇬🇧 Home · 🇫🇷 Accueil · Changelog · Report an issue
Hydranos 4.4 · 🇬🇧
Start
Install
- Installation & First Run
- Docker
- Linux (bare metal)
- Windows
- Migrating from qBittorrent
- Upgrading from 3.x
Use
- Categories & Routing
- Adding Torrents & Existing Data
- RSS & Automatic Downloads
- Queue, Share & Speed Limits
- Engines: Race & Hoard
- Race Drain & Graduation
- Trackers & Announces
- Jobs, Bulk Actions & Moving Data
- Workflows
Integrate
Network & machines
- Deployment Topologies
- Networking: Ports & Port Forwarding
- VPN & Egress
- Managed WireGuard
- Nodes & Multiple Machines
Operate
- Operating Hydranos
- Monitoring & Logs
- Prometheus Metrics
- Security & Access
- Troubleshooting
- Known Limitations in 4.4
Reference
- Architecture
- Configuration overview
- Config: daemon, auth & global
- Config: engines & race drain
- Config: environment, CLI & signals
Hydranos 4.4 · 🇫🇷
Démarrer
Installer
- Installation & premier démarrage
- Docker
- Linux (bare metal)
- Windows
- Migrer depuis qBittorrent
- Mettre à jour depuis la 3.x
Utiliser
- Catégories & routage
- Ajouter des torrents & données existantes
- Flux RSS & téléchargements automatiques
- File, limites de partage & de débit
- Moteurs : race & hoard
- Drain race & graduation
- Trackers & annonces
- Jobs, actions groupées & déplacement
- Workflows
Intégrer
Réseau & machines
- Topologies de déploiement
- Réseau : ports & redirection
- VPN & sortie réseau
- WireGuard géré
- Nœuds & plusieurs machines
Exploiter
- Exploiter Hydranos
- Supervision & journaux
- Métriques Prometheus
- Sécurité & accès
- Dépannage
- Limites connues de la 4.4
Référence
- Architecture
- Configuration : vue d'ensemble
- Config : démon, auth & global
- Config : moteurs & drain race
- Config : environnement, CLI & signaux