Integrate the qBittorrent BitTorrent client with the Private Internet Access (PIA) virtual private network service.
- Automatically set the qBittorrent listening port to the PIA forwarded port any time it changes.
- This makes NAT traversal work and allows you to connect to as many peers as possible, likely speeding up your transfers.
- UPnP does not integrate with PIA, only your router.
- The VPN forwarded port can change at any time, so manually copying and pasting it from PIA into the qBittorrent settings would be annoying and unreliable.
- Automatically fix the random
Failed to listen on IP. IP: "1.2.3.4". Port: "TCP/12345". Reason: "The requested address is not valid in its context"qBittorrent errors.- This error occurs intermittently and blocks all transfers until you restart qBittorrent or change the listening port.
- Windows
- .NET Framework 4.8 runtime or later (installed by default in Windows 10 v1903, Server 2022, and later)
- qBittorrent
- Private Internet Access desktop client
- Download
PortForwardingService.zipfrom the latest release. - Extract the ZIP file to a directory such as
C:\Program Files\PortForwardingService\.- If you are upgrading an existing installation, don't overwrite
NLog.configif you have previously modified it, or else your changes will be lost.
- If you are upgrading an existing installation, don't overwrite
- In an elevated PowerShell terminal, run
replacing the installation directory if you chose a different one in step 2.
New-Service -Name "PortForwardingService" -BinaryPathName "C:\Program Files\PortForwardingService\PortFowardingService.exe" -DisplayName "Port Forwarding Service" -Description "Automatically update the qBittorrent listening port to be the Private Internet Access forwarded port whenever it changes."
- Run
services.msc. - Select
Port Fowarding Service. - Go to Properties › Log On, choose
This account, and type in your Windows username and password.- This allows the service to edit the
qBittorrent.iniconfiguration file in your user profile directory, which is used to set the listening port when qBittorrent is not running.
- This allows the service to edit the
- Start the service.
- Enable VPN port forwarding.
- In the Private Internet Access desktop client, connect to a VPN server that allows port forwarding (does not have an ⇍ icon in the server list).
- Enable Settings › Network › Request Port Forwarding.
- Ensure PIA shows a forwarded port number under VPN IP, such as
↩ 12345. If it doesn't, try reconnecting or choosing a different server.
- Open qBittorrent › Tools › Options.
- Disable Connection › Use UPnP / NAT-PMP port forwarding from my router.
- Set Advanced › qBittorrent Section › Network Interface to the active PIA virtual network interface.
- If you have enabled the WireGuard VPN protocol in PIA instead of OpenVPN, this interface will be named something like
wgpia0. - If you're not sure which interface PIA is providing, open
ncpa.cpland rename the active connection that uses the Private Internet Access Network Adapter to a recognizable name like "PIA".
- If you have enabled the WireGuard VPN protocol in PIA instead of OpenVPN, this interface will be named something like
- Enable Web UI › Web User Interface.
- Set Web UI › Port to 8080.
- Enable Web UI › Bypass authentication for clients on localhost.
- Disable Web UI › Use UPnP / NAT-PMP to forward the port from my router.
- Disable Web UI › Use HTTPS instead of HTTP.
- Ensure the PIA forwarded port appears in qBittorrent › Connection › Listening Port. If it doesn't, try restarting Port Forwarding Service.
By default, log messages are written to the text file %LOCALAPPDATA%\PortForwardingService\logs\PortForwardingService.log.
You can customize the log format, filename, level, and other options by editing NLog.config in the installation directory.
If you want this program to execute custom logic when the PIA forwarded port changes, such as sending you a notification, you can write a plugin. These plugins take the form of .NET DLLs in the plugins subdirectory of the PortForwardingService installation directory.