this post was submitted on 26 Aug 2023
196 points (96.2% liked)
Piracy: ꜱᴀɪʟ ᴛʜᴇ ʜɪɢʜ ꜱᴇᴀꜱ
54565 readers
480 users here now
⚓ Dedicated to the discussion of digital piracy, including ethical problems and legal advancements.
Rules • Full Version
1. Posts must be related to the discussion of digital piracy
2. Don't request invites, trade, sell, or self-promote
3. Don't request or link to specific pirated titles, including DMs
4. Don't submit low-quality posts, be entitled, or harass others
Loot, Pillage, & Plunder
📜 c/Piracy Wiki (Community Edition):
💰 Please help cover server costs.
Ko-fi | Liberapay |
founded 1 year ago
MODERATORS
you are viewing a single comment's thread
view the rest of the comments
view the rest of the comments
Can someone explain to me what port forwarding in the context of torrenting is about? I use qbittorrent and nordvpn in docker containers and have never exposed/forwarded a port but get more than adequate upload/download speeds.
Port forwarding allows you to bypass your NAT firewall which will naturally block all unsolicited traffic on a closed port. What that means for a torrent download is peers cannot introduce themselves to you and create a new connection, you can only connect to active peers who have their ports open.
Just to add more background to that, before your torrent can begin downloading pieces from various peers, you need to know the address of the peers sharing the pieces you need. Typically that is handled by the tracker and/or DHT. A tracker acts as sort of a logistics middle-man. It helps facilitate efficient transmission between peers by tracking what each peer has and needs. If peer B needs piece X, the tracker will supply peer B with the address to peer A who has piece X. Assuming peer A has their incoming port open, they will accept the request for piece X and send it to peer B. If their port is closed, the request will simply be denied and no traffic will be shared between the peers. The tracker's address, as well as the data hash and some other misc data is coded into the torrent file. DHT is a little more unique and complicated. It is a fully distributed hash table on a P2P network and does not rely on a tracker at all, it's strictly P2P. The only little catch to that is to initially introduce yourself into the network you need to bootstrap your connection using some hardcoded addresses, often from a very centralized source. Port forwarding becomes much more important for DHT because after the initial bootstrap, there is no middle-man, it's strictly peer to peer and by having your ports closed, your client can't effectively communicate across the network. Without two-way communication across peers, your client will generally be stuck with a very limited pool of peers it can communicate with. Magnet links as well as most torrent clients utilize DHT.
One reason it's not so noticeable these days when ports are closed is because many torrent peers exist in big data centers with virtually unlimited bandwidth. When torrents were still young, most if not all peers were hosted on consumer grade hardware at a residence so you needed every connection you could get.
If your torrent download happens to be a well-known Linux ISO, chances are very likely that there will be at least two or three peers you'll connect to that exist in a data center, they will most likely account for 80%+ of your download speed.
Blocking ports ultimately hurts seeding the most which can effect the overall "health" of a torrent. Say a peer labeled A can't connect to those giant data center peers for whatever reason, they now have to seek out other peers that may have the data they are looking for. If all the other peers have their ports closed, well then the torrent is essentially dead for peer A and they'll have to either wait for someone with open ports to come online and start seeding or search for an entirely new torrent.
Sorry, this was a bit of an on-the-go mind dump so please anyone correct me if I'm wrong anywhere here but that's pretty much the gist of port forwarding in the context of torrenting.
I'm immensely appreciative of this explanation, thank you. I believe I understand now.
When torrenting your client should be "Connectable" which means fully accessible from others. You can use the guides others have posted to achieve that but basically, an unconnectable client can still seed to those who are connectable, but two unconnectable clients cant connect to each other. Or at least this is how it has been described to me by a private tracker.