Skip to content

Instantly share code, notes, and snippets.

@shmup
Last active December 9, 2024 09:41
Show Gist options
  • Save shmup/29566c5268569069c256 to your computer and use it in GitHub Desktop.
Save shmup/29566c5268569069c256 to your computer and use it in GitHub Desktop.
transmission blocklist guide

Transmission Blocklist

The Transmission torrent client has an option to set a Blocklist, which helps protect you from getting caught and having the DMCA send a letter/email.

It's as simple as downloading and installing the latest client:

After installing, navigate through the menu: Edit > Preferences > Privacy:

image

  1. Check enable blocklist
  2. Paste in: https://raw.githubusercontent.com/Naunter/BT_BlockLists/master/bt_blocklists.gz (peep the curls) (github)
  3. Check Enable automatic updates
  4. Click Update
  5. Close
@fredngo
Copy link

fredngo commented Nov 19, 2021

FWIW I wrote my own script to fetch blocklists from https://www.iblocklist.com/lists. I get the level1 list so I use the command get-blocklist level1 to download it. https://github.com/5p0ng3b0b/scripts/blob/master/bash/get-blocklist.

@5p0ng3b0b: Tried your script out but got this error:

% ./get-blocklist all
sed: illegal option -- z
usage: sed script [-Ealnru] [-i extension] [file ...]
	sed [-Ealnu] [-i extension] [-e script] ... [-f script_file] ... [file ...]
sed: illegal option -- z
usage: sed script [-Ealnru] [-i extension] [file ...]
	sed [-Ealnu] [-i extension] [-e script] ... [-f script_file] ... [file ...]
sed: illegal option -- z
usage: sed script [-Ealnru] [-i extension] [file ...]
	sed [-Ealnu] [-i extension] [-e script] ... [-f script_file] ... [file ...]

Update:

OK, easy fix. sed on Mac doesn't support -z, so install GNU sed instead:

brew install gnu-sed

and replace all 7 occurrences of sed in the script with gsed. Working perfectly.

@5p0ng3b0b
Copy link

@fredngo. Commands and their options can vary from distro to distro. The script was written and tested in Windows Debian WSL, then uploaded to the openwrt device it was meant for. ls -l $(which sed) on the device showed a symlink to busybox thus requiring the full sed to be installed.

@pogue
Copy link

pogue commented Dec 2, 2021

iblocklist.com now requires a paid subscription to use. You can use the emule block at https://www.emule-security.org/. It's updated monthly and you can point your BT client to http://upd.emule-security.org/ipfilter.zip (if it supports zip files) to there to download it directly. Inside the zip file is a file called guarding.p2p, so depending on your torrent client you may have to rename the extension to .dat, or .txt. There is also a regularly updated extension list at https://www.wael.name/other/best-blocklist/. He provides a version as a .dat, .txt, or .p2p. I don't know how often it's updated, but the last update was in October of this year.

However, you should really not be using blocklists as your main defense against malicious/anti-piracy forces on Bittorrent. Anti-P2P services like Sandvine monitor BT network traffic for file sharing and issue DMCA notices automatically. They buy up HUGE blocks of hundreds of thousands of IP addresses that are completely random, so there is no way an IP block list can keep up with services like this. Also, often your ISP will detect P2P traffic and try and throttle it or block it entirely (Comcast is a major offender). Enabling encryption can help block simple traffic shaping methods, but hardly anyone has it enabled (I always recommend you set encryption to "Allow Encryption", but don't require it, or you'll never find any peers. (I use qBitorrent and it has an option for disable, allow, or require).

There used to be a lot of tools that would allow you to see if your ISP was intercepting your traffic, but it looks like they've all shut down. There was one available from Measurement Labs that was called Glasnost that would do it (the source code is still available if you feel like building your own copy), and the EFF had a tool called Switzerland that would test as well, but alas it too has been discontinued - although you can still download and install it on a *nix machine.

You should really use a VPN. You can use WindScribe which offers 10GB free per month, but I just pay and it comes out to $4/mo if you pay for a year. It's also recommended by TorrentFreak as they do not log data and don't response to DMCA requests or law enforcement. Once you have a paid subscription you can use unlimited data on as many devices as you want. It even has a browser plugin so you can just connect to the VPN from within the that browser and they have servers all over the world. You don't have to switch to a European server to torrent, you can just use "Best location" and it will connect you to the closest server to you. I can have it running on my PC, my phone, and they even have an app for FireTV and Roku (not sure about AppleTV, GoogleTV, Chomecast,etc) so I can watch British Netflix right from my TV without any complicated setup. It comes with a fully built in customizable firewall.

They use AES-256 cipher with SHA512 auth and a 4096-bit RSA key with multiple ways to connect incase your ISP is picky including OpenVPN, IKEv2, WireGuard, SOCKS, UDP, TCP and a Stealth function if you're in some super restrictive country like China or something.

There are other services like a Seedbox, and here's another article from Torrent Freak Reviewing Seedbox Providers. I also came across a subscription service called ZbigZ which is a cloud based Torrent downloader and will connect to the Bittorrent Network, download your torrents for you, then you just download them off their website. I didn't really compare their pricing models or anything though, so I would say a VPN or Seedbox would be best for most users.

Finally, you could use the anonymous network like I2P to connect to Bittorrent (qBitorrent has this built in and it's called "anonymous mode") but you can set it up manually with instructions from here: https://geti2p.net/en/docs/applications/bittorrent. However, it's going to be EXTREMELY slow to download your torrents as there are not that many people actively using it. And please don't use TOR for Bittorrent, it just wastes TOR's network bandwidth that regular people use.

Hope that helps,
pogue

@climardo
Copy link

climardo commented Jul 9, 2022

I have never had an issue using this list without registering:
http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz

@Galenmacil
Copy link

I have never had an issue using this list without registering: http://list.iblocklist.com/?list=bt_level1&fileformat=p2p&archiveformat=gz

Thanks for this. Still working as of this writing...

@JasperLawrence
Copy link

Thank you to everyone who has contributed to this list, I am grateful for your efforts.

@kiwisincebirth
Copy link

@cablehub
Copy link

cablehub commented Jul 23, 2023

This seems to work quite well: https://github.com/fonic/ipfilter

Only downside is that you need a server to provide the file as Transmission still hasn't implemented support for local blocklist files. I put the script on my NAS, which generates the block list and then serves it to local clients via HTTP. Works perfectly thus far.

@v0d0r
Copy link

v0d0r commented Jun 1, 2024

here is something i hacked together using the iblocklist.com list. of course i ended up registering to iblocklist.com to get this to work. replace with your own custom url they provide you based on your selection etc... also worth noting i run transmission in a docker and extract the blacklist file to my container config / blacklists folder then restart the container for it to read it on startup. then i just cron the below script weekly.

`#!/bin/bash

Variables

URL='http://list.iblocklist.com/?list=xyz&fileformat=p2p&archiveformat=gz&username=meh&pin=1234'
OUTPUT_DIR='/mnt/nfs/swarm/dockervolumes/transmission/blocklists'
OUTPUT_FILE='blocklist.gz'
EXTRACTED_FILE='blocklist'
DOCKER_CONTAINER='transmission'

Download the blocklist file

wget -O $OUTPUT_FILE $URL

Extract the blocklist file

gunzip -f $OUTPUT_FILE

Move the extracted file to the desired location

mv $EXTRACTED_FILE $OUTPUT_DIR/$EXTRACTED_FILE

Restart the Docker container

docker restart $DOCKER_CONTAINER

echo "Blocklist updated and Docker container restarted successfully."`

@petesimon
Copy link

in September 2024, this link https://github.com/Naunter/BT_BlockLists/raw/master/bt_blocklists.gz still works. Thank you!

@Zotter
Copy link

Zotter commented Oct 23, 2024

Yes, "https://github.com/Naunter/BT_BlockLists/raw/master/bt_blocklists.gz" still works and the date changes routinely, but it doesn't appear the contents of the file have changed since 2022 or earlier. The scripts creating the archive are running, but it's unclear if there are actually any updates to be had, let alone included.

@engineeror
Copy link

@shmup
Copy link
Author

shmup commented Oct 23, 2024

I did wonder if @Zotter has a point though, @engineeror . If it's true the contents haven't changed in a while, I'll update the gist with that warning information. I haven't been paying attention (or even using transmission)

@shmup
Copy link
Author

shmup commented Oct 25, 2024

@Zotter I replaced the URL in the gist yesterday when @engineeror pointed that out, I notice that you mentioned the original had one more URLs. Now I don't know if I should restore it! But also, I wondered if things get pruned.

@engineeror
Copy link

well in my case i noticed that the blocked IP count doesn't change in transmissiond with https://github.com/Naunter/BT_BlockLists/raw/master/bt_blocklists.gz anymore.
apparently several redirects are now needed via that url to get to the archive and transmissiond doesn't handle this properly i guess.
currently end url is https://raw.githubusercontent.com/Naunter/BT_BlockLists/master/bt_blocklists.gz and with this the blocked IP count is now changing for me again.
idk if transmissiond updates automatically, so i have this:

# /etc/systemd/system/transmission-blocklist-update.service
[Unit]
Description=Update Transmission IP blocklist

[Service]
User=transmission
Group=users
ExecStart=/usr/bin/transmission-remote --blocklist-update

# /etc/systemd/system/transmission-blocklist-update.timer
[Unit]
Description=Update Transmission IP blocklist
Requisite=transmission.service
After=transmission.service

[Timer]
RandomizedDelaySec=30m
OnActiveSec=6h
OnUnitActiveSec=6h

[Install]
WantedBy=transmission.service

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment