安装需要用到的工具:
apt -y install transmission-cli mediainfo ipset
创建种子:
transmission-create -p -c lala.im -s 1024 -t https://tp.m-team.cc/announce.php -o /opt/xxx.torrent [要创建的文件名或者目录]
注:
-p 代表创建私有种子。
-c 是可选项,作用是添加种子的注释。
-s 分块大小,自行根据文件体积合理填写。
-t tracker服务器地址。
-o 种子输出路径和文件名
所有参数的后面跟上要做种的目录或是文件名。
有些PT站发个毛片还非要贴上视频的编码等信息,那这里可以用mediainfo,用法很简单命令后面跟上要查看的媒体文件名即可,例如:
mediainfo 326MAG-003.mp4
复制回显的内容粘贴并发布就行了:
不想让自己做的种子被某些盒子连上?可以使用ipset+iptables屏蔽指定国家的IPv4/v6。注意!这样做很多时候有适得其反的效果,打个最简单的比方:你必须将所有盒子的IP都屏蔽干净,一个不剩,哪怕只有一个盒子连上你的种子,一旦他从你这里下载完,它就可以立即和其他被你屏蔽的盒子连接,这样你会发现到头来你的上传还不如被你屏蔽的那些盒子多。
这里我只拿德国和法国的IP做演示,首先需要下载IPv4数据库:
mkdir -p ipdeny && cd ipdeny wget http://www.ipdeny.com/ipblocks/data/countries/all-zones.tar.gz tar -xzvf all-zones.tar.gz
然后新建两个ipset链:
ipset -N de hash:net ipset -N fr hash:net
接着将指定国家的IPv4添加到链:
for k in $(cat ~/ipdeny/de.zone); do ipset -A de $k; done for i in $(cat ~/ipdeny/fr.zone); do ipset -A fr $i; done
现在添加iptables规则即可完成屏蔽:
iptables -A INPUT -m set --match-set de src -j DROP iptables -A INPUT -m set --match-set fr src -j DROP
要解除屏蔽,删除规则:
iptables -D INPUT -m set --match-set de src -j DROP iptables -D INPUT -m set --match-set fr src -j DROP
注意,有些机器的DNS服务器地址也会在你屏蔽的IP段内,比如Hetzner的服务器,我把所有德国的IP都给block了,但自己DNS服务器的地址也是属于德国的,这样就出问题了,所以编辑:
nano /etc/resolv.conf
改为其他公共DNS服务器地址:
nameserver 8.8.8.8 nameserver 8.8.4.4
如果你的服务器有IPv6,你会发现这些盒子还是可以连上你的服务器,因为他们也有IPv6,在之前我们只是把IPv4给屏蔽掉了,所以现在还需要将IPv6屏蔽掉。既然已经有了上面的经验,现在要屏蔽IPv6基本步骤就和上面差不多,首先下载IPv6的数据库:
mkdir -p ipdeny6 && cd ipdeny6 wget http://www.ipdeny.com/ipv6/ipaddresses/blocks/ipv6-all-zones.tar.gz tar -xzvf ipv6-all-zones.tar.gz
然后新建两个ipset的IPv6链:
ipset -N de6 hash:net family inet6 ipset -N fr6 hash:net family inet6
接着将指定国家的IPv6添加到链:
for k in $(cat ~/ipdeny6/de.zone); do ipset -A de6 $k; done for i in $(cat ~/ipdeny6/fr.zone); do ipset -A fr6 $i; done
现在添加ip6tables规则即可完成屏蔽:
ip6tables -A INPUT -m set --match-set de6 src -j DROP ip6tables -A INPUT -m set --match-set fr6 src -j DROP
要解除屏蔽,删除规则:
ip6tables -D INPUT -m set --match-set de6 src -j DROP ip6tables -D INPUT -m set --match-set fr6 src -j DROP
有漏网之鱼?
iptables -I INPUT -s IPv4地址 -j DROP ip6tables -I INPUT -s IPv6地址 -j DROP
如果你不小心把规则写错了,没关系,iptables默认是不会永久保存规则的,重启你的服务器,一切规则包括ipset创建的链在内,全部会自动删除:
reboot
最后命令不对,应该是rm -rf