binhex / arch-qbittorrentvpn

Docker build script for Arch Linux base with qBittorrent, Privoxy and OpenVPN
GNU General Public License v3.0
443 stars 47 forks source link

[Solved] Application does not require port forwarding or VPN provider is != pia, skipping incoming port assignment #181

Closed jasonleexp closed 1 year ago

jasonleexp commented 1 year ago

Edit: See solution at the bottom


Hi, I'm having trouble port forwarding with AirVPN. I tried following the README exactly as shown with the AirVPN example, but I keep getting the log:

Application does not require port forwarding or VPN provider is != pia, skipping incoming port assignment

Any thoughts?

This is my docker run:

docker run -d \
    --cap-add=NET_ADMIN \
    -p 6881:6881 \
    -p 6881:6881/udp \
    -p 49450:49450 \
    -p 49451:8118 \
    --name=media_qbittorrentvpn \
    -v /volume1/docker/qbittorrentvpn/data:/data \
    -v /volume1/docker/qbittorrentvpn/config:/config \
    -v /etc/localtime:/etc/localtime:ro \
    -e VPN_ENABLED=yes \
    -e VPN_PROV=airvpn \
    -e VPN_CLIENT=openvpn \
    -e ENABLE_PRIVOXY=yes \
    -e LAN_NETWORK=10.0.0.0/24 \
    -e NAME_SERVERS=84.200.69.80,37.235.1.174,1.1.1.1,37.235.1.177,84.200.70.40,1.0.0.1 \
    -e DEBUG=false \
    -e WEBUI_PORT=49450 \
    -e UMASK=000 \
    -e PUID=1027 \
    -e PGID=65536 \
    binhex/arch-qbittorrentvpn

This is my /config/qbittorrent/config/qbittorrent.conf:

[AutoRun]
enabled=false
program=

[BitTorrent]
Session\Port=5539
Session\QueueingSystemEnabled=false

[Meta]
MigrationVersion=4

[Preferences]
Connection\PortRangeMin=6881
Connection\UPnP=false
General\Locale=en
General\UseRandomPort=false
WebUI\Address=*
WebUI\CSRFProtection=false
WebUI\LocalHostAuth=false
WebUI\Port=49450
WebUI\ServerDomains=*
WebUI\UseUPnP=false

[General]
port_random=no
port_range=44750-44750

Logs from config/supervisord.log:

2023-06-04 17:06:11.161378 [info] System information Linux 871a56544a8f 4.4.180+ #42962 SMP Sat Apr 8 00:14:24 CST 2023 x86_64 GNU/Linux
2023-06-04 17:06:11.203580 [info] OS_ARCH defined as 'x86-64'
2023-06-04 17:06:11.245379 [info] PUID defined as '1027'
2023-06-04 17:06:11.293283 [info] PGID defined as '65536'
2023-06-04 17:06:11.418590 [info] UMASK defined as '000'
2023-06-04 17:06:11.460187 [info] Permissions already set for '/config'
2023-06-04 17:06:11.503115 [info] Deleting files in /tmp (non recursive)...
2023-06-04 17:06:11.552742 [info] VPN_ENABLED defined as 'yes'
2023-06-04 17:06:11.596176 [info] VPN_CLIENT defined as 'openvpn'
2023-06-04 17:06:11.639034 [info] VPN_PROV defined as 'airvpn'
2023-06-04 17:06:11.684237 [info] OpenVPN config file (ovpn extension) is located at /config/openvpn/AirVPN_United-States_UDP-443-Entry3.ovpn
2023-06-04 17:06:11.757345 [info] VPN remote server(s) defined as 'us3.vpn.airdns.org,'
2023-06-04 17:06:11.794613 [info] VPN remote port(s) defined as '443,'
2023-06-04 17:06:11.832258 [info] VPN remote protcol(s) defined as 'udp,'
2023-06-04 17:06:11.874244 [info] VPN_DEVICE_TYPE defined as 'tun0'
2023-06-04 17:06:11.916146 [info] VPN_OPTIONS not defined (via -e VPN_OPTIONS)
2023-06-04 17:06:12.050646 [info] LAN_NETWORK defined as '10.0.0.0/24'
2023-06-04 17:06:12.092417 [info] NAME_SERVERS defined as '84.200.69.80,37.235.1.174,1.1.1.1,37.235.1.177,84.200.70.40,1.0.0.1'
2023-06-04 17:06:12.138289 [info] ENABLE_PRIVOXY defined as 'yes'
2023-06-04 17:06:12.185028 [info] VPN_INPUT_PORTS not defined (via -e VPN_INPUT_PORTS), skipping allow for custom incoming ports
2023-06-04 17:06:12.226790 [info] VPN_OUTPUT_PORTS not defined (via -e VPN_OUTPUT_PORTS), skipping allow for custom outgoing ports
2023-06-04 17:06:12.272224 [info] WEBUI_PORT defined as '49450'
2023-06-04 17:06:12.316519 [info] Starting Supervisor...
2023-06-04 17:06:12,604 INFO Included extra file "/etc/supervisor/conf.d/qbittorrent.conf" during parsing
2023-06-04 17:06:12,604 INFO Set uid to user 0 succeeded
2023-06-04 17:06:12,608 INFO supervisord started with pid 7
2023-06-04 17:06:13,610 INFO spawned: 'start-script' with pid 197
2023-06-04 17:06:13,612 INFO spawned: 'watchdog-script' with pid 198
2023-06-04 17:06:13,613 INFO reaped unknown pid 8 (exit status 0)
2023-06-04 17:06:13,620 DEBG 'start-script' stdout output:
[info] VPN is enabled, beginning configuration of VPN

2023-06-04 17:06:13,620 INFO success: start-script entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2023-06-04 17:06:13,620 INFO success: watchdog-script entered RUNNING state, process has stayed up for > than 0 seconds (startsecs)
2023-06-04 17:06:13,622 DEBG 'watchdog-script' stdout output:
[info] qBittorrent config file already exists, skipping copy
[info] Removing session lock file (if it exists)...

2023-06-04 17:06:13,680 DEBG 'start-script' stdout output:
[info] Adding 84.200.69.80 to /etc/resolv.conf

2023-06-04 17:06:13,684 DEBG 'start-script' stdout output:
[info] Adding 37.235.1.174 to /etc/resolv.conf

2023-06-04 17:06:13,688 DEBG 'start-script' stdout output:
[info] Adding 1.1.1.1 to /etc/resolv.conf

2023-06-04 17:06:13,692 DEBG 'start-script' stdout output:
[info] Adding 37.235.1.177 to /etc/resolv.conf

2023-06-04 17:06:13,696 DEBG 'start-script' stdout output:
[info] Adding 84.200.70.40 to /etc/resolv.conf

2023-06-04 17:06:13,700 DEBG 'start-script' stdout output:
[info] Adding 1.0.0.1 to /etc/resolv.conf

2023-06-04 17:06:13,728 DEBG 'start-script' stdout output:
[info] Default route for container is 172.17.0.1

2023-06-04 17:06:13,961 DEBG 'start-script' stdout output:
[info] Docker network defined as    172.17.0.0/16

2023-06-04 17:06:13,966 DEBG 'start-script' stdout output:
[info] Adding 10.0.0.0/24 as route via docker eth0

2023-06-04 17:06:13,967 DEBG 'start-script' stdout output:
[info] ip route defined as follows...
--------------------

2023-06-04 17:06:13,968 DEBG 'start-script' stdout output:
default via 172.17.0.1 dev eth0 
10.0.0.0/24 via 172.17.0.1 dev eth0 
172.17.0.0/16 dev eth0 proto kernel scope link src 172.17.0.2 
broadcast 127.0.0.0 dev lo table local proto kernel scope link src 127.0.0.1 
local 127.0.0.0/8 dev lo table local proto kernel scope host src 127.0.0.1 
local 127.0.0.1 dev lo table local proto kernel scope host src 127.0.0.1 

2023-06-04 17:06:13,968 DEBG 'start-script' stdout output:
broadcast 127.255.255.255 dev lo table local proto kernel scope link src 127.0.0.1 
broadcast 172.17.0.0 dev eth0 table local proto kernel scope link src 172.17.0.2 
local 172.17.0.2 dev eth0 table local proto kernel scope host src 172.17.0.2 
broadcast 172.17.255.255 dev eth0 table local proto kernel scope link src 172.17.0.2 
unreachable default dev lo proto kernel metric 4294967295 error 4294967195 pref medium
unreachable default dev lo proto kernel metric 4294967295 error 4294967195 pref medium

2023-06-04 17:06:13,969 DEBG 'start-script' stdout output:
--------------------

2023-06-04 17:06:13,975 DEBG 'start-script' stdout output:
iptable_mangle          1656  0
ip_tables              13914  3 iptable_filter,iptable_mangle,iptable_nat
x_tables               16976  19 ip6table_filter,xt_ipvs,xt_iprange,xt_mark,xt_recent,ip_tables,xt_tcpudp,ipt_MASQUERADE,xt_limit,xt_state,xt_conntrack,xt_LOG,xt_nat,xt_multiport,iptable_filter,xt_REDIRECT,iptable_mangle,ip6_tables,xt_addrtype

2023-06-04 17:06:13,975 DEBG 'start-script' stdout output:
[info] iptable_mangle support detected, adding fwmark for tables

2023-06-04 17:06:14,001 DEBG 'start-script' stdout output:
[info] iptables defined as follows...
--------------------

2023-06-04 17:06:14,002 DEBG 'start-script' stdout output:
-P INPUT DROP
-P FORWARD DROP
-P OUTPUT DROP
-A INPUT -s 199.249.230.34/32 -i eth0 -j ACCEPT
-A INPUT -s 172.17.0.0/16 -d 172.17.0.0/16 -j ACCEPT
-A INPUT -i eth0 -p tcp -m tcp --dport 49450 -j ACCEPT
-A INPUT -i eth0 -p udp -m udp --dport 49450 -j ACCEPT
-A INPUT -s 10.0.0.0/24 -d 172.17.0.0/16 -i eth0 -p tcp -m tcp --dport 8118 -j ACCEPT
-A INPUT -p icmp -m icmp --icmp-type 0 -j ACCEPT
-A INPUT -i lo -j ACCEPT
-A INPUT -i tun0 -j ACCEPT
-A OUTPUT -d 199.249.230.34/32 -o eth0 -j ACCEPT
-A OUTPUT -s 172.17.0.0/16 -d 172.17.0.0/16 -j ACCEPT
-A OUTPUT -o eth0 -p tcp -m tcp --sport 49450 -j ACCEPT
-A OUTPUT -o eth0 -p udp -m udp --sport 49450 -j ACCEPT
-A OUTPUT -s 172.17.0.0/16 -d 10.0.0.0/24 -o eth0 -p tcp -m tcp --sport 8118 -j ACCEPT
-A OUTPUT -p icmp -m icmp --icmp-type 8 -j ACCEPT
-A OUTPUT -o lo -j ACCEPT
-A OUTPUT -o tun0 -j ACCEPT

2023-06-04 17:06:14,003 DEBG 'start-script' stdout output:
--------------------

2023-06-04 17:06:14,003 DEBG 'start-script' stdout output:
[info] Starting OpenVPN (non daemonised)...

2023-06-04 17:06:14,014 DEBG 'start-script' stdout output:
2023-06-04 17:06:14 Note: --data-cipher-fallback with cipher 'AES-256-CBC' disables data channel offload.
2023-06-04 17:06:14 OpenVPN 2.6.4 [git:makepkg/b4f749f14a8edc75+] x86_64-pc-linux-gnu [SSL (OpenSSL)] [LZO] [LZ4] [EPOLL] [PKCS11] [MH/PKTINFO] [AEAD] [DCO] built on May 11 2023
2023-06-04 17:06:14 library versions: OpenSSL 3.0.8 7 Feb 2023, LZO 2.10
2023-06-04 17:06:14 DCO version: N/A

2023-06-04 17:06:14,014 DEBG 'start-script' stdout output:
2023-06-04 17:06:14 NOTE: the current --script-security setting may allow this configuration to call user-defined scripts

2023-06-04 17:06:14,018 DEBG 'start-script' stdout output:
2023-06-04 17:06:14 TCP/UDP: Preserving recently used remote address: [AF_INET]199.249.230.34:443
2023-06-04 17:06:14 Socket Buffers: R=[212992->425984] S=[212992->425984]
2023-06-04 17:06:14 UDPv4 link local: (not bound)
2023-06-04 17:06:14 UDPv4 link remote: [AF_INET]199.249.230.34:443

2023-06-04 17:06:14,067 DEBG 'start-script' stdout output:
2023-06-04 17:06:14 TLS: Initial packet from [AF_INET]199.249.230.34:443, sid=b76cf553 c62b799e
2023-06-04 17:06:14 net_route_v4_best_gw query: dst 0.0.0.0

2023-06-04 17:06:14,067 DEBG 'start-script' stdout output:
2023-06-04 17:06:14 net_route_v4_best_gw result: via 172.17.0.1 dev eth0

2023-06-04 17:06:14,130 DEBG 'start-script' stdout output:
2023-06-04 17:06:14 VERIFY OK: depth=1, C=IT, ST=IT, L=Perugia, O=airvpn.org, CN=airvpn.org CA, emailAddress=info@airvpn.org

2023-06-04 17:06:14,130 DEBG 'start-script' stdout output:
2023-06-04 17:06:14 VERIFY KU OK
2023-06-04 17:06:14 Validating certificate extended key usage

2023-06-04 17:06:14,131 DEBG 'start-script' stdout output:
2023-06-04 17:06:14 ++ Certificate has EKU (str) TLS Web Server Authentication, expects TLS Web Server Authentication
2023-06-04 17:06:14 VERIFY EKU OK
2023-06-04 17:06:14 VERIFY OK: depth=0, C=IT, ST=IT, L=Perugia, O=airvpn.org, CN=Volans, emailAddress=info@airvpn.org

2023-06-04 17:06:14,201 DEBG 'start-script' stdout output:
2023-06-04 17:06:14 Control Channel: TLSv1.3, cipher TLSv1.3 TLS_CHACHA20_POLY1305_SHA256, peer certificate: 4096 bit RSA, signature: RSA-SHA512
2023-06-04 17:06:14 [Volans] Peer Connection Initiated with [AF_INET]199.249.230.34:443
2023-06-04 17:06:14 TLS: move_session: dest=TM_ACTIVE src=TM_INITIAL reinit_src=1

2023-06-04 17:06:14,201 DEBG 'start-script' stdout output:
2023-06-04 17:06:14 TLS: tls_multi_process: initial untrusted session promoted to trusted

2023-06-04 17:06:15,221 DEBG 'start-script' stdout output:
2023-06-04 17:06:15 SENT CONTROL [Volans]: 'PUSH_REQUEST' (status=1)
2023-06-04 17:06:15 PUSH: Received control message: 'PUSH_REPLY,comp-lzo no,redirect-gateway ipv6 def1 bypass-dhcp,dhcp-option DNS 10.32.66.1,dhcp-option DNS6 fde6:7a:7d20:1c42::1,tun-ipv6,route-gateway 10.32.66.1,topology subnet,ping 10,ping-restart 60,ifconfig-ipv6 fde6:7a:7d20:1c42::1031/64 fde6:7a:7d20:1c42::1,ifconfig 10.32.66.51 255.255.255.0,peer-id 4,cipher AES-256-GCM'

2023-06-04 17:06:15,221 DEBG 'start-script' stdout output:
2023-06-04 17:06:15 Pushed option removed by filter: 'dhcp-option DNS6 fde6:7a:7d20:1c42::1'
2023-06-04 17:06:15 Pushed option removed by filter: 'tun-ipv6'
2023-06-04 17:06:15 Pushed option removed by filter: 'ifconfig-ipv6 fde6:7a:7d20:1c42::1031/64 fde6:7a:7d20:1c42::1'
2023-06-04 17:06:15 OPTIONS IMPORT: --ifconfig/up options modified
2023-06-04 17:06:15 OPTIONS IMPORT: route options modified
2023-06-04 17:06:15 OPTIONS IMPORT: route-related options modified
2023-06-04 17:06:15 OPTIONS IMPORT: --ip-win32 and/or --dhcp-option options modified
2023-06-04 17:06:15 net_route_v4_best_gw query: dst 0.0.0.0
2023-06-04 17:06:15 net_route_v4_best_gw result: via 172.17.0.1 dev eth0
2023-06-04 17:06:15 ROUTE_GATEWAY 172.17.0.1/255.255.0.0 IFACE=eth0 HWADDR=02:42:ac:11:00:02
2023-06-04 17:06:15 GDG6: remote_host_ipv6=n/a
2023-06-04 17:06:15 net_route_v6_best_gw query: dst ::

2023-06-04 17:06:15,221 DEBG 'start-script' stdout output:
2023-06-04 17:06:15 net_route_v6_best_gw result: via :: dev lo
2023-06-04 17:06:15 ROUTE6_GATEWAY :: ON_LINK IFACE=lo

2023-06-04 17:06:15,221 DEBG 'start-script' stdout output:
2023-06-04 17:06:15 TUN/TAP device tun0 opened
2023-06-04 17:06:15 net_iface_mtu_set: mtu 1500 for tun0

2023-06-04 17:06:15,221 DEBG 'start-script' stdout output:
2023-06-04 17:06:15 net_iface_up: set tun0 up
2023-06-04 17:06:15 net_addr_v4_add: 10.32.66.51/24 dev tun0
2023-06-04 17:06:15 /root/openvpnup.sh tun0 1500 0 10.32.66.51 255.255.255.0 init

2023-06-04 17:06:15,224 DEBG 'start-script' stdout output:
2023-06-04 17:06:15 net_route_v4_add: 199.249.230.34/32 via 172.17.0.1 dev [NULL] table 0 metric -1
2023-06-04 17:06:15 net_route_v4_add: 0.0.0.0/1 via 10.32.66.1 dev [NULL] table 0 metric -1

2023-06-04 17:06:15,224 DEBG 'start-script' stdout output:
2023-06-04 17:06:15 net_route_v4_add: 128.0.0.0/1 via 10.32.66.1 dev [NULL] table 0 metric -1
2023-06-04 17:06:15 WARNING: OpenVPN was configured to add an IPv6 route. However, no IPv6 has been configured for tun0, therefore the route installation may fail or may not work as expected.
2023-06-04 17:06:15 add_route_ipv6(::/3 -> :: metric -1) dev tun0
2023-06-04 17:06:15 net_route_v6_add: ::/3 via :: dev tun0 table 0 metric -1
2023-06-04 17:06:15 add_route_ipv6(2000::/4 -> :: metric -1) dev tun0
2023-06-04 17:06:15 net_route_v6_add: 2000::/4 via :: dev tun0 table 0 metric -1
2023-06-04 17:06:15 add_route_ipv6(3000::/4 -> :: metric -1) dev tun0
2023-06-04 17:06:15 net_route_v6_add: 3000::/4 via :: dev tun0 table 0 metric -1
2023-06-04 17:06:15 add_route_ipv6(fc00::/7 -> :: metric -1) dev tun0
2023-06-04 17:06:15 net_route_v6_add: fc00::/7 via :: dev tun0 table 0 metric -1

2023-06-04 17:06:15,224 DEBG 'start-script' stdout output:
2023-06-04 17:06:15 Initialization Sequence Completed
2023-06-04 17:06:15 Data Channel: cipher 'AES-256-GCM', peer-id: 4, compression: 'stub'
2023-06-04 17:06:15 Timers: ping 10, ping-restart 60
2023-06-04 17:06:15 Protocol options: explicit-exit-notify 5

2023-06-04 17:06:46,311 DEBG 'start-script' stdout output:
[info] Attempting to get external IP using 'http://checkip.amazonaws.com'...

2023-06-04 17:06:54,564 DEBG 'start-script' stdout output:
[info] Successfully retrieved external IP address 199.249.230.32

2023-06-04 17:06:54,566 DEBG 'start-script' stdout output:
[info] Application does not require port forwarding or VPN provider is != pia, skipping incoming port assignment

2023-06-04 17:06:54,577 DEBG 'watchdog-script' stdout output:
[info] qBittorrent listening interface IP 0.0.0.0 and VPN provider IP 10.32.66.51 different, marking for reconfigure

2023-06-04 17:06:54,583 DEBG 'watchdog-script' stdout output:
[info] qBittorrent not running

2023-06-04 17:06:54,589 DEBG 'watchdog-script' stdout output:
[info] Privoxy not running

2023-06-04 17:06:54,589 DEBG 'watchdog-script' stdout output:
[info] Removing session lock file (if it exists)...

2023-06-04 17:06:54,599 DEBG 'watchdog-script' stdout output:
[info] Attempting to start qBittorrent...

2023-06-04 17:06:54,620 DEBG 'watchdog-script' stdout output:
[info] qBittorrent process started
[info] Waiting for qBittorrent process to start listening on port 49450...

2023-06-04 17:06:54,734 DEBG 'watchdog-script' stdout output:
[info] qBittorrent process listening on port 49450

2023-06-04 17:06:54,735 DEBG 'watchdog-script' stdout output:
[info] Attempting to start Privoxy...

2023-06-04 17:06:55,743 DEBG 'watchdog-script' stdout output:
[info] Privoxy process started
[info] Waiting for Privoxy process to start listening on port 8118...

2023-06-04 17:06:55,748 DEBG 'watchdog-script' stdout output:
[info] Privoxy process listening on port 8118
binhex commented 1 year ago

You need to assign a incoming port from your vpn provider and then manually set qbittorrent (using werb ui) to use the port.

jasonleexp commented 1 year ago

So I can confirm the port 44750 is open in AirVPN:

airvpn

And I've made sure to set that same port 44750 in the web UI:

qbit

And I made sure to add port_range = 44750-44750 and port_random = no to my qbittorrent.conf file

Am I missing something?

[AutoRun]
enabled=false
program=

[BitTorrent]
Session\Port=5539
Session\QueueingSystemEnabled=false

[Meta]
MigrationVersion=4

[Preferences]
Connection\PortRangeMin=6881
Connection\UPnP=false
General\Locale=en
General\UseRandomPort=false
WebUI\Address=*
WebUI\CSRFProtection=false
WebUI\LocalHostAuth=false
WebUI\Port=49450
WebUI\ServerDomains=*
WebUI\UseUPnP=false

port_range = 44750-44750
port_random = no
binhex commented 1 year ago

Am I missing something? not that i can see, nope, that looks to be set correctly, and qbittorrent is still showing the port closed i assume?.

jasonleexp commented 1 year ago

Yes, I'm still getting Application does not require port forwarding or VPN provider is != pia, skipping incoming port assignment in the logs when I start the container.

Unless there is some other way to check?

binhex commented 1 year ago

Yes, I'm still getting Application does not require port forwarding or VPN provider is != pia, skipping incoming port assignment in the logs when I start the container.

Unless there is some other way to check?

that is expected as your vpn provider is not PIA, if you were to use PIA then port forwarding is done automatically thus the message.

jasonleexp commented 1 year ago

I think I solved the issue!

First, @binhex thanks for clarifying that the log message is expected if you're using any VPN that is not specifically PIA. The log message was a bit confusing to me, leading me to believe that port forwarding was not enabled when it actually was. Good to know.

That said, when I changed the incoming port number in the web UI to the correct port number provided by AirVPN (in my case, would be 44750), I opened the qbittorrent.conf file again and noticed there was a new [BitTorrent] section created with the entry Session\Port=44750:

[BitTorrent]
Session\AnonymousModeEnabled=true
Session\DefaultSavePath=/data/downloads
Session\Encryption=0
Session\ExcludedFileNames=
Session\GlobalMaxRatio=1
Session\MaxRatioAction=3
Session\Port=44750
Session\QueueingSystemEnabled=false
Session\TempPath=/data/downloads/temp
Session\TempPathEnabled=true

So I wonder if Session\Port= is actually the configuration we should be providing in qbittorrent.conf, instead of port_range = and port_random =? Or should the users just go into the web UI directly and change the incoming port and skip editing the .conf all together?

Let me know if my understanding is correct.

binhex commented 1 year ago

Or should the users just go into the web UI directly and change the incoming port and skip editing the .conf all together?

always use the web ui unless you got a good reason to hack the config file, thats my opinion.

binhex commented 1 year ago

and before you ask, this is the port you need to change in the web ui:- image

jasonleexp commented 1 year ago

always use the web ui unless you got a good reason to hack the config file, thats my opinion.

I agree with this.

Just one suggestion, if I may? You might want to update your documentation on the README, since it does still reference editing the .conf file, when, as we just agreed, it's just easier to use the UI instead. Just to avoid any potential confusion for future users!

jasonleexp commented 1 year ago

Last question: if my internet connection drops, do I have to restart the container to reconnect to the VPN? Based on my testing, it doesn't seem like I have to, and the VPN will auto-connect again. But wanted to confirm to be sure.

binhex commented 1 year ago

No, it will auto reconnect.

jasonleexp commented 1 year ago

Closing this issue / marking as solved.

Tl;dr: Just set the incoming port in the web UI, as shown in this post and port forwarding should be enabled.

Confirm by checking that your qBittorrent connection goes from closed i.e., fireball emoji:

image

to open i.e., green Earth emoji:

image