Redirection de ports – Guide WireGuard
Redirection de ports
Toutes les configurations WireGuard créées avec le générateur de configuration prennent en charge la redirection de ports. Vous pouvez l'utiliser de deux façons :
- Manuel : sur la page WireGuard, ouvrez le menu ⋮ à côté de votre configuration et choisissez Redirection de ports. Nous attribuons un port public qui redirige vers le port de votre choix sur votre appareil.
- Automatique (NAT-PMP) : des applications comme gluetun et qBittorrent demandent elles-mêmes un port pendant la connexion. Rien à configurer sur le site.
Fonctionnement de la redirection de ports automatique
- Nous attribuons le port public (entre 30000 et 65000). Il n'est pas possible de demander un port public précis.
- Chaque redirection transfère le trafic TCP et UDP sur le même port public.
- Votre application renouvelle la redirection régulièrement. Si elle cesse de la renouveler (par exemple si vous vous déconnectez), la redirection est supprimée automatiquement après environ une heure.
- Le port attribué reste généralement le même tant que votre application le renouvelle, mais il peut changer après un redémarrage du conteneur ou une reconnexion.
- Les redirections automatiques apparaissent sur la page WireGuard avec l'étiquette auto et sont comptées dans les 10 redirections de ports de votre compte.
gluetun
- 1. Créez une configuration sur la page WireGuard et téléchargez le fichier .conf.
- 2. Trouvez l'adresse IP du serveur : prenez le nom d'hôte figurant sur la ligne Endpoint de votre .conf (par exemple ca1-1.btguard.com) et résolvez-le :
nslookup ca1-1.btguard.com
gluetun exige une adresse IP dans VPN_ENDPOINT_IP ; il n'accepte pas les noms d'hôte. - 3. Utilisez ce service docker-compose en le complétant avec les valeurs de votre fichier .conf :
services:
gluetun:
image: qmcgaw/gluetun:latest
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
environment:
- VPN_SERVICE_PROVIDER=custom
- VPN_TYPE=wireguard
- VPN_PORT_FORWARDING=on
- VPN_PORT_FORWARDING_PROVIDER=protonvpn
# values from your BTGuard .conf file:
- WIREGUARD_PRIVATE_KEY= # PrivateKey under [Interface]
- WIREGUARD_ADDRESSES= # Address under [Interface]
- VPN_DNS_ADDRESS= # DNS under [Interface]
- WIREGUARD_PUBLIC_KEY= # PublicKey under [Peer]
- VPN_ENDPOINT_IP= # IP of the Endpoint host (step 2)
- VPN_ENDPOINT_PORT=444 # number after the : in Endpoint
- 4. Pourquoi « protonvpn » ? gluetun nomme son code de redirection de ports NAT-PMP d'après ProtonVPN ; BTGuard utilise le même protocole standard, ce paramètre fonctionne donc tel quel.
- 5. Démarrez le conteneur. Le journal de gluetun affiche le port attribué, qui est aussi écrit dans /tmp/gluetun/forwarded_port à l'intérieur du conteneur. Configurez l'application derrière gluetun pour qu'elle écoute sur ce port, ou utilisez la configuration gluetun + qBittorrent ci-dessous pour transmettre le port automatiquement.
gluetun + qBittorrent (recommandé)
qBittorrent ne lit pas de lui-même le fichier de port de gluetun. Utilisez la commande up de gluetun (VPN_PORT_FORWARDING_UP_COMMAND) pour transmettre le port attribué à qBittorrent chaque fois que NAT-PMP crée ou renouvelle la redirection, y compris après un redémarrage, quand le port peut changer.
- 1. Exécutez qBittorrent dans l'espace de noms réseau de gluetun (
network_mode: service:gluetun). - 2. Dans qBittorrent, sous Options → Interface web, activez Ignorer l'authentification pour les clients sur l'hôte local afin que gluetun puisse accéder à l'API sans identifiants.
- 3. Ajoutez à gluetun les commandes up/down ci-dessous. Modifiez
8080si l'interface web de qBittorrent écoute sur un autre port.
services:
gluetun:
image: qmcgaw/gluetun:latest
cap_add:
- NET_ADMIN
devices:
- /dev/net/tun:/dev/net/tun
ports:
- 8080:8080/tcp # qBittorrent Web UI (optional, for your browser)
environment:
- VPN_SERVICE_PROVIDER=custom
- VPN_TYPE=wireguard
- VPN_PORT_FORWARDING=on
- VPN_PORT_FORWARDING_PROVIDER=protonvpn
- VPN_PORT_FORWARDING_UP_COMMAND=/bin/sh -c 'wget -O- -nv --retry-connrefused --post-data "json={\"listen_port\":{{PORT}},\"current_network_interface\":\"{{VPN_INTERFACE}}\",\"random_port\":false,\"upnp\":false}" http://127.0.0.1:8080/api/v2/app/setPreferences'
- VPN_PORT_FORWARDING_DOWN_COMMAND=/bin/sh -c 'wget -O- -nv --retry-connrefused --post-data "json={\"listen_port\":0,\"current_network_interface\":\"lo\"}" http://127.0.0.1:8080/api/v2/app/setPreferences'
# values from your BTGuard .conf file:
- WIREGUARD_PRIVATE_KEY=
- WIREGUARD_ADDRESSES=
- VPN_DNS_ADDRESS=
- WIREGUARD_PUBLIC_KEY=
- VPN_ENDPOINT_IP=
- VPN_ENDPOINT_PORT=444
qbittorrent:
image: lscr.io/linuxserver/qbittorrent:latest
network_mode: service:gluetun
depends_on:
- gluetun
environment:
- PUID=1000
- PGID=1000
- WEBUI_PORT=8080
volumes:
- ./qbittorrent/config:/config
- ./downloads:/downloads
- 4. La commande up s'exécute chaque fois que gluetun obtient un port redirigé. Elle définit le port d'écoute de qBittorrent sur
{{PORT}}, le lie à l'interface VPN et désactive le port aléatoire et l'UPnP pour que qBittorrent ne remplace pas le port attribué. - 5. La commande down efface le port d'écoute quand la redirection s'arrête (cela aide qBittorrent à se rétablir proprement après une déconnexion).
- 6. Repérez le port attribué dans le journal de gluetun et vérifiez que qBittorrent affiche le même port sous Options → Connexion. La redirection apparaît aussi sur la page WireGuard avec l'étiquette auto.
qBittorrent (exécuté directement sur votre appareil)
Si WireGuard s'exécute sur votre machine sans gluetun, qBittorrent peut demander lui-même un port :
- 1. Connectez-vous avec votre configuration WireGuard BTGuard.
- 2. Dans Options → Avancé, réglez Interface réseau sur votre interface WireGuard pour que tout le trafic passe par le VPN.
- 3. Dans Options → Connexion, activez Utiliser la redirection de port UPnP / NAT-PMP de mon routeur. qBittorrent demande un port automatiquement ; le port attribué apparaît dans son journal et sur la page WireGuard.