记一次对Aria2的折腾

记一次对Aria2的折腾

七月 12, 2021

原创教程,禁止转载

简单介绍

Aria2作为一个多线程下载器,速度自然不必说,它支持的协议有:HTTP/HTTPS、FTP、SFTP、 BitTorrent 和 Metalink 协议。

首先,看看我的最终成果吧

最终成果

安装Aria2

首先当然是安装Aria2,这和在linux下安装别的程序差不多,就是配置、编译、安装嘛~

获取源代码

去Github找最新版的链接,项目链接:Aria2

1
2
3
4
5
6
7
8
# 下载
wget https://github.com/aria2/aria2/releases/download/release-1.35.0/aria2-1.35.0.tar.gz
# 解压
# .tar.gz 格式用 -zxvf
# .tar.xz 格式用 -xvf
tar -zxvf aria2-1.35.0.tar.gz
# 进入文件夹
cd aria2-1.35.0

配置&编译&安装

1
2
3
4
5
6
7
8
# 创建安装文件夹
sudo mkdir -p /usr/local/aria2
# 配置安装目录
./configure --prefix=/usr/local/aria2
# 编译 没有安装编译器的自行百度
make
# 安装
make install

Aria2的配置

配置文件

/etc/aria2创建目录,里面写入一些配置

1
2
sudo mkdir -p /etc/aria2
sudo vim /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
# 设置的RPC授权令牌, 取代 --rpc-user 和 --rpc-passwd 选项
# token可以自己随意设置
rpc-secret=*********
# 下面是ssl证书,可以先不管
# rpc-private-key=
# rpc-certificate=

#允许rpc
enable-rpc=true
#允许所有来源, web界面跨域权限需要
rpc-allow-origin-all=true
#允许外部访问,false的话只监听本地端口
rpc-listen-all=true
#RPC端口, 仅当默认端口被占用时修改
rpc-listen-port=13443

#文件保存路径, 默认为当前启动位置
dir=**************
#从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
#在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/etc/aria2/aria2.session
#定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
#save-session-interval=60
force-save=true
#log=/aria2log
#log-level=error

#最大同时下载数(任务数), 路由建议值: 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
file-allocation=prealloc

按需修改,主要是这两个:rpc-secretdir

ESC :wq保存退出

创建会话文件

位置在input-filesave-session处配置

1
sudo touch /etc/aria2/aria2.session

环境变量

就一个执行程序,没必要加入环境变量,创建软链接即可:

1
sudo ln -s /usr/local/aria2/bin/aria2c /usr/bin/aria2c

Aria2常见命令

一般下载链接直接接在后面即可

1
2
aria2c \ 
http://autopatchcn.yuanshen.com/client_app/Android/20210609_2758cc87f80c2355/yuanshen_1.6.0_mihoyo.apk

重命名-o

1
2
aria2c -o 原神.apk \
http://autopatchcn.yuanshen.com/client_app/Android/20210609_2758cc87f80c2355/yuanshen_1.6.0_mihoyo.apk

分段下载-x 1~5

1
2
aria2c -o 原神.apk -x 4 \ 
http://autopatchcn.yuanshen.com/client_app/Android/20210609_2758cc87f80c2355/yuanshen_1.6.0_mihoyo.apk

指定连接数-s

1
2
aria2c -o 原神.apk -x 4 -s 2 \ 
http://autopatchcn.yuanshen.com/client_app/Android/20210609_2758cc87f80c2355/yuanshen_1.6.0_mihoyo.apk

同时下载多个文件时 -j

1
2
aria2c -o 原神.apk -x 4 -s 2 -j 10 \ 
http://autopatchcn.yuanshen.com/client_app/Android/20210609_2758cc87f80c2355/yuanshen_1.6.0_mihoyo.apk

断点续传-c

1
2
aria2c -o 原神.apk -x 4 -s 2 -j 10 -c \ 
http://autopatchcn.yuanshen.com/client_app/Android/20210609_2758cc87f80c2355/yuanshen_1.6.0_mihoyo.apk

验证文件--checksum=md5=*******

1
2
aria2c -o 原神.apk -x 4 -s 2 -j 10 -c --checksum=md5=这里是文件的MD5值 \
http://autopatchcn.yuanshen.com/client_app/Android/20210609_2758cc87f80c2355/yuanshen_1.6.0_mihoyo.apk

安装WebUI

上面一串使用方法是不是劝退了一堆Linux新手?

没关系,已经有大佬为我们写好了图形界面,来吧,安装

这里使用的是AriaNg,感谢mayswind大佬拯救我等菜鸟!

启动Aria2RPC

首先启动Aria2远程调用,让AriaNg能够调用它

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

这样Aria2就会监听一个端口(你上面设置的)

安装AriaNg

Github项目地址:AriaNg

AriaNg是纯前端项目,安装炒鸡简单呐

前提是你需要Web服务器,比如我用的是Nginx

1
2
3
4
5
6
7
8
# 创建目录
sudo mkdir -p /var/www/ariang/
cd /var/www/ariang/
# 下载,最新版去Github找
sudo wget https://github.com/mayswind/AriaNg/releases/download/1.2.2/AriaNg-1.2.2.zip
# 解压,删除zip文件
sudo unzip AriaNg-1.2.2.zip
sudo rm AriaNg-1.2.2.zip

安装完成!

配置Nginx

/etc/nginx/conf.d/创建ariang.conf,当然,名称任取

1
sudo vim /etc/nginx/conf.d/ariang.conf

内容如下(这里是http的,https后面在讲)

1
2
3
4
5
6
7
8
9
server {
listen 80;
server_name ng.pi.skyone.host; # 改成你的域名/IP
root /var/www/ariang; # 刚刚创建的目录

location / {
index index.html index.htm index.php;
}
}

重启Nginx

1
sudo systemctl restart nginx

完成,快打开你的域名或IP访问吧~

配置AriaNg

打开你的域名或IP你应该看到:

配置AriaNg01

不要尝试打开我的这个域名,这个是部署在专有虚拟网络里的,你打不开的!

不要尝试打开我的这个域名,这个是部署在专有虚拟网络里的,你打不开的!

不要尝试打开我的这个域名,这个是部署在专有虚拟网络里的,你打不开的!

当然,目前你还没有配置SSL,链接左边也没有小锁,这个下文再教

配置AriaNg02

填写如下信息,你的可能和我稍有不同

地址填你安装Aria2的设备的域名或IP,填写端口(你上面设置的)

协议选HTTP,我的配置了HTTPS所以不一样

Aria2设置了密码就填写密钥

配置AriaNg03

刷新以应用修改

完成

本教程到此基本可以结束了,后面的主要针对想配置HTTPS的强迫症患者

使用HTTPS

想使用HTTPS,你需要域名和对应的证书,这部分内容不在本教程范围内,如果你没有了解过相关内容建议先百度或放弃HTTPS,这并不影响使用!

继续看下去的想必都有Linux基础,一些基本的常识我就跳过了

现在假设你已经有了域名和证书,证书放在/etc/nginx/cert文件夹里

为了方便(懒)我以我的域名为例(反正你们打不开~~)

修改Aria2配置

指定证书位置即可

1
sudo vim /etc/aria2/aria2.conf

只需要修改这两项:

1
2
rpc-private-key=/etc/nginx/cert/ng.pi.skyone.host.key # 证书私钥
rpc-certificate=/etc/nginx/cert/ng.pi.skyone.host.pem # 证书公钥

查看Aria2进程,kill掉,重启

1
2
3
sudo ps -ef | grep aria2
sudo kill 对应的pid
sudo aria2c --conf-path=/etc/aria2/aria2.conf -D

修改Nginx配置

就是配置SSL嘛?

没有这么简单,这里稍微有一个小坑:

HTTPS浏览器之认443端口,而我们不可能让Aria2独占这么宝贵的443端口,因此只能反向代理

而且我们完全可以让AriaNg和Aria2RPC使用同一个域名,这样能少配置一个SSL,还能避免跨域问题,嘿嘿嘿我真机智~

修改/etc/nginx/conf.d/ariang.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
server {
listen 443 ssl;
server_name ng.pi.skyone.host; # 你的域名
root /var/www/ariang;

ssl_certificate /etc/nginx/cert/ng.pi.skyone.host.pem; # 证书私钥
ssl_certificate_key /etc/nginx/cert/ng.pi.skyone.host.key; # 证书公钥


ssl_session_timeout 5m;
ssl_ciphers ECDHE-RSA-AES128-GCM-SHA256:ECDHE:ECDH:AES:HIGH:!NULL:!aNULL:!MD5:!ADH:!RC4;
ssl_protocols TLSv1 TLSv1.1 TLSv1.2;
ssl_prefer_server_ciphers on;

location /jsonrpc {
proxy_pass http://localhost:13443/jsonrpc;
proxy_redirect http:// https://;
proxy_set_header Host $host:443;
proxy_set_header Upgrade $http_upgrade;
proxy_set_header Connection upgrade;
proxy_set_header Accept-Encoding gzip;
}

location / {
index index.html index.htm index.php;
}
}
1
2
# 重启Nginx
sudo systemctl restart nginx

配置AriaNg

这个和之前一样,照着我的填吧、、

配置AriaNg03

收工

好啦,去享受吧

与这篇文章相关的内容,例如:

  • 白嫖免费泛域名证书
  • Zerotier组网

留待以后再写,不说了,学期末,学高数去了、、