项目地址:https://github.com/nickfox-taterli/goseeder
简而言之,这个工具:
- 不适合无限流量,希望通过自动辅种获得收益的人.
- 不适合拿着24T,48T大盘机的人,也不适合只有4G硬盘的人.
- 适合拥有众多小鸡(N台),容量都不怎么大(10G ~ 1000G),并且网络有流量限制的人.(如果使用Virmach请先阅读https://www.taterli.com/7711/)
- 适合PT佛系养老,不想浪费众多小鸡的人,并且懒得管PT站死活,偶尔上去看看的那些人.
正因为此,这个工具就有了.之前我已经写过一个Python版本的,但是哪个版本有以下几个问题.
- 清理策略不完善,偶尔会出现磁盘空间0的情,偶尔过度清理,比如一下子删除了所有任务.
- 作弊功能基本鸡肋,各站反作弊能力越来越强.
- 磁盘或者网络过忙时候也会添加种子,最后积累大量任务无法进行,虽然最终跑满带宽,但是上传收益低.
- 无法对HR限制的PT网站处理,种子可能会被提前删除.
这个配置就这么一个文件,请参考(config-example.json):
- dbserver 是你在MongoDB Altas申请的数据库的连接字符串,包括你的用户名和密码,格式参考如下,在Mongodb Altas控制面板可以直接取得.(获取方法:https://www.taterli.com/7691/)
- node 是各PT网站的信息.
- source 是PT网站的域名
- passkey 玩过PT都懂
- limit 即每次获取的数量上限,如果该网站更新快,就调大一些,否则调小一些减轻PT网站压力,推荐保留默认值.
- enable 是否启用这个网站,填true启用,false就是暂时不用.
- rule 网站规则(目前是用于HR,满足其中一个条件才可以删除种子,如果无HR请都调到0即可.)
- seeder_time HR 限制的最小做种时间
- seeder_ratio HR 限制的最小做种比率
- speed_limit (V1.1开始)网站限速,比如某些网站过快会被Ban,单位是MB/s.
- server 是各小鸡QB的配置,Go版本采用并行查询,效率更高.
- endpoint QB的访问地址,末尾不带斜杠,QB推荐Docker方式安装.(https://hub.docker.com/r/linuxserver/qbittorrent) 或者Ubuntu添加PPA方式 (https://launchpad.net/~qbittorrent-team/+archive/ubuntu/qbittorrent-stable).版本必须大于4.1才可以.确保自己能浏览器打开访问这个地址.
- username 登录用户名
- password 登录密码
- reamrk 方便记忆的名字
- enable 是否启用这个小鸡,填true启用,false就是暂时不用.
- rule 小鸡规则(防止被TOS炸,最大化利用率等用途,如果不懂可以不动,调整他可以获得更好的体验.)
- concurrent_download 最大同时任务数,任务数量过多,磁盘压力和带宽压力都很大,很容易达到瓶颈,如果水管小,则应该调小这个,如果水管大则可以调大,如果不想限制就设置很大的数值就可以,注意任务过多导致网络过快可能会触发TOS.
- disk_threshold 触发清理功能的磁盘空间,当磁盘空间小于这个数值,就会触发种子清理,会清理掉最老最无用种子,从V1.1开始,单位统一为GB.
- max_speed 是允许添加种子的最大速度,比如你是100Mbps服务器,理论满速是12.8MB/s,如果此时你的服务器速度已经达到10MB/s,这个时候添加种子就抢不到什么速度,反而影响其他种子进度也落后于人,影响最终分享率,从V1.1开始,单位统一为MB/s.
- min_alivetime 种子最短存活时间,避免某些种子下载之后没人下载,然后被很快清理掉,错过后期的做种好机会.
- max_alivetime 种子最大存活时间,必须大于min_alivetime,超过max_alivetime的种子会被优先删除.
- min_tasksize 最小的种子大小,如果种子小于这个大小就不要添加,添加更大的种子可以获得更好的收益,减轻磁盘压力,相应地也会忽略掉不少任务,设置为0接受任何种子,从V1.1开始,单位统一为GB.
- max_tasksize 最大的种子大小,如果种子大于这个数值,就不要添加,太大的种子占用空间而且收益不一定高,如果想添加任何种子,请把max_tasksize设置得很大,从V1.1开始,单位统一为GB.
- max_disklatency 磁盘延迟达到这个数值时候,不会添加任何种子,避免因为长期磁盘占用而触发TOS,如果想忽略这个参数,只需要把延迟调的很大就行,单位是ms.
{
"dbserver": "mongodb+srv://username:password@cluster0.3cyul.mongodb.net/?retryWrites=true&w=majority",
"node": [
{
"source": "www.nicept.net",
"passkey": "21232f297a57a5a743894a0e4a801fc3",
"limit": 10,
"enable": true,
"rule": {
"seeder_time": 0,
"seeder_ratio": 0,
"speed_limit": 8.0
}
},
{
"source": "pt.btschool.club",
"passkey": "21232f297a57a5a743894a0e4a801fc3",
"limit": 10,
"enable": true,
"rule": {
"seeder_time": 86400,
"seeder_ratio": 1.2,
"speed_limit": 10.0
}
}
],
"server": [
{
"endpoint": "http://173.82.120.2:8080",
"username": "admin",
"password": "TaterLi1024",
"remark": "Cloudcone (500G)",
"enable": false,
"rule": {
"concurrent_download": 1,
"disk_threshold": 10.0,
"disk_overcommit": true,
"max_speed": 50.00,
"min_alivetime": 3600,
"max_alivetime": 86400,
"min_tasksize": 0.0,
"max_tasksize": 400.0,
"max_disklatency": 10000
}
}
]
}
那么如何安装呢,先把配置文件放到/etc/goseeder.conf,然后执行下面几行就可以了.
curl https://raw.githubusercontent.com/nickfox-taterli/goseeder/master/goseeder.service > /etc/systemd/system/goseeder.service
curl -L https://github.com/nickfox-taterli/goseeder/releases/download/v1.1/goseeder > /usr/local/bin/goseeder
chmod a+x /usr/local/bin/goseeder
systemctl start goseeder
systemctl enable goseeder
如何查看安装当前信息呢?
注意:剩余空间里面,第一个显示的是当任务全部下载完你的磁盘就剩下多少空间,负数意味着Over Commit,这是没关系的.方框内才是真实可用剩余.
systemctl status goseeder --no-pager --full

最后推荐两个便宜大盘机,适合现在这个用途的.
Time4VPS(最近正在搞15EUR一年大盘机活动):https://billing.time4vps.com/?cmd=cart&action=add&id=119&cycle=y&promocode=2021&utm_source=forum&utm_medium=offer
Hostens(买3年超划算):https://www.hostens.com/?affid=1662
他们都是超流量只限速不关机,保种感觉也是超好的,我已经用了一年了.


可以在终端查看统计,如果需要可以自行构建stat.go

提个建议,不要用mongodb作为数据库,换用sqlite好些。flexget也是使用sqlite作为数据库的。原因:
1. 软件需要记录的数据量一般不大,
2. storage vps的RAM本来就不大,能少启动一个服务就尽量少一个。BT软件也特别吃RAM。
@Rhilip 这个不是跑在STOR机上的,是跑在普通机上,就VIR 7刀年付之类的机,然后又为了可以随便搬到哪个服务器不用挪数据库文件用的,还有就是还有其他实用程序需要用这个数据库,SQLite锁文件并不好做.
另外数据库不是跑在本机的,RAM占用几乎忽略不计.
@Rhilip 我现在就挂在BudgetVM的2.9EUR年付机上,操控后端有18台机,占用十几MB.
大佬小弟愚钝不会用mongodb呐,
管理面板里没找到完整的链接,全部都是演示。。
mongo “mongodb+srv://cluster0.cjqoi.mongodb.net/myFirstDatabase” –username user
哪里输用户名跟密码给我弄糊涂了
@a 就是这个位置差不多了,他的上一步选择使用程序连接,然后选择Go语言,就会给出一个连接字符串,如果还没创建密码和防火墙还要先创建,不急的话明后天我再写个关于altas的教程。
@TaterLi 谢谢大佬差不多明白了。
有一个问题就是这个脚本刷的话如果没有免费种的话是不是很容易就刷死了
@a 其实还好,我实测HDArea就很少免费,实际分享率在6-7左右.
@a 数据库配置参考下:https://www.taterli.com/7691/
这个网站就很多种都不Free,基本还能保持.

@TaterLi 好的,多谢大佬
还有问题就是有没有可能同一个种子会被多台服务器同时下载。
我这里添加了两台qb,但是只有一台在用,另外一台没看到有下载记录,而且下载的那台也一直处于等待中的状态、没有速度,不过可能是因为我添加的是小站的问题
这种情况要怎么排查问题啊大佬
而且那个查看状态命令运行完就退出了,怎么可以让她一直保持刷新
小白求教谢谢大佬
@a https://s3.jpg.cm/2021/04/18/Tqp0f.png
@a 其中一台没有使用的原因找到了,原来是密码输入错误了
@a 没用到的机可以删掉,提高效率.刚更新了一下,如果是OVZ架构建议用Ubuntu16.04添加PPA方式安装更新的QB,老版本接口并不兼容.
请问可以把单位标上吗?下面的这些没有单位,不知道怎么填写
“disk_threshold”: 10737412742,
“max_speed”: 5242880,
“min_alivetime”:3600,
“max_alivetime”:86400,
“min_tasksize”: 1073741274,
“max_tasksize”: 536870637122,
“max_disklatency”: 10000
@close 文中已经写了,计算工具参考: https://www.flightpedia.org/convert-bytes-to-gigabytes.html ,单位是字节.
为什么大多数情况下我的qb会显示You already are downloading the same torrent.
也就是已经下过该种子了不能再另一台服务器下载,请问是因为这个脚本没有查重功能吗,还是我的数据库设置错误无法查重
@closty 有查重,你是不是多个地方执行了这个程序,只要在其中一台服务器执行就可以,这个服务器还不一定得是QB所在机.
@TaterLi 我只在一台服务器运行过,而且该台服务器也并没有运行QB,但我重启过该程序。也许是重启的问题
@closty 重启不会影响这个,看看数据库上有没有数据,另外有没有其他采集如阿软件也在同时工作.
@TaterLi 感谢解答!
没用过mongo数据库,请问如何查看。
alivetime的单位是秒吗?
@closty 单位是秒,网页上有个collection的按钮,里面就是数据。
@closty 如果是重启QB会产生很多同时下载提示,需要等QB自己重新汇报才OK.
还有哪里可以看到日志,运行只会显示启动,但没动静,是缺少什么依赖吗
* goseeder.service – Go Seeder Service
Loaded: loaded (/etc/systemd/system/goseeder.service; enabled; vendor preset: enabled)
Active: active (running) since Wed 2021-06-09 00:04:05 EDT; 15min 49s ago
Main PID: 4344 (goseeder)
Tasks: 4 (limit: 394)
Memory: 20.1M
CGroup: /system.slice/goseeder.service
`-4344 /usr/local/bin/goseeder
Jun 09 00:04:05 debian systemd[1]: Started Go Seeder Service.
种子会自己删除吗
@Linon 会自动删除,盘太小就不要设置太多同时任务,不然可能下载没几个小时塞满了,清理时间又没到(清理时间也是可设置的).
大佬你好,我使用这个刷mt分享率在5.8左右,有办法调优到7以上吗?
@LL 和机器有关,抢不抢得到的问题.
而且和盒子判定也有关,调整参数保留种子更久可以轻微改善.
可以增加只下免费种的功能吗
求教,配置文件已经写入到goseeder.conf,放到/etc文件夹了
● goseeder.service – Go Seeder Service
Loaded: loaded (/etc/systemd/system/goseeder.service; disabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Tue 2021-11-30 16:14:10 CST; 2s ago
Process: 8492 ExecStart=/usr/local/bin/goseeder (code=exited, status=1/FAILURE)
Main PID: 8492 (code=exited, status=1/FAILURE)
Nov 30 16:14:09 racknerd-f6cd66 systemd[1]: goseeder.service: Main process exited, code=exited, status=1/FAILURE
Nov 30 16:14:09 racknerd-f6cd66 systemd[1]: goseeder.service: Failed with result ‘exit-code’.
Nov 30 16:14:10 racknerd-f6cd66 systemd[1]: goseeder.service: Service hold-off time over, scheduling restart.
Nov 30 16:14:10 racknerd-f6cd66 systemd[1]: goseeder.service: Scheduled restart job, restart counter is at 5.
Nov 30 16:14:10 racknerd-f6cd66 systemd[1]: Stopped Go Seeder Service.
Nov 30 16:14:10 racknerd-f6cd66 systemd[1]: goseeder.service: Start request repeated too quickly.
Nov 30 16:14:10 racknerd-f6cd66 systemd[1]: goseeder.service: Failed with result ‘exit-code’.
Nov 30 16:14:10 racknerd-f6cd66 systemd[1]: Failed to start Go Seeder Service.
@Roman 检查数据库配置