qBittorrent icon indicating copy to clipboard operation
qBittorrent copied to clipboard

Disable seeding if I have a German IP

Open Albeoris opened this issue 8 months ago • 12 comments

Suggestion

Torrent trolling is common in Germany. Companies enter into an agreement with copyright holders, download a torrent, collect the IP of peers, and file a lawsuit against the Internet provider for illegal distribution.

Please add the ability to completely disable seeding and not report data on the presence of blocks if my current IP is German (with the ability to configure this, of course).

This will help avoid situations when, in the process of moving from one country to another, you forget to disable distribution and receive fines. In addition, this will allow us to more actively participate in seeding, since now I have to completely prohibit outgoing traffic. :(

Use case

Avoiding fines for seeding in Germany

Extra info/examples/attachments

No response

Albeoris avatar Mar 13 '25 12:03 Albeoris

IIRC qBt (libtorrent) detects the external IP when it connects to peers so... it will be too late by then.

thalieht avatar Mar 13 '25 15:03 thalieht

This should not be qBittorrent's area of responsibility.

stalkerok avatar Mar 13 '25 15:03 stalkerok

Use a VPN or proxy with QBT. This will prevent your IP address from being associated with your torrenting activity.

gderf avatar Mar 14 '25 19:03 gderf

VPN does not solve the problem, unless we are talking about VPN on the router. And this is a very inconvenient and unstable solution.

In all other cases, the mechanisms for breaking the network in case of problems with VPN work unstable, especially in the split tunnel mode.

Of course, this is a good workaround, which we have to use now, but it would be better to get a solution for disabling seeding out of the box.

Albeoris avatar Mar 15 '25 12:03 Albeoris

I run Qbt and many other applications in Docker on OMV (Debian Linux based).

Currently I run the Trigus42 - alpine-qbittorrentvpn docker image, and in the past I have run others. All of them perform flawlessly and have built in killswitch behavior that prevents any network connections if the VPN breaks.

Prior to running these docker images I used Qbt with a SOCKS5 proxy configured within the application; the proxy service being provided with by the VPN service I use.

In more than ten years of continuous 24/7 Proxy/VPN connectivity to the bittorrent network I have never had a reported to me leak of my public IP address. I have collected 89TB of content this way.

gderf avatar Mar 15 '25 13:03 gderf

Trigus42 - alpine-qbittorrentvpn docker image

Will check, thank you.

P.S. It still looks like a monstrous overhead compared to the "don't seed" checkbox. :) So, out-of-scope this issue.

Albeoris avatar Mar 16 '25 14:03 Albeoris

The docker overhead is negligibly higher than running Qbt and a VPN.

But you could always run your existing instance of Qbt configured to us a proxy without any impact other than the additional cost.

If you do not upload any data into the swarms what do you think is going to happen to your download rates?

gderf avatar Mar 16 '25 14:03 gderf

The docker overhead is negligibly higher than running Qbt and a VPN.

I meant the overhead in terms of the effort spent on configuration.

If you do not upload any data into the swarms what do you think is going to happen to your download rates?

I don't care:

  1. I've already uploaded enough.
  2. I have a dedicated server in a safe country that constantly uploads rare torrents.
  3. My server doesn't take ratio into account.

So I only need this functionality occasionally to download files on the road when access to the main server is limited or restricted.

P.S. And as I said, the automatic system that detects my IP that would help me upload torrents even from this machine, whereas now I forcibly block outgoing traffic. The current solution affects my ratio much more.

Albeoris avatar Mar 17 '25 14:03 Albeoris

ANNOUNCEMENT!

For anybody coming across this "Feature Request" & would like/love to see a potential implementation in the future! Here are some options available to you:

  1. Please select/click the 👍 &/orreactions in the original/opening post of this ticket.

  2. Please feel free (If you have the "skillset") to create a "Pull Request" implementing what's being requested in this ticket. (new/existing contributors/developers are always welcome)


DO:

  • Provide constructive feedback.
  • Display how other projects implemented same/similar etc.

DO NOT:

  • Add a "Bump", "me too", "2nd/3rd" etc. or "criticizing" comment(s). (These will be disregarded/hidden as "spam/abuse/off-topic" etc. as they don't provide anything constructive.)

xavier2k6 avatar May 25 '25 14:05 xavier2k6

This should not be qBittorrent's area of responsibility.

What are you talking about? Software developers are responsible for making sure that their software allows users to comply with laws. Downloading copyright protected content is not illegal, but spreading (aka seeding) is. We shouldn't have to be forced to breaking laws because of the developer's personal beliefs of the necessity when it comes to seeding. Setting the upload speed to even 1 KB/s still puts your IP into the list of seeders which copyright protection firms can use to take legal action and get your ISP to send you letters.

rthfhgyhy567 avatar May 25 '25 21:05 rthfhgyhy567

Suggestions:

  1. Encryption mode: "Require encryption"
  2. Enable "anonymous mode"
  3. Set global limit for upload to 1KiB/s
  4. Ensure that you bind to only the interface address of your VPN instead of any "interface/any address."

xavier2k6 avatar May 25 '25 21:05 xavier2k6

The idea of a kill switch is good, But as a preliminary step - How about the identifying the country name of the IP and showing the country's flag before the external IP as per the comment in https://github.com/qbittorrent/qBittorrent/pull/20118#issuecomment-2736314068

stauffenberg2020 avatar May 30 '25 10:05 stauffenberg2020

@Piccirello

stauffenberg2020 avatar Jul 14 '25 08:07 stauffenberg2020

Ensure that you bind to only the interface address of your VPN instead of any "interface/any address."

this is the VPN killswitch in qBittorrent, no need for docker containers

Please add the ability to completely disable seeding and not report data on the presence of blocks

actual fix:

allow setting upload_limit to zero

i can run libtorrent as leech-only client with

import libtorrent as lt

ses = lt.session()

# https://libtorrent.org/reference-Add_Torrent.html
atp = lt.add_torrent_params()
atp.info = lt.torrent_info("file.torrent")
atp.save_path = "./downloads"
# atp.upload_limit = -1 # unlimited upload (default)
atp.upload_limit = 0 # no upload (leech-only client)
th = ses.add_torrent(atp)
# th.set_upload_limit(0) # override session upload_limit (?)

docs: torrent_handle.set_upload_limit

but currently this is not possible with qBittorrent because when i pull the upload_limit range slider to zero then qBittorrent sets upload_limit to -1 (unlimited upload)

forcing qBittorrent users to upload is bad because

  1. there are enough high-bandwidth seeders
  2. there is legal risk for seeders in some jurisdictions (but leeching is ok)
  3. using a VPN to change the jurisdiction is not always desired
  4. human laws have higher priority than the bittorrent protocol (no matter how stupid these human laws are)

not report data on the presence of blocks

setting upload_limit to zero does not disable sending of "have bitfield" messages

libtorrent does not support disabling have messages because that would violate the bittorrent protocol (oh my...)

but disabling have messages can be implemented as a libtorrent plugin

... if my current IP is German

this would have to be implemented in libtorrent to get "edge trigger" (instant) events from network interfaces

here in qBittorrent you only get "level trigger" events by polling libtorrent alerts, which can be too late

we would also need a way to set upload_limit per network interface

for autoconfig, we would also need a config like leech_only_countries

the IP-country association is done via a geoip database

$ geoiplookup $(curl -s ip.me) | grep Country
GeoIP Country Edition: DE, Germany

... so technically, this is a solvable problem but it fails at social problems: most germans dont use bittorrent for filesharing (because they are afraid of the copyright trolls and too stupid to use VPN or I2P)

Torrent trolling is common in Germany

fun fact: most bittorrent traffic on public trackers is generated by the copyright trolls when i enable VPN, my upload rate drops from max to near zero

first i thought my VPN is broken but actually this is a DDOS attack against german torrent seeders to exhaust the seeders upload bandwidth so other leechers get low speeds (frustrating)

the DDOS attackers hide behind VPN servers (the irony...) so its practically impossible to block them

I have a dedicated server in a safe country that constantly uploads rare torrents.

yep, a seedbox is better than VPN (for the same price) because you can run a VPN server on your seedbox plus other services like I2P, Tor, ...

see also my btcache-py (status: early draft)

This should not be qBittorrent's area of responsibility.

anyone blocking these features should be treated as a copyright troll (conflict of interests) (how much money do you earn from suing stupid people?)

but on the other hand: who will write the code? (this feature sounds trivial enough for chatGPT...)

related

  • #11911
  • #22780

milahu avatar Nov 14 '25 07:11 milahu