Portweiterleitung – Anleitung für WireGuard
Portweiterleitung
Jede mit dem Konfigurationsgenerator erstellte WireGuard-Konfiguration unterstützt Portweiterleitung. Es gibt zwei Möglichkeiten, sie zu nutzen:
- Manuell: Öffnen Sie auf der WireGuard-Seite das Menü ⋮ neben Ihrer Konfiguration und wählen Sie Portweiterleitung. Wir weisen einen öffentlichen Port zu, der an den von Ihnen gewählten Port auf Ihrem Gerät weiterleitet.
- Automatisch (NAT-PMP): Apps wie gluetun und qBittorrent fordern während der Verbindung selbst einen Port an. Auf der Website ist nichts zu konfigurieren.
So funktioniert die automatische Portweiterleitung
- Wir weisen den öffentlichen Port zu (zwischen 30000 und 65000). Die Anforderung eines bestimmten öffentlichen Ports wird nicht unterstützt.
- Jede Zuordnung leitet TCP und UDP über denselben öffentlichen Port weiter.
- Ihre App erneuert die Zuordnung regelmäßig. Wird sie nicht mehr erneuert (zum Beispiel, weil Sie die Verbindung trennen), wird die Weiterleitung nach etwa einer Stunde automatisch entfernt.
- Der zugewiesene Port bleibt in der Regel gleich, solange Ihre App ihn erneuert, er kann sich aber ändern, wenn der Container neu gestartet oder die Verbindung neu aufgebaut wird.
- Automatische Weiterleitungen erscheinen auf der WireGuard-Seite mit dem Tag auto und zählen zu den 10 Portweiterleitungen Ihres Kontos.
gluetun
- 1. Erstellen Sie auf der WireGuard-Seite eine Konfiguration und laden Sie die .conf-Datei herunter.
- 2. Ermitteln Sie die IP-Adresse des Servers: Nehmen Sie den Hostnamen aus der Zeile Endpoint Ihrer .conf-Datei (zum Beispiel ca1-1.btguard.com) und lösen Sie ihn auf:
nslookup ca1-1.btguard.com
gluetun benötigt in VPN_ENDPOINT_IP eine IP-Adresse; Hostnamen werden nicht akzeptiert. - 3. Verwenden Sie diesen docker-compose-Dienst und tragen Sie die Werte aus Ihrer .conf-Datei ein:
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. Warum „protonvpn“? gluetun benennt seinen NAT-PMP-Code für die Portweiterleitung nach ProtonVPN; BTGuard verwendet dasselbe Standardprotokoll, daher funktioniert diese Einstellung unverändert.
- 5. Starten Sie den Container. Das gluetun-Log zeigt den zugewiesenen Port an, außerdem wird er im Container in /tmp/gluetun/forwarded_port gespeichert. Konfigurieren Sie die Anwendung hinter gluetun so, dass sie auf diesem Port lauscht, oder verwenden Sie die unten beschriebene Einrichtung mit gluetun + qBittorrent, um den Port automatisch zu übergeben.
gluetun + qBittorrent (empfohlen)
qBittorrent liest die Port-Datei von gluetun nicht selbstständig. Verwenden Sie den Up-Befehl von gluetun (VPN_PORT_FORWARDING_UP_COMMAND), um den zugewiesenen Port jedes Mal an qBittorrent zu übergeben, wenn NAT-PMP die Zuordnung setzt oder erneuert – auch nach einem Neustart, wenn sich der Port ändern kann.
- 1. Führen Sie qBittorrent im Netzwerk-Namespace von gluetun aus (
network_mode: service:gluetun). - 2. Aktivieren Sie in qBittorrent unter Optionen → Weboberfläche die Option Authentifizierung für Clients auf localhost umgehen, damit gluetun ohne Anmeldedaten auf die API zugreifen kann.
- 3. Fügen Sie gluetun die unten stehenden Up/Down-Befehle hinzu. Ändern Sie
8080, falls Ihre qBittorrent-Weboberfläche auf einem anderen Port lauscht.
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. Der Up-Befehl wird ausgeführt, sobald gluetun einen weitergeleiteten Port erhält. Er setzt den Listen-Port von qBittorrent auf
{{PORT}}, bindet ihn an die VPN-Schnittstelle und deaktiviert zufällige Ports / UPnP, damit qBittorrent die Zuweisung nicht überschreibt. - 5. Der Down-Befehl setzt den Listen-Port zurück, wenn die Weiterleitung endet (damit sich qBittorrent nach einer Verbindungstrennung sauber erholt).
- 6. Prüfen Sie im gluetun-Log den zugewiesenen Port und vergewissern Sie sich, dass qBittorrent unter Optionen → Verbindung denselben Port anzeigt. Die Weiterleitung erscheint außerdem auf der WireGuard-Seite mit dem Tag auto.
qBittorrent (direkt auf Ihrem Gerät)
Wenn WireGuard ohne gluetun direkt auf Ihrem Host läuft, kann qBittorrent selbst einen Port anfordern:
- 1. Stellen Sie die Verbindung mit Ihrer BTGuard-WireGuard-Konfiguration her.
- 2. Setzen Sie unter Optionen → Erweitert die Option Netzwerkschnittstelle auf Ihre WireGuard-Schnittstelle, damit der gesamte Datenverkehr über das VPN läuft.
- 3. Aktivieren Sie unter Optionen → Verbindung die Option UPnP / NAT-PMP Portweiterleitung des Routers verwenden. qBittorrent fordert automatisch einen Port an; der zugewiesene Port erscheint im Log und auf der WireGuard-Seite.