Protonvpn lets you port forward. I use docker and have a gluetun container that connects to protonvpn, all of my other docker containers for sailing the high seas (arr suite, qbittorrent, sabnzbd, soulseek client, etc) are routed through it and I have port forwarding setup to the ones that need it. For soulseek I use nicotine-plus-docker, all traffic is routed through the gluetun container, the port is forwarded, and a bit shy of 700 gb uploaded since March so I can confirm it works well.
I don’t think the protonvpn Linux client supports port forwarding yet so only docker things can do it right now afaik, but anything I want permanently through VPN runs in docker anyway
On an extra note, I actually switched to slskd (since writing that comment earlier today)because the nicotine app bugs me sometimes (it’s just the app ran in a VM), so far I like it