系统环境

标题 版本 备注
系统版本 ubuntu 22.04.3 LTS (Jammy Jellyfish) -
内核版本 5.15.0-88-generic #98-Ubuntu SMP Mon Oct 2 15:18:56 UTC 2023 x86_64 x86_64 x86_64 GNU/Linux -
Aria2 v1.37.0 -

Aria2 简介

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

项目页面位于 https://aria2.github.io/

Aria2 安装

注意:以下操作都在 root 用户下执行

官方提供的安装文档:https://aria2.github.io/manual/en/html/README.html#how-to-build

1.安装必要的依赖:

1
apt install libgnutls28-dev nettle-dev libgmp-dev libssh2-1-dev libc-ares-dev libxml2-dev zlib1g-dev libsqlite3-dev pkg-config libgcrypt20-dev libexpat1-dev libssl-dev libcurl4-openssl-dev libevent-dev ca-certificates build-essential intltool libunistring-dev libp11-kit-dev -y

2.从 github 下载 aria2 源码包到服务器的 /usr/local/src/ 目录:

1
wget -O /usr/local/src/aria2-1.37.0.tar.gz https://github.com/aria2/aria2/releases/download/release-1.37.0/aria2-1.37.0.tar.gz

3.将下载下来的源码包解压至下载目录:

1
tar -zxf /usr/local/src/aria2-1.37.0.tar.gz -C /usr/local/src/

4.进入 aria2 解压目录,并配置编译参数:

1
cd /usr/local/src/aria2-1.37.0 && ./configure --prefix=/usr/local/aria2

5.编译及安装:

1
make -j $(nproc) && make install 

6.将可执行文件软链接到 /usr/bin 目录下:

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

7.在 aria2 安装目录下创建配置文件存放目录 etc:

1
mkdir /usr/local/aria2/etc

8.在 aria2 安装目录下创建 aria2.log 和 aria2.sessions 文件:

1
touch /usr/local/aria2/{aria2.log,aria2.session}

9.在创建的 aria2 配置文件文件目录 etc 下创建 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
cat << EOF > /usr/local/aria2/etc/aria2.conf
# Base Options
dir=/data/alist/downloads # 设置下载文件保存路径
log=/usr/local/aria2/aria2.log # 指定日志文件路径
input-file=/usr/local/aria2/aria2.sessions # 指定输入文件路径
save-session=/usr/local/aria2/aria2.sessions # 设定保存会话信息文件路径
save-session-interval=60 # 保存会话信息的时间间隔
force-save=true # 强制保存会话信息
log-level=error # 日志记录级别为错误级别
max-concurrent-downloads=5 # 最大同时下载文件数
continue=true # 断点续传
max-overall-download-limit=0 # 总体下载速度限制
max-overall-upload-limit=50K # 总体上传速度限制
max-upload-limit=20 # 单个任务上传速度限制

# HTTP/FTP Options
connect-timeout=120 # 连接超时时间
lowest-speed-limit=10K # 最低速度限制
max-connection-per-server=10 # 单个服务器最大连接数
max-file-not-found=2 # 最大文件未找到数
min-split-size=1M # 最小分片大小
split=5 # 分片数
check-certificate=false # 不检查证书
http-no-cache=true # 禁用HTTP缓存

# BT/PT Options
bt-enable-lpd=true # 启用BT/LPD功能
follow-torrent=true # 跟踪BT任务
enable-dht6=false # 禁用DHT6
bt-seed-unverified # 未验证的BT种子
bt-hash-check-seed # 检查BT种子哈希
bt-remove-unselected-file # 移除未选择的文件
bt-request-peer-speed-limit=100K # BT请求对等速度限制
seed-ratio=0.0 # 种子分享比率

# RPC Options
enable-rpc=true # 启用RPC
pause=false # 不暂停
rpc-allow-origin-all=true # 允许所有来源
rpc-listen-all=true # 监听所有地址
rpc-save-upload-metadata=true # 保存上传元数据
rpc-secure=false # 禁用RPC安全模式

# Advanced Options
daemon=true # 启用守护进程模式
disable-ipv6=true # 禁用IPv6
enable-mmap=true # 启用内存映射
file-allocation=falloc # 文件分配方式为falloc
max-download-result=120 # 最大下载结果数
force-sequential=true # 强制顺序下载
parameterized-uri=true # 启用参数化URI
EOF

10.创建下载文件存放目录:

1
mkdir -p /data/alist/downloads

11.创建启动脚本文件:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
cat << 'EOF' > /lib/systemd/system/aria2.service
[Unit]
Description=Aria2c download manager
After=network.target syslog.target
Wants=network.target

[Service]
Type=forking
ExecStart=/usr/bin/aria2c --console-log-level=warn --enable-rpc --rpc-listen-all --conf-path=/usr/local/aria2/etc/aria2.conf
ExecReload=/usr/bin/kill -HUP $MAINPID

[Install]
WantedBy=multi-user.target
EOF

12.执行命令加载 aria2.srevice

1
systemctl daemon-reload

13.启动 aria2.service 并将其设置为开机启动:

1
systemctl enable --now aria2.service

14.执行 aria2c –version 确保支持 https:

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
root@ubuntuhome:/usr/local/src/aria2-1.36.0# aria2c --version
aria2 version 1.36.0
Copyright (C) 2006, 2019 Tatsuhiro Tsujikawa

This program is free software; you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by
the Free Software Foundation; either version 2 of the License, or
(at your option) any later version.

This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.

** Configuration **
Enabled Features: Async DNS, BitTorrent, Firefox3 Cookie, GZip, HTTPS, Message Digest, Metalink, XML-RPC, SFTP
Hash Algorithms: sha-1, sha-224, sha-256, sha-384, sha-512, md5, adler32
Libraries: zlib/1.2.11 libxml2/2.9.13 sqlite3/3.37.2 GnuTLS/3.7.3 nettle GMP/6.2.1 c-ares/1.18.1 libssh2/1.10.0
Compiler: gcc 11.3.0
built by x86_64-pc-linux-gnu
on Feb 1 2023 09:17:14
System: Linux 5.15.0-43-generic #46-Ubuntu SMP Tue Jul 12 10:30:17 UTC 2022 x86_64

Report bugs to https://github.com/aria2/aria2/issues
Visit https://aria2.github.io/