使用树莓派搭建Aria2下载服务器

使用树莓派搭建Aria2下载服务器

二月 25, 2021

Aria2 - 超快速下载实用程序(简介)

aria2是用于下载文件的实用程序。支持的协议是HTTP(S),FTP,SFTP,BitTorrent和Metalink。 aria2可以从多个来源/协议下载文件,并尝试利用最大下载带宽。它支持同时从HTTP(S)/ FTP / SFTP和BitTorrent下载文件,而从HTTP(S)/ FTP / SFTP下载的数据上传到BitTorrent群。使用Metalink的块校验和,aria2在下载BitTorrent之类的文件时会自动验证数据块。

GitHub项目地址

环境简介

本次使用的树莓派环境是:基于Debian的64位操作系统,详情如下:

环境简介

安装Aria2并配置

我们直接使用软件源安装:

sudo apt install aria2

接下来创建配置文件:

mkdir -p ~/.config/aria2/ #创建存放配置的文件夹

nano ~/.config/aria2/aria2.config #添加一个aria2的配置文件(注意不要用sudo)

在这个文件中写入我们自己的配置:

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
#后台运行
daemon=true
#用户名
#rpc-user=user
#密码
#rpc-passwd=passwd
#设置加密的密钥
rpc-secret=secret
#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#是否启用https加密,启用之后要设置公钥,私钥的文件路径
#rpc-secure=true
#启用加密设置公钥
#rpc-certificate=/home/pi/.config/aria2/example.crt
#启用加密设置私钥
#rpc-private-key=/home/pi/.config/aria2/example.key
#允许外部访问,false的话只监听本地端口
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
#最大同时下载数(任务数), 路由建议值: 3
max-concurrent-downloads=5
#断点续传
continue=true
#同服务器连接数
max-connection-per-server=5
#最小文件分片大小, 下载线程数上限取决于能分出多少片, 对于小文件重要
min-split-size=10M
#单文件最大线程数, 路由建议值: 5
split=10
#下载速度限制
max-overall-download-limit=0
#单文件速度限制
max-download-limit=0
#上传速度限制
max-overall-upload-limit=0
#单文件速度限制
max-upload-limit=0
#断开速度过慢的连接
#lowest-speed-limit=0
#验证用,需要1.16.1之后的release版本
#referer=*
#文件保存路径, 默认为当前启动位置(这里我的是下载到用户的Downloads文件夹下,可以根据需要修改)
dir=/media/pi/Downloads
#文件缓存, 使用内置的文件缓存, 如果你不相信Linux内核文件缓存和磁盘内置缓存时使用, 需要1.16及以上版本
#disk-cache=0
#另一种Linux文件缓存方式, 使用前确保您使用的内核支持此选项, 需要1.15及以上版本(?)
#enable-mmap=true
#文件预分配, 能有效降低文件碎片, 提高磁盘性能. 缺点是预分配时间较长
#所需时间 none < falloc ? trunc << prealloc, falloc和trunc需要文件系统和内核支持
file-allocation=prealloc
#不进行证书校验
check-certificate=false
#保存下载会话
save-session=/home/pi/.config/aria2/aria2.session
input-file=/home/pi/.config/aria2/aria2.session
#断电续传
save-session-interval=60

注意我这里的下载路径是/media/pi/Downloads,可以根据自己的情况修改;并且我这里设置的rpc密钥是secret。这些设置可以在后面以图形化的方式修改。

配置完成后,还要创建该会话空白文件:

touch /home/pi/.config/aria2/aria2.session

启动并测试Aria2是否成功启动:

aria2c --conf-path=/home/pi/.config/aria2/aria2.config

可以使用ps aux|grep aria2查看是否有进程启动,如果有显示则说明启动成功了。

设置Aria服务和开机启动

创建并编辑aria.service文件 :

sudo nano /lib/systemd/system/aria.service

在该文件写入以下内容:

1
2
3
4
5
6
7
8
9
10
11
[Unit]
Description=Aria2 Service
After=network.target

[Service]
User=pi
Type=forking
ExecStart=/usr/bin/aria2c --conf-path=/home/pi/.config/aria2/aria2.config

[Install]
WantedBy=multi-user.target

重新载入服务,并设置开机启动:

sudo systemctl daemon-reload sudo systemctl enable aria

重启 之后我们检查下aria服务的状态:systemctl status aria

重启之后查看服务状态

安装Aria2的Web可视化前端

首先安装nginx和git:

sudo apt install nginx git

由于aria2的前端界面有好几种,这里就暂时选用AriaNg做管理界面。

可以在这里下载到最新的版本:AriaNg

点击即可下载

进去之在第二个zip包上右键,选择复制链接地址:

下载最新版本

接下来回到ssh终端,执行下载任务,并重命名为aria-ng:

wget 你复制的链接 -O aria-ng.zip

解压:

unzip aria-ng.zip -d aria-ng

将aria-ng放到nginx的/var/www/html/目录下,然后设置开机启动nginx:

sudo mv aria-ng /var/www/html/

sudo systemctl enable nginx

用浏览器访问树莓派IP下的aria-ng,即:http://你的树莓派地址/aria-ng
然后在系统设置点击AriaNg设置 –> 全局 –> 设置语言为中文 –> 点击RPC–>修改为 rpc 密钥:secret

这样就配置完我们的AriaNg的Web界面啦。在设置里我们就可以同图形化的方式进行设置各个具体的参数(如果你需要的话)。

浏览器插件

各个浏览器相关的插件很多,以火狐为例可以直接在附加组建里搜索Aria2,比如Aria2下载器集成组件

添加完后会提示设置服务器,我们只需要保持和前面的AriaNg的设置一致即可:

全部设置完成之后我们会发现浏览器多出了一个附加组件,可以根据开关决定是否调用树莓派的Aria2下载服务器,点击详情可以直接进入我们的AriaNg的Web控制界面。

值得注意的是,从详情进入后可能需要再次配置一次AriaNg页面(浏览器缓存的原因),填写的数据和配置AriaNg的方式一致。

实际效果

当点击下载按钮时:

点击下载就会调用树莓派的Aria2进行下载,如果不想下载的话可以点击 另存为 转到浏览器本地下载。

转到AriaNg,可以看到我们的下载已经开始啦。

BT下载速度慢问题

有时候我们会发现,使用aria2没有迅雷下载快,甚至下不动,原因是迅雷有自己的服务器,而Aria2没有加速服务器,有些种子一直没几个人上传导致只有几KB的速度甚至完全没速度,这种情况下该怎么办呢?
给Aria2添加Tracker,让Aria2不只是从DHT网络或者种子文件中存储的Tracker信息,从而找到更多的下载源。

Tracker服务器

比如这里汇总了20个常用的最优Tracker:(已经用逗号分割)

1
2
bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.open-internet.nl:6969/announce,udp://tracker.skyts.net:6969/announce,udp://tracker.piratepublic.com:1337/announce,udp://tracker.opentrackr.org:1337/announce,udp://9.rarbg.to:2710/announce,udp://retracker.coltel.ru:2710/announce,udp://pubt.in:2710/announce,udp://public.popcorn-tracker.org:6969/announce,udp://z.crazyhd.com:2710/announce,udp://wambo.club:1337/announce,udp://tracker4.itzmx.com:2710/announce,udp://tracker1.wasabii.com.tw:6969/announce,udp://tracker.zer0day.to:1337/announce,udp://tracker.xku.tv:6969/announce,udp://tracker.vanitycore.co:6969/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://inferno.demonoid.pw:3418/announce,udp://open.facedatabg.net:6969/announce,udp://mgtracker.org:6969/announce

原创文章,转载请注明出处。