Aria2C

跳转至: 导航, 搜索
Aria2

Icon-applications.png

轻量级的多协议和多源命令行下载工具

为 openSUSE 下载

软件包包名:aria2c
发行商: openSUSE
开发者: tatsuhiro-t 和社区贡献者
许可证: GPL-v2, OpenSSL License
网站: https://github.com/aria2/aria2


aria2 是一个轻量级的多协议和多源命令行下载工具。

简介

aria2 是一个轻量级的多协议和多源命令行下载实用程序。它支持 HTTP/HTTPS、FTP、SFTP、BitTorrent 和 Metalink。aria2 可以通过内置的 JSON-RPC 和 XML-RPC 接口进行操作。

安装

sudo zypper in aria2

快速使用

查看用户手册:

man aria2c
aria2c -h

从特定的网络地址下载东西,例如(将 openSUSE tumbleweed 网络镜像文件下载到用户的 ~/桌面 目录或用户目录):

aria2c --dir=~/桌面 https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Current.iso
aria2c https://download.opensuse.org/tumbleweed/iso/openSUSE-Tumbleweed-NET-x86_64-Current.iso

按 CTRL + C 可以终止当前的下载进程,或者你打开任务管理器,找到并杀死 aria2 的相关进程。


应用示例:将 aria2 作为常驻服务进行部署

aria2 对于系统资源的占用很低,功能丰富,适合作为一个常驻的后台服务以便需要时快速调用。

准备

在根据上文安装好 aria2 后,请在 ~/.config/aria2 目录新建下列纯文本文档:

aria2.conf
aria2.log
aria2.session
start-aria2.sh
aria2.service

aria2.conf 样例

此配置文件省略了与 BT 相关的配置,如果你需要下载 BT 种子,请查看 QBittorrent
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
# 你可以将其修改为其他文件夹
dir=/home/$USER/Downloads/Aria2

# 日志文件保存目录
log=/home/$USER/.config/aria2/aria2.log

# 启用磁盘缓存, 0 为禁用缓存, 需 1.16 以上版本, 默认:16M
disk-cache=50M

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

# 断点续传
continue=true


## 下载连接相关 ##

# 最大同时下载任务数, 运行时可修改, 默认:5
#max-concurrent-downloads=5

# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=16

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

# 单个任务最大线程数, 添加时可指定, 默认:5
split=32

# 整体下载速度限制, 运行时可修改, 默认: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

# 连接超时时间, 默认:60
#timeout=60

# 最大重试次数, 设置为 0 表示不限制重试次数, 默认:5
#max-tries=5

# 设置重试等待的秒数, 默认:0
#retry-wait=0


## 进度保存相关 ##

# 从会话文件中读取下载任务
input-file=/home/$USER/.config/aria2/aria2.session

# 在 aria2 退出时保存`错误/未完成`的下载任务到会话文件
save-session=/home/$USER/.config/aria2/aria2.session

# 定时保存会话, 0 为退出时才保存, 需 1.16.1 以上版本, 默认:0
save-session-interval=120


## RPC相关设置 ##

# 启用 RPC, 默认:false
enable-rpc=true

# 允许所有来源, 默认:false
rpc-allow-origin-all=true

# 允许非外部访问, 默认:false
#rpc-listen-all=true

# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select

# RPC监听端口, 端口被占用时可以修改, 默认:6800
#rpc-listen-port=6800

# 设置的 RPC 授权令牌, v1.18.4 新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#在此处设置你的令牌
rpc-secret=mytoken

# 是否启用 RPC 服务的 SSL/TLS 加密,
# 启用加密后 RPC 服务需要使用 https 或者 wss 协议连接
#rpc-secure=true

# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件,
# 使用 PEM 格式时,您必须通过 --rpc-private-key 指定私钥
#rpc-certificate=/path/to/certificate.pem

# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件
#rpc-private-key=/path/to/certificate.key

start-aria2.sh 样例

创建启动脚本并赋予可执行权限:

#!/bin/sh
aria2c --conf-path=/home/$USER/.config/aria2/aria2.conf

此时,你可以在终端中启动此脚本:

./start-aria2.sh

关闭此终端窗口会终止正在运行的 aria2c。

AriaNG

要便捷地使用 Aria2,你还需要一个图形化前端。这里以 AriaNG 为例。

将下载完毕的 AriaNg-*-AllInOne.zip(推荐使用 AllInOne 是为了减少小文件的数量)解压后,放到与配置文件同一个文件夹下。再点击 HTML 文件即可启动 AriaNg。

此时,保持 aria2 运行,然后点击 AriaNG 设置 -> RPC(localhost:6800),填入 aria2.conf 中已经设置的 Aria2 RPC 密钥,AriaNg 会自动重载并链接 aria2。

开机启动

在 KDE 桌面的 系统设置 > 开机与关机 > 自动启动 中,添加 start-aria2.sh 即可。

或者,你可以在 ~/.config/autostart 新建一个 aria2-start.desktop 文件文件,并写入如下内容:

请将 Exec 的路径修改为你的配置文件的路径。
[Desktop Entry]
Exec=/home/poplar/.config/aria2/start-aria2.sh
Icon=
Name=start-aria2.sh
Path=
Terminal=False
Type=Application

与 systemd 集成

请将 $USER 替换为你的用户名。

如果你希望使用 systemd 统一管理服务,那么你需要在 aria2.service 文件中写入:

[Unit]
Description=Start aria2 daemon
After=multi-user.target

[Service]
ExecStart=/usr/bin/aria2c --conf-path=/home/$USER/.config/aria2/aria2.conf
Type=simple
WorkingDirectory=/home/$USER/.config/aria2

[Install]
WantedBy=multi-user.target

然后将 aria2.service 文件拷贝到 /etc/systemd/system 目录,然后运行下列命令重载服务:

sudo systemctl daemon-reload

然后启动 aria2 服务并设置为开机自启动:

sudo systemctl enable aria2 --now

清理日志文件

aria2 运行一段时间后,你需要清理日志文件(~/.config/aria2/aria2.log)。清理时,请先停止 aria2 进程。

如果你使用 systemctl 管理 aria2 服务,那么下面有一个 shell 可用于清理日志文件(请将这个 aria2-clean 可执行文件放置到 $PATH 目录中):

#!/bin/sh
#本脚本用于清理 aria2 日志文件

printf 'Do you want to clear the log files? (y/n)? '
read answer

if [ "$answer" != "${answer#[Yy]}" ] ;then
    ls -lh ~/.config/aria2/aria2.log
    #读取文件大小
    sudo systemctl status aria2 | grep "Active"
    #查询状态
    sudo systemctl stop aria2
    #关闭服务
    rm ~/.config/aria2/aria2.log; touch ~/.config/aria2/aria2.log
    echo "Logs cleaned"
    #清理日志文件
    sudo systemctl restart aria2
    #重启服务
    sudo systemctl status aria2 | grep "Active"
    ls -lh ~/.config/aria2/aria2.log
    #查询状态
else
    ls -lh ~/.config/aria2/aria2.log
    #打印日志文件大小
    printf 'Do you want to read the aria2 service status? (y/n)? '
    read answer

    if [ "$answer" != "${answer#[Yy]}" ] ;then
        sudo systemctl status aria2
        #查询状态
    else
        exit
    fi
fi

文档

前端