debian下安装使用rtorrent+rutorrent下载PT神器

Docker安装方法

2018-12-05 更新:
今天写一下rtorrent+rutorrent用docker的实现方法。
首先你的电脑上先得安装好docker。安装方法网上很多,自行百度。
装好之后运行下面的命令行就OK了。你没有看错,就是一行代码,就装好了。docker会自动下载容器并运行。

1
docker run -dt --name rtorrent-rutorrent --restart=always -p 8080:80 -p 49160:49160/udp -p 49161:49161 -v /mnt/raye/video:/downloads -e USR_ID=11000 -e GRP_ID=22000 -e PHP_MEM=1024M diameter/rtorrent-rutorrent:latest

参数 说明
docker run -dt 运行一个后台容器。
--name rtorrent-rutorrent 运行的容器名。
--restart=always: 重启后容器自动运行。
-p 8080:80 -p 49160:49160/udp -p 49161:49161 映射到容器的端口号及协议。
-v /mnt/raye/video:/downloads 映射到容器里的文件夹。/mnt/raye/video自行修改这部分的内容为自己要下载到的地方。
-e -e USR_ID=11000 -e GRP_ID=22000 设置下载文件的用户ID和组ID。
-e PHP_MEM=1024M 增加PHP使用内容到1024M
diameter/rtorrent-rutorrent:latest latest代表使用最新的版本。

通过浏览器访问http://IP:8080,就可以看到rtorrent+rutorrent了。

说明一下:DOCKER装的rtorrent+rutorrent,要通过Transdroid手机APP访问和控制,SCGI的挂载点应该是/RPC


正常安装方法

安装所需软件

1
apt-get install rtorrent php screen wget unzip ffmpeg mediainfo sox unrar-free apache2

下载rutorrent

1
2
3
4
5
6
cd /var/www/html
wget https://github.com/Novik/ruTorrent/archive/master.zip
unzip master.zip
mv ruTorrent-master rt
rm -rf master.zip
chmod -R 777 /var/www/html/rt

编辑.rtorrent.rc配置文件

root目录下新建一个.rtorrent.rc的文件。内容如下:

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
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
# This is an example resource file for rTorrent. Copy to
# ~/.rtorrent.rc and enable/modify the options as needed. Remember to
# uncomment the options you wish to enable.

# Maximum and minimum number of peers to connect to per torrent.
#
throttle.min_peers.normal.set = 10
throttle.max_peers.normal.set = 512

# Same as above but for seeding completed torrents (-1 = same as downloading)
#
throttle.min_peers.seed.set = -1
throttle.max_peers.seed.set = -1

#最大同时下载和上传插槽数(全局插槽!)(`max_downloads_global`,`max_uploads_global`)
#throttle.max_downloads.global.set = 300
#throttle.max_uploads.global.set = 300

#每个torrent同时下载和上传插槽的最大数量
throttle.max_uploads.set = 512
#throttle.max_downloads.set = 512

#设置发送到跟踪器的numwant字段,指示我们需要多少个对等体。负值禁用此功能。 默认值:`-1`(`tracker_numwant`)
trackers.numwant.set = 100

# Global upload and download rate in KiB. "0" for unlimited.
#
throttle.global_down.max_rate.set_kb = 0
throttle.global_up.max_rate.set_kb = 0

# Default directory to save the downloaded torrents.
#
directory.default.set = /mnt/video/download

# Default session directory. Make sure you don't run multiple instance
# of rtorrent using the same session directory. Perhaps using a
# relative path?
#
session.path.set = /mnt/video/.session

# Watch a directory for new torrents, and stop those that have been
# deleted.
#
schedule2 = watch_directory,5,5,load.start=/mnt/video/.watch/*.torrent
#*/
#schedule2 = untied_directory,5,5,stop_untied=

# Close torrents when diskspace is low.
#
schedule2 = low_diskspace,5,60,close_low_diskspace=300M

# The ip address reported to the tracker.
#
#network.local_address.set = 127.0.0.1
#network.local_address.set = rakshasa.no

# The ip address the listening socket and outgoing connections is
# bound to.
#
#network.bind_address.set = 127.0.0.1
#network.bind_address.set = rakshasa.no

# Port range to use for listening.
#
network.port_range.set = 49164-49164

# Start opening ports at a random position within the port range.
#
network.port_random.set = no

# Check hash for finished torrents. Might be usefull until the bug is
# fixed that causes lack of diskspace not to be properly reported.
#
#pieces.hash.on_completion.set = no

# Set whether the client should try to connect to UDP trackers.
#
#trackers.use_udp.set = yes

# Alternative calls to bind and ip that should handle dynamic ip's.
#
#schedule2 = ip_tick,0,1800,ip=rakshasa
#schedule2 = bind_tick,0,1800,bind=rakshasa

# Encryption options, set to none (default) or any combination of the following:
# allow_incoming, try_outgoing, require, require_RC4, enable_retry, prefer_plaintext
#
# The example value allows incoming encrypted connections, starts unencrypted
# outgoing connections but retries with encryption if they fail, preferring
# plaintext to RC4 encryption after the encrypted handshake
#
# protocol.encryption.set = allow_incoming,enable_retry,prefer_plaintext

# Enable DHT support for trackerless torrents or when all trackers are down.
# May be set to "disable" (completely disable DHT), "off" (do not start DHT),
# "auto" (start and stop DHT as needed), or "on" (start DHT immediately).
# The default is "off". For DHT to work, a session directory must be defined.
#
dht.mode.set = on

# UDP port to use for DHT.
#
dht.port.set = 6881

# Enable peer exchange (for torrents not marked private)
#
#protocol.pex.set = yes

# Set downlad list layout style. ("full", "compact")
#
#ui.torrent_list.layout.set = "full"

# SCGI Connectivity (for alternative rtorrent interfaces, XMLRPC)
#
# Use a IP socket with scgi_port, or a Unix socket with scgi_local.
# schedule can be used to set permissions on the unix socket.
#
#scgi_port = 127.0.0.1:5000
#scgi_local = /home/user/rtorrent/rpc.socket
#schedule = scgi_permission,0,0,"execute.nothrow=chmod,\"g+w,o=\",/home/user/rtorrent/rpc.socket"

peer_exchange = yes
scgi_port = 127.0.0.1:5000

#xmlrpc的最大包大小。 默认值:`524288`(xmlrpc_size_limit)
network.xmlrpc.size_limit.set = 4M

#每12小时保存所有会话,而不是默认的20分钟。
#schedule2 = session_save, 1200, 43200, ((session.save))

#发送和接收套接字的缓冲区大小。默认情况下禁用,增加缓冲区大小可能有助于减少磁盘搜索,连接轮询,因为每次都会缓冲更多数据socket被写入。它将导致更高的内存使用率(在rtorrent进程中不可见!)
network.receive_buffer.size = 4M
network.send_buffer.size = 16M

#设置用于映射文件块的最大内存地址空间。这指的是内存映射,而不是物理内存分配。默认值:`1GB`
pieces.memory.max.set = 2048M

#rtrtrent可以接受/生成的最大连接数(`sockets`)
network.max_open_sockets.set = 1024

#同步HTTP请求的最大数量(由announce或scrape请求使用)默认值:`32`(`set_max_open_http`)
network.http.max_open.set = 128

#rtrtrent可以保持打开的最大打开文件数
network.max_open_files.set = 1024

#预加载一个文件。 默认值:`0`可能的值:`0`(关闭),`1`(Madvise),`2`(直接分页)。
pieces.preload.type.set = 1

#降低DNS超时。 默认值:`60`。
network.http.dns_cache_timeout.set = 25

建立下载目录

1
2
3
4
mkdir /mnt/video
mkdir /mnt/video/.session
mkdir /mnt/video/.watch
chmod -R 777 /mnt/video

下载目录可以自己修改:
修改第33行,将/mnt/video/download设置成你自己的默认下载目录

1
directory.default.set = /mnt/video/download

修改第39行,将/mnt/video/.session设置成你自己保存PT缓存文件的目录

1
session.path.set = /mnt/video/.session

修改第44行,将/mnt/video/.watch/设置成你自己PT存放种子的目录。(将种子存放到这个目录下,会自动下载种子文件)

1
schedule2 = watch_directory,5,5,load.start=/mnt/video/.watch/*.torrent

建立启动脚本

在root目录下建立一个文件rt.sh,将下面的代码复制进去,保存退出。

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
#!/bin/sh

case "$1" in
start)
echo -n "Starting rtorrent"
su - root -c "screen -A -m -d -S rtorrent /usr/bin/rtorrent" &
echo "."
;;
stop)
echo -n "Stopping rtorrent"
ppid=`ps ax | grep "/usr/bin/rtorrent" | grep -v grep | grep -v screen | awk '{ print $1 }'`
kill ${ppid}
echo "."
;;
restart)

echo -n "Restarting rtorrent"
ppid=`ps ax | grep "/usr/bin/rtorrent" | grep -v grep | grep -v screen | awk '{ print $1 }'`
kill ${ppid}
sleep 1
su - root -c "screen -A -m -d -S rtorrent /usr/bin/rtorrent" &
echo "."
;;
*)
echo "Usage: {start|stop|restart}" >&2
exit 1
;;
esac

exit 0

然后给这个脚本执行权限。

1
chmod +x ~/rt.sh

最后运行这个脚本

1
2
3
~/rt.sh start     #运行
~/rt.sh stop #停止
~/rt.sh restart #重新运行

根据你的需要运行脚本之行之后,就可以在浏览器里输入:ip地址/rt就可以正常访问rutorrent+rtorrent了。

后话:

添加在访问rutorrent时需要输入密码,才可以正常访问。

编辑/etc/apache2/sites-available/000-default.conf文件。在</VirtualHost>前面添加下面这些代码,保存退出。


1
2
3
4
5
6
7
<Directory /var/www/html/rt>
#设置密码
AuthType Basic
AuthName "Server"
AuthUserFile /var/www/.passwd
Require valid-user
</Directory>

设置用户名和密码

1
htpasswd -bc /var/www/.passwd 用户名 密码

上面的用户名和密码替换成自己要设置的用户和密码。

重启apache2服务

1
systemctl restart apache2

手机端用Transdroid访问和控制rtorrent.

首先要先下载Transdroid这个APP。怎么下载,我就不说了,各大应用商店都有得下。

添加服务器

选择add normal,custom server

服务器类型选rtorrent,其它根据自己的情况填写。

在高级设置里,SCGI挂载点设置成

1
/rt/plugins/rpc/rpc.php

添加RSS订阅.订阅的地址需要自己到PT站上去获取。

添加完之后的样子

效果展示,看中哪一个点一下,rtorrent就会自动下载了。

RSS利用正则自动过滤并下载,所需要的影片。

在订阅里选择RSS管理器

在RSS管理器里可以通过正则过滤到自己需要的电影,我设置的是2018年的电影,文件小于30G的就会自动下载。

1
/\[[1-9]{1}\*|\[[3-9]{1}[0-9]\.|\[[1-9]{3}\./

正则表达内容比较多,我这点东西只当是抛转引玉了。

下面还有可以实现的功能!

由于使用python和shell需要配置的地方太多,已不适合大多数同学使用了。具体的我就不说了。自己有兴趣的同学可以自己去研究。
1、 下载文件后,自动将文件分类。
2、 自动下载文件后,微信或邮件通知!

3、 硬盘快满时,自动删除已看过的电影。
4、 微信输入电影名,自动跳出电影百度网盘链接。

本文标题:debian下安装使用rtorrent+rutorrent下载PT神器

文章作者:Hank ZHU

发布时间:2018年09月27日 - 18:16

最后更新:2018年12月05日 - 19:08

原始链接:http://zealot.top/debian下安装使用rtorrent-rutorrent下载PT神器.html

许可协议: 署名-非商业性使用-禁止演绎 4.0 国际

如需转载请注明文章出处,并保留原文链接及作者。感谢您尊重别人的劳动成果!


-------------本文结束 感谢您的阅读-------------
-------------如果觉得这篇文章不错,可以请作者喝杯咖啡!-------------