qBittorrent met VPN op je Synology NAS (Docker, Gluetun en PIA)

Kort antwoord

Maak in Container Manager een project met twee containers. Gluetun maakt de VPN-verbinding met PIA, en qBittorrent gebruikt het netwerk van Gluetun via network_mode service:gluetun. Al het torrentverkeer gaat dan verplicht door de VPN, de webinterface open je op poort 8090 van je NAS, en Gluetun zet de doorgestuurde PIA-poort automatisch in qBittorrent.

Wil je dat je NAS zelfstandig downloadt, zonder dat je pc aan hoeft te staan, en wil je dat al dat verkeer via een VPN loopt? Dan is qBittorrent in Docker, gekoppeld aan een VPN-container, de nette oplossing. In deze handleiding zetten we het op een Synology NAS met Container Manager. We hebben elke stap zelf uitgevoerd op een DS224+ en de screenshots komen van die installatie.

Wat je aan het einde hebt:

  • qBittorrent draait op je NAS en is te bedienen via je browser, vanaf elke pc of telefoon in je thuisnetwerk.
  • Al het torrentverkeer gaat verplicht door de VPN. Valt de VPN weg, dan heeft qBittorrent geen internet meer. Er lekt dus niets via je eigen IP-adres.
  • Met port forwarding van PIA ben je bereikbaar voor andere peers, wat flink scheelt in snelheid.

Eerst even dit. Downloaden uit illegale bron is in Nederland verboden, ook met een VPN. Een VPN beschermt je privacy, maar maakt iets wat niet mag niet legaal. Gebruik deze opzet voor legale downloads, zoals Linux-distributies, open-source software, public-domainfilms en je eigen bestanden.

In het kort: qBittorrent met VPN op een Synology

  1. Maak in File Station de mappen voor de instellingen en de downloads aan.
  2. Maak in Container Manager een project met de docker-compose.yml uit deze handleiding.
  3. Controleer in het logboek van Gluetun of de VPN verbonden is en welke poort PIA heeft doorgestuurd.
  4. Log in op de webinterface van qBittorrent met het tijdelijke wachtwoord en stel een eigen wachtwoord in.
  5. Zet "Bypass authentication for clients on localhost" aan, zodat Gluetun de poort kan doorzetten.
  6. Zet qBittorrent vast op de VPN-interface tun0 en herstart het project.
  7. Test met de torrentcheck van ipleak.net of qBittorrent het VPN-adres gebruikt.

Hoe het werkt

qBittorrent achter gluetun: geen netwerk zonder VPN qBittorrent heeft geen eigen netwerk maar gebruikt via network_mode service:gluetun alleen het netwerk van de gluetun-container. gluetun maakt de WireGuard-verbinding met de PIA-server, die verbonden is met de zwerm. Valt gluetun weg, dan heeft qBittorrent geen netwerk en kan er niets lekken. qBittorrentnetwork_mode: service:gluetun enige netwerk gluetunVPN-container met PIA WireGuard PIA-servermet doorgestuurde poort Zwermziet het IP van PIA Valt gluetun weg, dan heeft qBittorrentgeen netwerk meer. Er kan niets lekken.
qBittorrent achter gluetun: geen netwerk zonder VPN

We gebruiken twee containers:

  1. Gluetun is de VPN-client. Hij maakt de verbinding met je VPN-dienst en heeft een eigen firewall die al het verkeer blokkeert dat niet door de tunnel gaat.
  2. qBittorrent heeft geen eigen netwerk, maar gebruikt dat van Gluetun (network_mode: service:gluetun). Ook de webinterface loopt via Gluetun.

Dit is betrouwbaarder dan een VPN-app met een kill-switch-vinkje: qBittorrent kan simpelweg niet buiten de tunnel om. Draai je Docker niet op een Synology maar op een Linux-server of Raspberry Pi? Dan werkt dezelfde opzet via de opdrachtregel, zie qBittorrent met VPN in Docker. Gluetun ondersteunt tientallen VPN-diensten. Wij gebruiken Private Internet Access, omdat PIA port forwarding aanbiedt en Gluetun die poort automatisch kan doorgeven aan qBittorrent.

Wat heb je nodig?

  • Een Synology NAS met een Intel- of AMD-processor (plus-modellen zoals de DS224+, DS423+ en DS923+) en het pakket Container Manager (Pakketcentrum).
  • Een VPN-abonnement. Voor PIA heb je je gebruikersnaam (p1234567) en wachtwoord nodig. Dat is je PIA-login, geen aparte VPN-sleutel.
  • Het IP-bereik van je thuisnetwerk, bijvoorbeeld 192.168.1.0/24. Je vindt het IP-adres van je NAS onder Configuratiescherm > Netwerk > Netwerkinterface. Vervang het laatste getal door 0/24.

Stap 1: mappen aanmaken

Open File Station en maak de volgende mappen aan:

  • docker/qbittorrent-vpn met daarin twee submappen: gluetun en qbittorrent. Hier komen de instellingen.
  • Een map voor je downloads, bijvoorbeeld media/downloads.

File Station met de map qbittorrent-vpn en de submappen gluetun en qbittorrent

Stap 2: project aanmaken in Container Manager

Open Container Manager, ga naar Project en klik op Maken.

  • Naam van project: qbittorrent-vpn
  • Pad: kies de map docker/qbittorrent-vpn uit stap 1
  • Bron: docker-compose.yml aanmaken

Plak de configuratie hieronder in het tekstvak:

services:
  gluetun:
    image: qmcgaw/gluetun:latest
    container_name: gluetun
    cap_add:
      - NET_ADMIN
    devices:
      - /dev/net/tun:/dev/net/tun
    environment:
      - VPN_SERVICE_PROVIDER=private internet access
      - VPN_TYPE=openvpn
      - OPENVPN_USER=JOUW_PIA_GEBRUIKERSNAAM
      - OPENVPN_PASSWORD=JOUW_PIA_WACHTWOORD
      - SERVER_REGIONS=Netherlands
      - VPN_PORT_FORWARDING=on
      - VPN_PORT_FORWARDING_UP_COMMAND=/bin/sh -c 'wget -O- --retry-connrefused --post-data "json={\"listen_port\":{{PORTS}}}" http://127.0.0.1:8090/api/v2/app/setPreferences 2>&1'
      - FIREWALL_OUTBOUND_SUBNETS=192.168.1.0/24
      - TZ=Europe/Amsterdam
    ports:
      - 8090:8090
    volumes:
      - ./gluetun:/gluetun
    restart: unless-stopped

  qbittorrent:
    image: lscr.io/linuxserver/qbittorrent:latest
    container_name: qbittorrent
    network_mode: service:gluetun
    depends_on:
      gluetun:
        condition: service_healthy
    environment:
      - PUID=1026
      - PGID=100
      - TZ=Europe/Amsterdam
      - WEBUI_PORT=8090
    volumes:
      - ./qbittorrent:/config
      - /volume1/media/downloads:/downloads
    restart: unless-stopped

Pas deze regels aan voor je eigen situatie:

Regel Wat vul je in?
OPENVPN_USER en OPENVPN_PASSWORD Je PIA-gebruikersnaam en -wachtwoord
SERVER_REGIONS Een PIA-regio met port forwarding, zoals Netherlands, DE Frankfurt of Switzerland. De VS-regio's ondersteunen het niet.
FIREWALL_OUTBOUND_SUBNETS Het IP-bereik van je thuisnetwerk. Zonder deze regel kun je de webinterface niet openen.
PUID en PGID 1026 en 100 passen bij de eerste gebruiker op de meeste Synology's. Krijg je later schrijffouten, kijk dan via SSH met id jouwgebruiker wat jouw waarden zijn.
/volume1/media/downloads De downloadmap uit stap 1

We gebruiken poort 8090 voor de webinterface, omdat 8080 op een Synology vaak al door een ander pakket wordt gebruikt.

De docker-compose.yml in Container Manager

Klik op Volgende. De optie voor Web Station kun je overslaan. Controleer de samenvatting, laat Start het project zodra het is aangemaakt aangevinkt en klik op Voltooid.

Samenvatting van het nieuwe project

Container Manager downloadt nu beide images en start de containers. Dat duurt een minuut of twee. Eerst start Gluetun, en pas als de VPN-verbinding staat ("Healthy") start qBittorrent. Je bent klaar als er Exit Code: 0 staat.

Het project is gestart: gluetun is Healthy, daarna start qbittorrent

Beide containers draaien in het project

Stap 3: controleren of de VPN werkt

Ga naar Container, open gluetun en klik op het tabblad Logboek. Zoek naar deze regels:

  • Public IP address is ... met een land dat bij je PIA-regio past. Dat is het IP-adres waarmee je NAS nu het internet op gaat.
  • port forwarded is 29061 (jouw getal is anders). Dat is de poort die PIA voor je heeft opengezet.

Bij de eerste start zie je waarschijnlijk ook 403 Forbidden bij up command. Dat klopt: Gluetun probeert de poort in qBittorrent te zetten, maar qBittorrent laat dat nog niet toe. Dat lossen we op in stap 5.

Stap 4: inloggen op de webinterface

Nieuwere versies van qBittorrent maken bij de eerste start een tijdelijk wachtwoord aan. Open de container qbittorrent en kijk in het Logboek naar de regel A temporary password is provided for this session.

Het tijdelijke wachtwoord staat in het logboek van de qbittorrent-container

Ga in je browser naar http://IP-VAN-JE-NAS:8090 en log in met gebruikersnaam admin en dat tijdelijke wachtwoord.

Inlogscherm van de qBittorrent WebUI

Stel daarna meteen je eigen wachtwoord in via Tools > Options > WebUI > Authentication en klik onderaan op Save. Het tijdelijke wachtwoord verandert namelijk bij elke herstart.

Stap 5: port forwarding automatisch laten doorzetten

Ga in hetzelfde scherm (Options > WebUI) naar Bypass authentication for clients on localhost en vink het aan. Gluetun draait in hetzelfde netwerk als qBittorrent, dus zo mag Gluetun de doorgestuurde poort instellen zonder wachtwoord. Voor apparaten in je thuisnetwerk blijft het wachtwoord gewoon nodig.

Bypass authentication for clients on localhost aanzetten

Klik op Save.

Stap 6: qBittorrent vastzetten op de VPN (extra zekerheid)

Ga naar Options > Advanced en zet Network interface op tun0. Dat is de VPN-tunnel van Gluetun. De firewall van Gluetun houdt al het verkeer buiten de tunnel al tegen, maar zo heb je twee sloten op de deur.

Network interface op tun0 in de geavanceerde instellingen

Klik op Save. Start daarna het project één keer opnieuw: Container Manager > Project > qbittorrent-vpn > Actie > Opnieuw starten. In het logboek van Gluetun zie je nu HTTP request sent, awaiting response... 200: de poort staat in qBittorrent.

Gluetun zet de doorgestuurde poort in qBittorrent, met antwoord 200

Je kunt het ook in qBittorrent controleren onder Options > Connection: de luisterpoort is daar gelijk aan de poort uit het logboek van Gluetun.

Stap 7: testen op IP-lekken

Nu het belangrijkste: welk IP-adres zien andere torrentgebruikers? Dat test je met de gratis torrentcheck van ipleak.net.

  1. Ga op een pc naar ipleak.net en klik bij Torrent Address detection op Activate.
  2. Kopieer de magnetlink (rechtsklik op this Magnet Link > Link kopiëren).
  3. Klik in qBittorrent op het kettingicoon (Add torrent links), plak de link en klik op Download.

De magnetlink van ipleak.net toevoegen in qBittorrent

Na een halve minuut verschijnt op ipleak.net het IP-adres dat qBittorrent naar buiten laat zien, plus de poort.

ipleak.net ziet het PIA-adres en de doorgestuurde poort

Dit moet het VPN-adres zijn, met de doorgestuurde poort erachter. Je eigen IP-adres zie je bovenaan dezelfde pagina, omdat je browser niet via de VPN gaat. Die twee horen dus verschillend te zijn. In qBittorrent zie je hetzelfde adres onder het tabblad Trackers bij Detected IP.

In qBittorrent toont de tracker hetzelfde VPN-adres

Kijk ten slotte naar de statusbalk onderaan qBittorrent. Een groene wereldbol betekent dat je verbonden bent én van buitenaf bereikbaar via de doorgestuurde poort. Bij DHT staat een aantal nodes.

Statusbalk: groene wereldbol en DHT-nodes

Verwijder de testtorrent daarna weer. Klaar: je NAS downloadt nu volledig via de VPN.

Problemen oplossen

De webinterface opent niet. Controleer FIREWALL_OUTBOUND_SUBNETS. Dit moet het bereik van je thuisnetwerk zijn (bijvoorbeeld 192.168.1.0/24), niet het IP-adres van je NAS. Kijk ook of Gluetun op Gezond staat. Zolang de VPN niet verbonden is, start qBittorrent niet.

Gluetun blijft herstarten of geeft AUTH_FAILED. Je PIA-gebruikersnaam of -wachtwoord klopt niet. Let op: de gebruikersnaam begint met een kleine p. Pas het aan via Project > qbittorrent-vpn > YAML-configuraties, en daarna Actie > Opnieuw starten.

Oranje vlammetje in plaats van een groene wereldbol, of DHT blijft op 0 nodes. Na het opnieuw starten van het hele project kan het gebeuren dat qBittorrent net iets eerder klaar is dan de VPN-verbinding. Herstart dan alleen de container qbittorrent (Container > qbittorrent > Actie > Opnieuw starten), of zet onder Options > BitTorrent DHT even uit en weer aan. Binnen een minuut verschijnen er nodes.

403 Forbidden in het logboek van Gluetun. Bypass authentication for clients on localhost staat nog uit (stap 5).

Schrijffouten of downloads die blijven hangen op 0%. De PUID/PGID past niet bij de eigenaar van je downloadmap. Log in via SSH en voer id jouwgebruikersnaam uit, vul die getallen in en herstart het project.

Ik wil een andere VPN-dienst gebruiken. Gluetun ondersteunt onder meer NordVPN, Surfshark, ProtonVPN en Mullvad. Je past dan VPN_SERVICE_PROVIDER en de inloggegevens aan. Automatische port forwarding werkt alleen bij diensten die het aanbieden, zoals PIA en ProtonVPN.

Veelgestelde vragen

Is downloaden via een VPN legaal?

Een VPN gebruiken is legaal in Nederland. Downloaden uit illegale bron is dat niet, met of zonder VPN. Gebruik deze opzet voor legale content, zie ook legaal torrenten.

Waarom niet gewoon de PIA-app op je pc?

Dan moet je pc altijd aan staan. Een NAS verbruikt veel minder stroom, draait 24/7, en door de Docker-opzet kan qBittorrent nooit buiten de VPN om.

Waarom is port forwarding belangrijk?

Zonder doorgestuurde poort kun je alleen zelf verbindingen opzetten, en niet met peers die ook achter een firewall zitten. Met port forwarding ben je voor iedereen bereikbaar, met meer peers en hogere snelheden als gevolg. Meer uitleg: port forwarding met PIA.

Merk ik iets van de VPN in de snelheid?

Iets, afhankelijk van de server. Kies een regio dichtbij, zoals Netherlands of DE Frankfurt. Op onze statuspagina testen we dagelijks de snelheid van verschillende PIA-servers.

Werkt dit ook op een NAS met een ARM-processor?

Gluetun en de qBittorrent-image van LinuxServer bestaan ook voor ARM64. Op oudere Synology-modellen met een ARM-chip is Container Manager echter niet beschikbaar.

Laatste nieuws: downloaden

Meer nieuws ›

Redactie duken.nl

Techredactie en community van duken.nl

De handleidingen op duken.nl worden geschreven en bijgewerkt door de redactie, met input en ervaringen van de community op de forums.

Zo testen wij

Nog geen PIA? Met port forwarding haal je in qBittorrent de hoogste snelheden.

Vandaag 06:20 getest: Netflix (NL) werkt via een PIA-server in Nederland.

Bekijk de PIA-deal