本人义务参与一切抵制迅雷吸血的行动,对于编译Transmission和屏蔽离线服务器有任何问题,请直接通过邮箱或Telegram联系我!免费且详细解答。
更新记录
UPDATE: 2020-08-22 更新为3.00 64位版本,在Debian_10.5_amd64编译成功
UPDATE: 2019-10-05 更新为2.94 64位版本,在Debian_10_amd64编译成功
前言
曾经流行的开启强制加密已经不能屏蔽迅雷客户端,大概是从16年中旬开始,迅雷客户端就可以使用加密了。所以,现在想要屏蔽迅雷,只能通过修改源代码。如果今后迅雷开始伪装peer_id,那修改源码的方式也就失效了。
看疗效:
屏蔽迅雷离线服务器
请直接在transmission中添加blocklist,https://blog.zscself.com/download/ipfilter.txt
本屏蔽列表由推特网友@chengr28提供,更新于2017年2月5日:
Modify tr3.0 source
此修改方案由msg7086@V2EX提供。已将修改后的代码上传至GitHub。GitHub commit
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23
| peer-mgr.h 139,149d138 < static bool client_banned (const uint8_t * peer_id) < { < bool banned = false; < if (peer_id == NULL) return banned; < banned |= !memcmp(peer_id+1, "SD", 2); < banned |= !memcmp(peer_id+1, "XL", 2); < // if (banned) < // tr_logAddNamedError ("Client banned.", "(Client filter)"); < return banned; < } <
peer-mgr.c 2083c2083 < if (((atom->flags2 & MYFLAG_BANNED)|client_banned(peer_id)) != 0)
> if ((atom->flags2 & MYFLAG_BANNED) != 0)
handshake.c 274d273 < if(client_banned(peer_id)) return HANDSHAKE_ENCRYPTION_WRONG;
|
Build tr3.0
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30
|
~ apt-get update ~ apt-get install git wget xz-utils dpkg-dev
~ apt-get install autotools-dev debhelper dh-autoreconf intltool libayatana-appindicator3-dev libcurl4-openssl-dev libevent-dev libglib2.0-dev libgtk-3-dev libminiupnpc-dev libnatpmp-dev libnotify-dev libssl-dev libsystemd-dev qt5-qmake qt5-qmake:native qtbase5-dev qttools5-dev-tools zlib1g-dev
~ wget http://deb.debian.org/debian/pool/main/t/transmission/transmission_3.00.orig.tar.xz
~ wget http://deb.debian.org/debian/pool/main/t/transmission/transmission_3.00-1.debian.tar.xz
~ tar xf transmission_3.00.orig.tar.xz ~ tar xf transmission_3.00-1.debian.tar.xz -C transmission-3.00
~ wget https://raw.githubusercontent.com/firedent/transmission/5ef633880fd1320097174c053765b22f5f95ed9a/libtransmission/peer-mgr.c -O ./transmission-3.00/libtransmission/peer-mgr.c
~ wget https://raw.githubusercontent.com/firedent/transmission/5ef633880fd1320097174c053765b22f5f95ed9a/libtransmission/handshake.c -O ./transmission-3.00/libtransmission/handshake.c
~ wget https://raw.githubusercontent.com/firedent/transmission/5ef633880fd1320097174c053765b22f5f95ed9a/libtransmission/peer-mgr.h -O ./transmission-3.00/libtransmission/peer-mgr.h
~ cd transmission-3.00 ~/transmission-3.00 dpkg-buildpackage -us -uc -b -j4
|
Install tr3.0
如需在Debian 10上安装,请自行搜索办法安装 libevent-2.1-7
1 2 3 4
| ~ apt-get install libcurl4 libevent-2.1-7 libminiupnpc17 libnatpmp1 ~ dpkg -i transmission-common_3.00-1_all.deb ~ dpkg -i transmission-cli_3.00-1_amd64.deb ~ dpkg -i transmission-daemon_3.00-1_amd64.deb
|
锁定tr3.0版本
现在我们已经将安装完成了自己修改过的tr3.0,但是一旦运行apt-get upgrade
,APT又会将我们的修改版替换成最新版,所以我们需要将tr3.0排除出自动更新。
运行下面的命令,关闭刚才安装的三个软件包的更新
1
| ~ apt-mark hold transmission-cli transmission-daemon transmission-common
|
使用以下命令查看已设置为保持的所有软件包。设置为“保持”的软件包被标记为“hold”
配置tr3.0
请参考本站另一篇文章
下载链接
下载我已经编译好的安装包。
new, 只在Debian Buster (10.5) 和 bullseye (11 testing) amd64测试过:
transmission_3.00-1_all.deb
transmission-cli_3.00-1_amd64.deb
transmission-common_3.00-1_all.deb
transmission-daemon_3.00-1_amd64.deb
transmission-gtk_3.00-1_amd64.deb
transmission-qt_3.00-1_amd64.deb
old, 只在Debian Buster (10) amd64测试过:
transmission_2.94-2_all.deb
transmission-cli_2.94-2_amd64.deb
transmission-common_2.94-2_all.deb
transmission-daemon_2.94-2_amd64.deb
transmission-gtk_2.94-2_amd64.deb
transmission-qt_2.94-2_amd64.deb
长期提供U2邀请码
请给我发邮件