Skip to content

NordVPN Setup Guide for qBittorrent Protection

What This Does

Your qBittorrent container now routes ALL traffic through NordVPN. This means:

  • Your real IP is hidden - Torrents show NordVPN's IP, not your server's
  • Kill switch enabled - If VPN disconnects, qBittorrent loses internet (no leaks)
  • DNS leak protection - All DNS queries go through NordVPN
  • Port forwarding - Enabled for better torrent speeds
  • ISP can't see torrent traffic - Everything is encrypted

Step 1: Get Your NordVPN Credentials

You need your service credentials (NOT your account login):

  1. Visit: https://my.nordaccount.com/dashboard/nordvpn/manual-configuration/
  2. Login with your NordVPN account
  3. You'll see:
  4. Service Credentials (Username): Usually looks like randomletters123
  5. Service Credentials (Password): Usually a long random string

IMPORTANT: These are different from your NordVPN account email/password!

Step 2: Add Credentials to Server

SSH to your server:

ssh ubuntu@144.217.76.53

Edit the .env file:

nano ~/docker/.env

Add these lines at the end:

# NordVPN Credentials
NORDVPN_USER=your_service_username_here
NORDVPN_PASSWORD=your_service_password_here
NORDVPN_COUNTRY=United States

Country Options: You can change to any NordVPN server location: - United States (default - good speeds from Canada) - Netherlands (privacy-friendly) - Switzerland (privacy-friendly) - Canada (closest to your server) - See full list: https://github.com/qdm12/gluetun-wiki/blob/main/setup/providers/nordvpn.md

Press Ctrl+X, then Y, then Enter to save.

Step 3: Deploy VPN-Protected qBittorrent

Copy updated docker-compose to server (run this on your Mac):

scp ~/kimsufi-plex-stack/docker/docker-compose.yml ubuntu@144.217.76.53:~/docker/

SSH to server and restart services:

ssh ubuntu@144.217.76.53
cd ~/docker
sudo docker compose down qbittorrent
sudo docker compose up -d gluetun

Wait 10 seconds for VPN to connect, then:

sudo docker compose up -d qbittorrent

Step 4: Verify VPN is Working

Check Gluetun logs:

sudo docker logs gluetun | tail -20

You should see:

[INFO] Connected to NordVPN
[INFO] Public IP address: XXX.XXX.XXX.XXX (not your server's IP!)

Access qBittorrent at http://100.88.231.43:8080

Go to Tools > Options > Advanced > Network Interface: - Set to: tun0

This forces qBittorrent to only use the VPN tunnel.

Step 5: Test for IP Leaks

  1. Download this torrent in qBittorrent:
  2. http://ipmagnet.services.cbg.systemed.net/

  3. Wait 30 seconds

  4. Visit: http://ipmagnet.services.cbg.systemed.net/

  5. You should see:

  6. IP shown: NordVPN's IP (NOT 144.217.76.53!)
  7. Location: The country you chose in .env

If you see your real server IP, the VPN is not working correctly.

How It Works

Internet Traffic Flow:

┌─────────────────┐
│  qBittorrent    │
└────────┬────────┘
         │ All traffic forced through:
┌─────────────────┐
│  Gluetun VPN    │ ◄── Your NordVPN credentials
└────────┬────────┘
         │ Encrypted tunnel to:
┌─────────────────┐
│  NordVPN Server │ (Shows this IP to torrents)
└────────┬────────┘
     Internet

Kill Switch: If NordVPN disconnects, Gluetun blocks ALL traffic - qBittorrent cannot connect to the internet until VPN reconnects.

Troubleshooting

VPN won't connect:

sudo docker logs gluetun

Common issues: - Wrong credentials (check service credentials, not account login) - NordVPN subscription expired - Too many devices connected (NordVPN has 6 device limit)

qBittorrent can't reach internet:

Check VPN status:

sudo docker exec gluetun sh -c "wget -qO- https://ipinfo.io/ip"

Should show NordVPN IP, not your server IP.

Slow speeds:

Change server country in .env to something closer:

NORDVPN_COUNTRY=Canada

Then restart:

cd ~/docker
sudo docker compose restart gluetun qbittorrent

Important Notes

  • Only qBittorrent uses the VPN - Plex, Radarr, Sonarr, etc. use normal connection
  • Usenet (SABnzbd) doesn't need VPN - Usenet is already encrypted
  • Web UI access still works through Tailscale (100.88.231.43:8080)
  • VPN costs: Using your existing NordVPN subscription, no extra cost!

Monitor VPN Status

Check if VPN is connected:

sudo docker exec gluetun sh -c "wget -qO- https://ipinfo.io/ip && echo"

View connection logs:

sudo docker logs gluetun -f

Press Ctrl+C to exit logs.


You're now fully protected! All torrent traffic is encrypted and hidden through NordVPN.