Mullvad just gives your machine an IP address from a range reserved for internal networks and which is not valid to use as a public IP on the internet, and then does NAT translation like your home router does.
NAT translation just uses a gateway/router as a front on the Internet (thus, with a public IP address) for a bunch of machines with non-public IP addresses: if a connection comes from an inside machine to a machine on the internet it just replaces the source IP & port address on the outbound connection with its own public IP and available port so that if the external internet machine connects back, it knows which internal machine is supposed to receive that connection.
So if you machine on the internal network side connects out to another machine on the Internet, at least for a while (until it purges than information from memory because it’s not being used) the NAT server will treat connections from that machine to it (remember, the NAT server is the one with a valid public IP address) as actually meant to go to your machine.
However if a connection comes from a machine outside which your own machine has never before connected to (which is the case when you start seeding and you machine ends up in the list of seeders of a torrent), since your machine never connected to that one in the first place the NAT server doesn’t know which internal machine that connection is supposed to go to, so it never gets to that machine.
The way to have your machine reachable by any random external machine when you’re using NAT is called Port Forwarding which is a mechanism to reserver one of the IP ports on the NAT server so that any connection to that port is always forwarded to a specific internal machine.
Mullvad doesn’t support port forwarding, hence the problems with seeding.
TL;DR What you can do
After downloading a torrent, leave it seeding. Since during the download stage your machine connected with pretty much all machines in the swarm (even if just to check what they have available) the NAT server has them associated with your machine in its list so that if any of those machines tries to connected back the connection gets forwarded to your machine, hence requests from any of those machines to download blocks come through and get served by your machine.
However new machines that join the swarm won’t be able to reach your machine because Mullvad’s NAT server doesn’t know them hence doesn’t know it should forward their connections to your machine.
This is the same reason why if you just start seeding from scratch nothing ever manages to connect to your machine - none of the machines outside trying to reach yours is in the list that the NAT server has of machines your own has reached earlier so their connections to the public IP of the server don’t get forwarded to your machine.
In my experience just leaving it seeding after downloading is enough to have at least a 2:1 seed to download ratio in most torrents, so if your objective is to give back to the community as much or more than you take, that’s enough IMHO.
If however you just want to seed for other reasons, then you won’t be able to do it with Mullvad. Either get a VPN provider that supports port foward or rent a seedbox and use that.
Anybody have any advice for seeding on Mullvad? Peers never seem to download anything
No…you need portforwarding which mullvad has disabled which is for obivious reasons.
Explanation
Mullvad just gives your machine an IP address from a range reserved for internal networks and which is not valid to use as a public IP on the internet, and then does NAT translation like your home router does.
NAT translation just uses a gateway/router as a front on the Internet (thus, with a public IP address) for a bunch of machines with non-public IP addresses: if a connection comes from an inside machine to a machine on the internet it just replaces the source IP & port address on the outbound connection with its own public IP and available port so that if the external internet machine connects back, it knows which internal machine is supposed to receive that connection.
So if you machine on the internal network side connects out to another machine on the Internet, at least for a while (until it purges than information from memory because it’s not being used) the NAT server will treat connections from that machine to it (remember, the NAT server is the one with a valid public IP address) as actually meant to go to your machine.
However if a connection comes from a machine outside which your own machine has never before connected to (which is the case when you start seeding and you machine ends up in the list of seeders of a torrent), since your machine never connected to that one in the first place the NAT server doesn’t know which internal machine that connection is supposed to go to, so it never gets to that machine.
The way to have your machine reachable by any random external machine when you’re using NAT is called Port Forwarding which is a mechanism to reserver one of the IP ports on the NAT server so that any connection to that port is always forwarded to a specific internal machine.
Mullvad doesn’t support port forwarding, hence the problems with seeding.
TL;DR What you can do
After downloading a torrent, leave it seeding. Since during the download stage your machine connected with pretty much all machines in the swarm (even if just to check what they have available) the NAT server has them associated with your machine in its list so that if any of those machines tries to connected back the connection gets forwarded to your machine, hence requests from any of those machines to download blocks come through and get served by your machine.
However new machines that join the swarm won’t be able to reach your machine because Mullvad’s NAT server doesn’t know them hence doesn’t know it should forward their connections to your machine.
This is the same reason why if you just start seeding from scratch nothing ever manages to connect to your machine - none of the machines outside trying to reach yours is in the list that the NAT server has of machines your own has reached earlier so their connections to the public IP of the server don’t get forwarded to your machine.
In my experience just leaving it seeding after downloading is enough to have at least a 2:1 seed to download ratio in most torrents, so if your objective is to give back to the community as much or more than you take, that’s enough IMHO.
If however you just want to seed for other reasons, then you won’t be able to do it with Mullvad. Either get a VPN provider that supports port foward or rent a seedbox and use that.
You should get AirVPN if you want to seed as Mullvad doesn’t support port forwarding.
Air and proton are the two big ones I know that support it. Proton tends to be more reliable then air for torrents I find.