Aria2是一个开源的多线程下载工具, 它支持HTTP / HTTPS,FTP,SFTP, BitTorrent和Metalink。可以使用内置的 JSON-RPC和XML-RPC接口进行操作。
想了解更多关于aria2的信息,可以前往官网查看https://aria2.github.io/
注意:本次安装基于树莓派3B(Raspbian GNU/Linux 10 ),系统用户为pi,其他系统可能不兼容。
一、首先更新一下系统软件
sudo apt update
sudo apt upgrade
二、安装Aria2
这里我们直接使用apt进行安装
sudo apt install aria2
安装完成后,测试是否安装成功
aria2c -v
执行以上命令的输出如下
root@raspberrypi:~# aria2c -v
aria2 版本 1.34.0
Copyright (C) 2006, 2017 Tatsuhiro Tsujikawa
本程序为自由软件;您可自由再版或修改它,惟须遵守 GNU 通用公共许可证,
第 2 版或更新版本(依您所愿)的条款,以自由软件基金会发布的版本为准。
我们本着希望有用的态度发行此软件,但 *从未做出任何保证*,甚至不暗示对
于适销性或对某一特定用途的适用性的保证。参见 GNU 通用公共许可证以获取
更多信息。
** 配置 **
已开启的特性: Async DNS, BitTorrent, Firefox3 Cookie, GZip, HTTPS, Message Digest, Metalink, XML-RPC, SFTP
哈希算法: sha-1, sha-224, sha-256, sha-384, sha-512, md5, adler32
库: zlib/1.2.11 libxml2/2.9.4 sqlite3/3.27.2 GnuTLS/3.6.6 nettle GMP/6.1.2 c-ares/1.14.0 libssh2/1.8.0
编译器: gcc 8.2.0
built by arm-unknown-linux-gnueabihf
on Feb 28 2019 15:36:13
系统: Linux 4.19.97-v7+ #1294 SMP Thu Jan 30 13:15:58 GMT 2020 armv7l
报告问题至 https://github.com/aria2/aria2/issues
访问 https://aria2.github.io/
当然,也可以从官网下载源文件进行编译,或者是下载编译好的二进制文件
官方下载链接: https://github.com/aria2/aria2/releases
三、配置文件设置
首先在/home/pi 目录下创建.aria2文件夹用于存放配置文件
cd /home/pi
mkdir .aria2
接着进入.aria2文件夹,创建两个配置文件
touch aria2.conf
touch aria2.session
修改aria2.conf,将以下配置粘到文件中
nano aria2.conf
配置文本如下,删除配置前的#注释则表示启用该条配置
## RPC设置 ##
# 启用RPC, 默认:false
enable-rpc=true
# 接受所有远程请求, 默认:false
rpc-allow-origin-all=true
# 允许外部访问, 默认:false
rpc-listen-all=true
# RPC监听端口, 端口被占用时可以修改, 默认:6800
rpc-listen-port=6800
# 设置 RPC 授权密钥
rpc-secret=123456
# 是否启用 RPC 服务的 SSL/TLS 加密
# 启用加密后 RPC 服务必须使用 https 或者 wss 协议连接
# 一般不建议开启,建议使用 web server 反代,比如 Nginx、Caddy ,灵活性更强。
#rpc-secure=false
# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件(.pem/.crt)
#rpc-certificate=/config/xxx.pem
# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件(.key)
#rpc-private-key=/config/xxx.key
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
## 文件保存设置 ##
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/home/pi/Download
# 启用磁盘缓存, 0为禁用缓存,默认:16M
# 本地路由器或 NAS 建议在有足够的内存空闲情况下设置为适当的大小,以减少磁盘 I/O 延长硬盘寿命。
disk-cache=64M
# 文件预分配方式,默认:prealloc
# 机械硬盘建议设置为 falloc ,可减少磁头跳动延长寿命。
# 固态硬盘建议设置为 none ,可减少数据写入量延长寿命。
# 若无法下载,提示 fallocate failed.cause:Operation not supported 则说明不支持,请设置为 none
file-allocation=falloc
# 断点续传
continue=true
# 获取服务器文件时间,默认:false
remote-time=true
## 进度保存设置 ##
# 从会话文件中读取下载任务
input-file=/hime/pi/.aria2/aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/home/pi/.aria2/aria2.session
# 定时保存会话时间(秒), 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=1
# 自动保存任务进度时间(秒),0为退出时才保存,默认:60
auto-save-interval=1
# 强制保存会话, 即使任务已经完成, 默认:false
# 开启后会在任务完成后依然保留 .aria2 文件,文件被移除且任务存在的情况下重启后会重新下载。
# 关闭后已完成的任务列表会在重启后清空。
# PT 下载持续做种需求建议开启,防止意外重启后列表被清空。
force-save=false
## 下载连接设置 ##
# 文件未找到重试次数,默认:0
# 重试时同时会记录重试次数,所以也需要设置 --max-tries 这个选项
max-file-not-found=5
# 最大尝试次数,0表示无限,默认:5
max-tries=0
# 重试等待时间(秒), 默认:0
retry-wait=10
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1 (官方原版最大限制为 16)
max-connection-per-server=16
# 单个任务最大线程数, 添加时可指定, 默认:5
split=64
# 最低下载速度限制。当下载速度低于或等于此选项的值时关闭连接(特殊版本会重连),此选项不影响 BT下载。单位 K 或 M ,默认:0
#lowest-speed-limit=1M
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为 15MiB 则使用一个来源下载
min-split-size=4M
# 整体下载速度限制, 运行时可修改, 默认:0
max-overall-download-limit=0
# 单个任务下载速度限制, 默认:0
max-download-limit=0
# 禁用IPv6, 默认:false
#disable-ipv6=true
# 支持GZip,默认:false
http-accept-gzip=true
# URI复用,默认: true
reuse-uri=false
# 禁用 netrc 支持,默认:flase
no-netrc=true
# 允许覆盖,当相关控制文件不存在时从头开始重新下载。默认:flase
allow-overwrite=false
# 文件自动重命名,此选项仅在HTTP(S)/ FTP下载中有效。新文件名在名称之后扩展名之前加上一个点和一个数字(1..9999)。默认:true
auto-file-renaming=true
# 使用 UTF-8 处理 Content-Disposition ,默认:false
content-disposition-default-utf8=true
# 最低 TLS 版本,可选 TLSv1.1、TLSv1.2、TLSv1.3 默认:TLSv1.2
#min-tls-version=TLSv1.2
## BT/PT下载设置 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true,可选:false|mem
follow-torrent=true
# BT监听端口(TCP), 默认:6881-6999
listen-port=51413
# DHT网络监听端口(UDP), 默认:6881-6999
dht-listen-port=51413
# DHT(IPv4)文件
dht-file-path=/root/.aria2/dht.dat
# DHT(IPv6)文件
dht-file-path6=/root/.aria2/dht6.dat
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=true
# 打开IPv6 DHT功能, PT需要禁用
# 在没有 IPv6 的环境中不建议开启,否则会导致 DHT 功能异常。
enable-dht6=false
# 本地节点查找, PT需要禁用, 默认:false
bt-enable-lpd=true
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=true
# 单个种子最大连接数,0为不限制,默认:55
bt-max-peers=0
# 期望下载速度,Aria2会临时提高连接数以提高下载速度,单位K或M。默认:50K
bt-request-peer-speed-limit=10M
# 全局最大上传速度限制, 运行时可修改, 默认:0
max-overall-upload-limit=5M
# 单个任务上传速度限制, 默认:0
max-upload-limit=0
# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=1.0
# 最小做种时间(分钟)。此选项设置为0时,将在BT任务下载完成后不进行做种。
seed-time=0
# 做种前检查文件哈希, 默认:true
bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=false
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
# 加载已保存的元数据文件,默认:false
bt-load-saved-metadata=true
# 删除未选择文件,默认:false
bt-remove-unselected-file=true
# 保存上传的种子,默认:true
rpc-save-upload-metadata=true
# BT强制加密, 默认: false
# 启用后将拒绝旧的 BT 握手协议并仅使用混淆握手及加密。有一定的防版权投诉与迅雷吸血效果。
# 此选项相当于后面两个选项(bt-require-crypto=true, bt-min-crypto-level=arc4)的快捷开启方式,但不会修改这两个选项的值。
bt-force-encryption=true
# BT加密需求,默认:false
# 启用后拒绝与旧的 BitTorrent 握手协议(\19BitTorrent protocol)建立连接,始终使用混淆处理握手。
#bt-require-crypto=true
# BT最低加密等级,可选:plain(明文),arc4(加密),默认:plain
#bt-min-crypto-level=arc4
# 客户端伪装
user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_4) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/81.0.4044.129 Safari/537.36 Edg/81.0.416.68
# PT需要保持 user-agent 和 peer-agent 两个参数一致。即注释上面这行,然后取消注释下面的相关选项。
#user-agent=qBittorrent/4.2.5
peer-agent=qBittorrent/4.2.5
peer-id-prefix=-qB4250-
#----------------------------------
#user-agent=Transmission 2.94
#peer-agent=Transmission 2.94
#peer-id-prefix=-TR2940-
#----------------------------------
#user-agent=Deluge 2.0.3
#peer-agent=Deluge 2.0.3
#peer-id-prefix=-DE2030-
#----------------------------------
#user-agent=μTorrent 3.5.5
#peer-agent=μTorrent 3.5.5
#peer-id-prefix=-UT355W-
#----------------------------------
#user-agent=μTorrent Mac 1.8.7
#peer-agent=μTorrent Mac 1.8.7
#peer-id-prefix=-UM1870-
## BitTorrent trackers ##
bt-tracker=
为确保万无一失,请将.aria2目录所有者设为pi
chown -R pi:pi~/.aria2/
四、测试功能是否正常
接下来测试配置文件是否正常
aria2c --conf-path=~/.aria2/aria2.conf
没有报错则说明运行成功,接着Ctrl+C结束运行
五、设置开机自启
本次使用的是树莓派,系统是基于debian的Raspbian,设置开机自启的方法如下:
创建systemctl service文件
sudo nano /lib/systemd/system/aria2.service
输入以下配置文本,注意[Service]下面的User和--conf-path,这里使用的用户为pi,配置文件位于/home/pi/.aria2/aria2.conf
[Unit]
Description=Aria2 Service
After=network.target
[Service]
User=pi
ExecStart=/usr/bin/aria2c --conf-path=/home/pi/.aria2/aria2.conf
[Install]
WantedBy=default.target
重载服务并设置开机启动
sudo systemctl daemon-reload
sudo systemctl enable aria2
启动aria2
sudo systemctl start aria2
查看运行状态
sudo systemctl status aria2
看到如下消息,没有红色文字报警和failed则表示启动成功
● aria2.service - Aria2 Service
Loaded: loaded (/lib/systemd/system/aria2.service; enabled; vendor preset: enabled)
Active: active (running) since Tue 2020-05-05 15:06:45 CST; 4h 30min ago
Main PID: 587 (aria2c)
Tasks: 1 (limit: 2200)
Memory: 675.8M
CGroup: /system.slice/aria2.service
└─587 /usr/bin/aria2c --conf-path=/home/pi/.config/aria2/aria2.conf