0%

玩转树莓派02——搭建下载机

  关于 Aria2 请自行 Google,这里只讲使用。

更新

  使用 Docker 安装 Aria2:

1
2
3
4
git clone https://github.com/LJason77/docker-aria2-with-webui.git
cd docker-aria2-with-webui/
docker build -t aria2 .
docker run -d --name aria2 --restart always --network host -v /mnt/downloads:/data aria2

  具体用法可以查看项目:docker-aria2-with-webui

旧日博客

安装 Aria

  由于仓库里的 aria2 版本太过于旧,所以我这里手动编译安装:

  首先获取源码:

1
git clone https://github.com/aria2/aria2.git

  然后安装相关的依赖:

1
apt-get install -y libgnutls-deb0-28 nettle-dev libgmp-dev libssh2-1-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev pkg-config libgpg-error-dev libgcrypt20-dev libssl-dev libexpat1-dev libcppunit-dev autoconf automake autotools-dev autopoint libtool

  生成构建程序所需的配置脚本和其他文件:

1
autoreconf -i

  然后开始配置 aria2:

1
./configure

  配置完成后,开始编译 aria2:

1
make

  编译完成之后,可执行文件位于 src/aria2c,然后运行单元测试:

1
make check

  结束之后就可以安装了:

1
make install

配置 aria2

  创建 Aria2 的配置文件夹:

1
mkdir /etc/aria2

  创建 session 和配置文件:

1
2
touch /etc/aria2/aria2.session
touch /etc/aria2/aria2.conf

  编辑 /etc/aria2/aria2.conf

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
## 文件保存相关 ##

# 文件保存目录
dir=/mnt/storage/download
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=32M
# 断点续传
continue=true

# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
#file-allocation=falloc

## 下载连接相关 ##

# 最大同时下载任务数, 运行时可修改, 默认:5
#max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=15
# 整体下载速度限制, 运行时可修改, 默认:0(不限制)
#max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0(不限制)
#max-download-limit=0
# 整体上传速度限制, 运行时可修改, 默认:0(不限制)
#max-overall-upload-limit=0
# 单个任务上传速度限制, 默认:0(不限制)
#max-upload-limit=0
# 禁用IPv6, 默认:false
disable-ipv6=true

# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=10

## 进度保存相关 ##

# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
# 在Aria2退出时保存错误的、未完成的下载任务到会话文件
save-session=/etc/aria2/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=60

## RPC相关设置 ##

# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许外部访问, 默认:false
rpc-listen-all=true
# RPC端口, 仅当默认端口被占用时修改
# rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=<TOKEN>

## BT/PT下载相关 ##

# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
#follow-torrent=true
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
user-agent=Transmission/2.77
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true

  然后执行:

1
aria2c --conf-path=/etc/aria2/aria2.conf -D

  没有任何提示则表示成功。接下来添加开机自启:

1
touch /etc/init.d/aria2c

  添加:

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
#!/bin/sh
### BEGIN INIT INFO
# Provides: aria2c
# Required-Start: $network $local_fs $remote_fs
# Required-Stop: $network $local_fs $remote_fs
# Default-Start: 2 3 4 5
# Default-Stop: 0 1 6
# Short-Description: aria2c RPC init script.
# Description: Starts and stops aria2 RPC services.
### END INIT INFO

USER=root
RETVAL=0

case "$1" in
start)
echo "Starting service Aria2..."
aria2c --conf-path=/etc/aria2/aria2.conf -D
echo "Start service done."
;;
stop)
echo "Stoping service Aria2..."
killall aria2c
echo "Stop service done."
;;
esac

exit $RETVAL

  执行:

1
2
3
chmod +x /etc/init.d/aria2c
apt-get -y install chkconfig
chkconfig --add aria2c

安装 nginx

  Nginx 是一个非常轻量级的HTTP服务器,非常适合放在树莓派上作为 Aria2 的 Web 管理。安装 Nginx:

1
apt-get -y install nginx

  下载第三方的程序:  

1
2
rm -rf /var/www/html
git clone https://github.com/ziahamza/webui-aria2.git /var/www/html

  启动 nginx:

1
/etc/init.d/nginx start

  添加开机自启,编辑 /etc/rc.local,添加一行:

1
/etc/init.d/nginx start

  在浏览器中输入树莓派的IP即可使用 Aria2 下载了。

  现在只要把链接、种子在上学前、上班前、睡觉前扔进去,回来就下载好了。如果下载大家伙,完全不像以前要挂机一整天。想想看,电脑功率多大,根据 RaspberryPi,三代的树莓派额定功率才4.0W,超省电。

用直链下载百毒云资源(已失效)

  万恶的百毒云不交钱就限速下载真是受够了,本来想申请 PCS 来获得 API 端口用来不限速下载。可惜人家早已看穿你的小心思,百毒早在13年就关闭的 PCS 的注册,但老用户则不受影响(关闭公告上原因说了一大堆,其实就是大家都拿来做不限速,百毒没法捞钱而已)。但是天无绝人之路,就因为老用户不受影响,所以我辗转终于找到了一个 PCS 。

  百度网盘直链系统

  进去登陆百度云,之后在 云盘-我的应用数据-hgf_blog 中放入文件,页面中就会出现列表,点击文件即可获得直链,然后用 Aria2 下载即可。

用 Tampermonkey 下载百度云资源

  首先在 chrome 浏览器安装 Tampermonkey 插件,然后再安装 百度网盘直接下载助手,这样就可以了,教程可以参照里面的说明。

  打开 百度云,选中一个文件,将会出现一个 下载助手,选择 外链下载-显示链接-编辑-单行,再全选复制链接,粘贴到 aria2 里面下载即可。

  注意:文件名是中文的,在 aria2 里面下载会乱码,可以在百度云里重命名或者在链接后面加上 –out=文件名,具体在 Aria2 下载的界面都有说明。

定时限速

  我白天在学校,晚上才回家。为了不影响上网,所以我就想白天全速下载,晚上定时限速。编辑 /var/spool/cron/crontabs/root,添加:

1
2
0 19 * * * curl http://127.0.0.1:6800/jsonrpc -H "Content-Type: application/json" -H "Accept: application/json" --data '{"jsonrpc":"2.0","id":1,"method":"aria2.changeGlobalOption","params":[{"max-overall-download-limit":"300K","max-overall-upload-limit":"10K"}]}'
30 23 * * * curl http://127.0.0.1:6800/jsonrpc -H "Content-Type: application/json" -H "Accept: application/json" --data '{"jsonrpc":"2.0","id":1,"method":"aria2.changeGlobalOption","params":[{"max-overall-download-limit":"0","max-overall-upload-limit":"0"}]}'

  第一行表示在 19:00 的时候开始限制下载速度为300K,上传限速为10K;第二行表示在 23:30 的时候开始,下载和上传速度均为0(0为不限速)。

如果你喜欢我的博客,那就请我吃冰淇淋吧(づ ̄3 ̄)づ╭❤~

欢迎关注我的其它发布渠道