I have qBittorrent running on OpenWRT w/o virtualization, i.e. no docker container here. It's running natively.
One issue I am having is that I am using my phone through the USB RNDIS Ethernet driver to tether to the OpenWRT box. I noticed that if I set qBittorrent to bind to 'All interfaces' and 'All addresses' then it will indeed bind both IPv4 and IPv6 ports to every IP for every interface as intended, but if I disconnect my phone, then reconnect it, all port bindings are re-bound to the new private IPv4 and link-local IPv6 addresses, but the public IPv6 address does not receive a port binding. This disabled inbound IPv6 torrent client connections. I wish it would just bind [::] and 0.0.0.0 as most applications would, but it does not.
The problem seems to be that my IPv4 local address is configured first, and qBittorrent seems to think this means the link is up and running and so it's rebinding the ports BEFORE my public IPv6 has time to configure by DHCPv6. I say this because if I restart qBittorrent or change its bindings and save the settings, the public IPv6 receives its port binding as expected.
One solution I thought I might do was just forward the incoming IPv6 port in fw4 (OpenWRT 24.10.0-rc2 on x86_64) to the bound link-local fe80:: or localhost ::1 address, but I can't seem to figure out how to do this properly.
Anyone mind helping me w/ this or perhaps someone has another idea?
I was thinking this might be the case -- I'd assume that's also true of link-local since fe80:: is not publicly routable. I wondered if a ULA address might work?
But that's an idea I can try, I could write a custom script to restart qbittorrent when the interface comes up (with a sleep timer)... I guess that'd be in /etc/hotplug.d/iface/ ??
Yes, restart your torrent in hotplug scripts, that could work too. Seriously get in contact with your SW provider to check network quality when service starts.
The issue is well documented on the qBittorrent side of things but only affects a few people in specific circumstances (like me), so on the qBittorrent side, there seems little desire to change things even though libtorrent seems to support binding to [::] and 0.0.0.0, I think it's a design choice within how the UI is structured to bind to specific interfaces / IPs rather than a global [::] or 0.0.0.0...
I wrote the script, it seems to be working just fine... it's tough to think of a situation where I wouldn't want to restart qBittorrent upon ifup events so I think this works for my needs. Thanks for the idea. Cheers!
qBittorrent wins? You mean the community wins if I contribute my script? It's a pretty basic script, but I suppose approaching it with a solution is better than just complaining about a problem...