Ahoy, me hearties!
Listen well, me brethren! I’ve just acquired a fine NAS, and I be lookin’ to bolster our magnificent pirate community by sharing me digital plunder far and wide. But alas, it’s come to me attention that the uploads on all me torrents be as small as a speck of sand on the ocean floor, or worse, a big fat zero!
Now, I beseech ye, me shipmates, lend me yer wisdom. How can I fortify our pirate brotherhood? What be the proper settings for me NAS? Be there any trusty trackers or tools to help me upload and distribute the most crucial booty to aid our cause on the high seas?
Speak up, ye seasoned scallywags, and together we shall chart a course toward a stronger, more formidable pirate crew! 🏴☠️🦜⚓
deleted by creator
It’s my booty and I’ll keep it to me self!!
Spoken with the spirit of a genuine sea rover, me matey, but listen here, we must band together as brethren to stand strong against the mighty organizations that threaten our way of life on the vast and treacherous ocean!
The one piece is mine and you’ll have to fight me for it.
deleted by creator
If no one seeds… then logically no one can leech. Seeding is what keeps torrents alive.
Damn dude, that sarcasm flew right over your head, didn’t it?
Sarcasm is pretty hard to detect. I know it’s not as fun, but adding /s helps readers get the intent ;)
What software/OS are you running on your NAS? If you’re running some goofy software on a private tracker your client might not be whitelisted.
Besides that - this NAS is attached to your home network I assume? Is it behind a router? Are the ports you’re using for torrenting port-forwarded?
What tracker are you testing this on? A bunch of trackers will have a “Connectivity check” that will tell you whether or not your client is connectable
I be sailin’ the digital seas with a trusty QNAP OS and the mighty QBittorrent, but I be a greenhorn in this life on the high seas. Me heart’s desire be to contribute to our pirate brotherhood by becoming a proper seederman.
Be ye privy to a treasure map, a definitive guide, that can steer me in the right direction to turn me NAS into a fearsome seedin’ contraption fit for the high seas?
I appreciate your commitment to the bit.
But yeah, I also have a QNAP NAS that I just finished getting set up! And it is indeed seeding out, I’m almost at 0.49 for my all-time share ratio after downloading some stuff over the last few days. It’s taking longer to get my share ratio up than I expected, but idk, I’m new here.
Anyway, from reading a couple of strongly-worded posts on Reddit it seems that you need to have port forwarding enabled on your VPN to really seed effectively. Did you look at that when picking your VPN?
Basically I’m using AirVPN with binhex’s arch-qbittorrentvpn docker container to get it all set up. Binhex has lots of helpful pages on their GitHub for getting things working properly.
I don’t know if there’s a “definitive guide” - it’s not that complicated to get a torrent client up and running. What kind of content are you looking for? Movies, Series, Music, Games, Books…?
Best is probably to try to get access to a decent private tracker, and an “easy” one - one with a bonus point system for seeding and uptime - that makes it much easier to keep a good ratio with a NAS, if you’re just permanently seeding everything you download, you’ll get points and “rise the ranks” of that tracker.
Once you’re a high enough rank on that tracker, you’ll get access to their “Invite Forums” where other private trackers advertise and give out invites to their trackers
There’s very little info to work with so it’s unlikely you’ll receive any specific advice.
But mainly you do want to be fully connectable (port forwarded) so check that. Go to any port test website (https://www.canyouseeme.org/, https://www.yougetsignal.com/tools/open-ports/, etc.) and enter your torrent client’s incoming connection port there. (for qBittorrent that is in Tools / Options / Connection / Listening Port)
If that test fails then you need to figure out what is blocking your torrent client’s incoming connection port.
- If you’re using a proxy that’s the issue, won’t get an incoming connection port via proxy
- If you’re using a VPN service that does not support port forwarding then that’s the issue, it is impossible to port forward on a VPN without port forwarding support
- If you’re using a VPN service with port forwarding support then go to their website & figure out how to configure it, each VPN service is slightly different
- If you’re not using a VPN/Proxy then most likely you’ll need to log into your network router/firewall & configure a port forward there. Basically create a port forward for your torrent client’s incoming connection port & point it to your local system on the network (your NAS)
Also make sure to whitelist your torrent client in any anti-virus/malware software you are using, those will definitely slow you down and/or block connections to your torrent client.
There’s potentially other issues but everyone starts with being connectable first.
There are two low level tricks that make a huge difference for seeding, even if you can’t open ports. These are generic Linux tweaks, you may have to adapt them for QNAP depending on how customized it is. Ask me if you need help. As far as I can tell you need to ssh to the “admin” acount, so open a command line and type
ssh admin@
your-nas
.To make both tweaks permanent you need to edit
/etc/sysctl.conf
. you can try editing them withnano
. If you don’t havenano
you’ll have to try withvi
, butvi
is not intuitive at all to use.nano /etc/sysctl.conf
-
The first tweak makes you a lot more effective to peers that are on unstable connections and on wi-fi. Google uses it for most of their infrastructure, originally on YouTube. You can read their article for more info on how it works.
Add this line to
/etc/sysctl.conf
, closenano
with ctrl-X, and reboot:net.ipv4.tcp_congestion_control = bbr
-
The second tweak decides how fast you can upload to people far away from you. If you calculate 2 * this value / your latency to them, you get the max speed you can upload to them. For simplicity I set it to be the same as my upload speed: let’s say you have 10 MB/s upload, that’s 10000000 bytes / second:
Add this line to
/etc/sysctl.conf
, closenano
with ctrl-X, and reboot:net.core.wmem_max = 10000000
This way even someone in Australia with 500 ms of latency can download at 10 MB/s from you, (2 * 10000000 bytes / 0.500s = 10 MB/s)
After rebooting you can check if the setting stuck with the command
sysctl net.ipv4.tcp_congestion_control
andsysctl net.core.wmem_max
respectively.For any of this to make a difference you should disable µTP in your torrent client, or make it prefer TCP over µTP.
To me it makes an enormous difference, from barely any upload at all to 100 GB per day. And I’m sure it’s nice for whoever is downloading on the other side to get what they’re looking for super fast.
For any of this to make a difference you should disable µTP in your torrent client, or make it prefer TCP over µTP.
Just as a caveat, people disabling/throttling µTP may want to manually set appropriate global rate limits (upload/download bandwidth) otherwise it’s possible the torrent client will actually hit the maximum upload/download limits of the ISP or router forcing everything else on the network to slow down/time out during other internet usage. You’re obviously more advanced so you already know all this :)
Mainly it’s extra info for noobs messing around with their settings, often times noobs mess around with settings, disable things, etc. & then wonder why their torrent client keeps “crashing” their internet :P Making changes to µTP should be more of a last resort IMO.
µTP itself is a pretty big topic, there are a fair amount of people testing different settings in the qBittorrent / Libtorrent Github Issues but I’m not sure there’s even a consensus on a proper default setting. e.g. qBittorrent’s devs specifically chose different µTP defaults vs the Libtorrent library’s own defaults. qBittorrent defaults to having µTP enabled with preferring TCP (throttles µTP), Libtorrent defaults to having µTP enabled with peer_proportional (does not throttle µTP). The qBittorrent default is reasonable though I wonder if the Libtorrent default is the more “correct” approach but that’s certainly up to much debate. In both cases µTP is never disabled completely.
With my own testing I tend to keep settings at Libtorrent defaults just to observe behavior, with mainly private tracker peers I’ve noticed at least ~60% of my incoming connections are from µTP peers so at least for me it seems reasonable to keep it enabled.
The big problem with disabling µTP is that because it uses UDP, under some kinds of NAT you can get incoming connections despite being NATted. So you will loose some peers if you’re behind a NAT. If you’re not NATted there’s no connectability advantage, because every client that implements µTP can fall back to TCP.
The big advantage to disabling it that you can tweak these things. I don’t know of any client that lets you choose which congestion control algorithm that µTP uses. They all use one called LEDBAT that’s one of the first attempts to design one that avoids “bufferbloat”, i.e. that problem where the torrents fill up the buffers in routers and “clog up the Internet”. That’s nice however it doesn’t work well with networks with a lot of jitter like wi-fi, and it “loses” to algorithms that do fill up the buffer like the default TCP CUBIC. BBR avoids bufferbloat and is designed to keep working well with high jitter—Google’s intention was to make YouTube load faster on mobile phones. It also it wins over CUBIC, which is why almost every seedbox comes configured with no µTP and BBR congestion control. However, because it wins over CUBIC it will “clog up the Internet” in a different way: you may get lower speeds on everything else but don’t lose interactivity.
Linux comes with a different version of BBR that’s tuned to always yield to other traffic called lp. You enable it with
net.ipv4.tcp_congestion_control = lp
. I think lp is the optimal choice for seeding public torrents: you give full speed to faraway peers, but only when there’s nobody else that can do it.
-
I use automatic torrent management mode with qBittorrent for most things and set it to seed every torrent for 40 days (iirc). If I had unlimited storage space, I’d probably seed forever, but I found that 40 days works well for me.
Also, don’t use a Debrid service. These services just leech requested torrents and then instantly stop seeding (if they even upload during download, not sure). This is bad for torrent health on public trackers, and will quickly get you banned on private trackers.
If you seed from the same drive where you store your files, learn the art of hardlinking any torrents you’ve downloaded (that don’t require unpacking), and you can seed without taking up too much more space on your drive.
Hard links are essentially links that point to the same file. When one link is deleted, the other still exists and it is only when the last hard link is deleted that the underlying file is actually deleted.
For Windows see the following site for a hardlink tool that is integrated with the right click menu - https://schinagl.priv.at/nt/hardlinkshellext/linkshellextension.html
I use a local HDD for downloads and a NAS for storing media for Jellyfin.
I usually keep around 3 TB seeded, a lot of the stuff I seed I don’t even store myself, it’s just temporary.
I have the same problem. I generally just leave my torrent client running in the background when I work. I never leave it running because I think of my parents’ electricity bill.
If you have a server the key is just… time. Leave it be, and when you’re not downloading anything, go full throttle on sharing!
Sail proud my friend!
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.
Anyone else has cross-seed configured? I started the process, created the config.json and now I need to configure it. It would be useful to see how someone else set it up and why. I feel the provided explanations in the config file are just a notch too high than what my hobbyist mind can understand atm. Then there’s direct client injection or autotorrent2 I still have to figure out.
For those curious, cross-seed allows you to take what you are seeding and find where else that torrent is and seed it there too, within a defined set of trackers. Perfect for sharin’ ye booty, arr!
establish a hybrid & v2 torrent site first