I am using ProtonVPN, and have (or so I thought) set up qBittorrent to bind to the network interface that ProtonVPN is using (tun0). The connection symbol turns red if I turn off the VPN, and downloads will stop. However, when checking the torrent address on ipleak.net, it seems that this bind is not working properly - my real IP shows up after I have disconnected my VPN. I thought that there shouldn't be any connections made when traffic is not via the tun0 interface, so that my real IP should never be known by the detection tool. Am I wrong?
I have not configured the kill switch, but perhaps I should do so?
What you're describing seems like intended behavior.
Other than what someone else here noted about using the proton0 adapter rather than tun0, you should not have to do anything other than bind qBittorrent to your VPN's adapter to stop leaking any and all IP information to the peer swarm.
When you use ipleak.net, you will see your current IP address at the top. This has nothing to do with qbittorrent.
Farther down, you need to add the "Torrent Address detection" magnet link to qBittorrent, then that sectoin of the page will show what IP address is being broadcast by qBittorrent (which should match the IP shown at the top of the page when your VPJN adapter is present and active.)
If you have qBit bound to an adapter that is no longer present, you should see both the Speed chart on qBit drop to zero and the page's Torrent Address section will stop updating since it will no longer be receiving any new traffic.
It is the "Torrent Address detection" magnet link I am using, and it is this that reveals my real IP when the VPN is disabled. The traffic in qBittorrent stops though.
EDIT: And as I mentioned in an earlier post, it works as intended if I open the client when not connected to the VPN. It is just if the client is running while I disconnect that this problem occurs, as far as I can tell.
If that is indeed the case you should report this issue with as much detail as possible to the Proton team, because it seems like qBit is behaving propperly and there's some portion of Proton virtual adapter that is failing here.
I use Proton Vpn as well, but I have a custom wireguard interface & server switching script via their API that doesn't run into the same issue you're describing. So the issue must lie somewhere in the Linux GUI app.
Do you get the same issue if you try using an openvpn or wireguard config generated from logging into the proton vpn website? or maybe just from the CLI version of the app?