# Ubuntu 安装 Aria2

Aria2 NG:http://aria2.ilouis.cn (opens new window)

一款支持 BT,HTTP/S,FTP 磁力的下载工具

Last updated on 2020-02-18



# 预编译

推荐

使用预编译 (opens new window)的版本,一步到位省时省力

# 安装

wget https://github.com/q3aql/aria2-static-builds/releases/download/v1.35.0/aria2-1.35.0-linux-gnu-64bit-build1.tar.bz2
tar -jxvf aria2-1.35.0-linux-gnu-64bit-build1.tar.bz2
cd aria2-1.35.0-linux-gnu-64bit-build1
make install

# 错误解决

执行 make install 时会自动将二进制程序复制到 /usr/bin 中,若此目录下存在名为 aria2c 的程序且正在运行时则会出现以下错误

mkdir -p /etc/ssl/certs/
mkdir -p /usr/share/man/man1/
cp aria2c /usr/bin
cp: cannot create regular file ‘/usr/bin/aria2c’: Text file busy
make: *** [install] Error 1

停止该进程即可,例如 killall aria2c 或者 systemctl stop aria2c

# 基本配置

配置文件名称随意,例如 config.conf

提示

建议将配置文件等放到当前用户的 用户目录 中,以免出现权限不足的问题

请将下列配置中 [dir][token][poll][session] 替换为实际内容

# 基本设置

# 下载路径
dir=[dir]
# 最大同时下载数,默认10
max-concurrent-downloads=5
# 断点续传
continue=true

# HTTP设置

# 获取服务器文件时间
remote-time=true
# 单任务连接数
split=16
# 支持Gzip
http-accept-gzip=true
# 禁用缓存
http-no-cache=true
# HTTP代理服务器
all-proxy=
# 自定义 User-Agent
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/80.0.3987.106 Safari/537.36

# BT设置

# 删除未选择的文件
bt-remove-unselected-file=true
# BT 服务器(BT tracker)
bt-tracker=
# 最大连接节点数,0表示不限制
# 不限制会加快下载速度
bt-max-peers=0
# 期望下载速度
# 同上同理
bt-request-peer-speed-limit=10M
# DHT 监听端口
dht-listen-port=6881-6999
# 全局最大上传速度
max-overall-upload-limit=128K
# 最小做种时间,0 表示下载完不做种
seed-time=0

# RPC 设置

# 启用 RPC 服务
enable-rpc=true
# RPC Token,必填,WenUI 需用
rpc-secret=[token]
# 接受所有远程请求
rpc-allow-origin-all=true
# 在所有网卡上监听
rpc-listen-all=true
# 监听端口
rpc-listen-port=6800
# 保存上传的种子文件
rpc-save-upload-metadata=false
# 启用 SSL/TLS
# 当启用 TLS 时必须指定证书位置
#rpc-secure=false
# 域名证书
#rpc-certificate=
# 证书 Key
#rpc-private-key=

# 高级设置

# 允许覆盖
allow-overwrite=false
# 禁用 IPV6
disable-ipv6=true
# 磁盘缓存,如果为 0 则使用内存缓存
disk-cache=64M
# 事件轮询方法
# Linux 为 epoll,Windows 为 select
event-poll=[poll]
# 最大下载速度,0表示不限制
max-download-limit=0
# 状态保存文件, session 文件位置
# 创建一个后缀为 `.session` 的文件即可
save-session=[session]
# 保存状态间隔
save-session-interval=30
# 任务下载完成后执行脚本,脚本位置
# on-download-complete=

# 执行脚本说明

Aria2 支持任务完成后调用脚本,更多详情可以查看官方文档 (opens new window)

在配置文件中添加 on-download-complete= 并指向你的脚本位置即可

Aria2 调用脚本时会传入一些变量。例如 $3 表示文件名,即在脚本中打印 $3 即可获取 Aria2 传来的文件名

  • 区别

Linux 直接在脚本中使用 $3 即可获取文件名;Windows 则需要使用 %3% 来获取文件名,因为操作系统之间的差异,获取变量的方式有所不同

注意

CentOS 7 系统会出现脚本不会被调用的问题

# 创建守护进程

创建 systemd 服务

sudo vi /etc/systemd/system/aria2c.service

输入以下内容;注意更改 User 和 Group 为你运行 Aria2 的用户和组

[Unit]
Description=Aria2c Service
After=network.target
Wants=network.target

[Service]
User=ubuntu
Group=ubuntu
# 指定配置文件位置
ExecStart=/usr/bin/aria2c --conf-path=/home/ubuntu/.aria2c/config.conf

[Install]
WantedBy=default.target

注意

当配合 Nextcloud 使用时应将 User 和 Group 更改为服务器程序用户,例如:www-data

启用服务(开机自启)

systemctl enable aria2c

使用 systemctl 控制

# 启动
sudo systemctl start aria2c
# 停止
sudo systemctl stop aria2c
# 重启
sudo systemctl restart aria2c

查看状态

sudo systemctl status aria2c

返回信息如下

● aria2.service - Aria2 Service
   Loaded: loaded (/etc/systemd/system/aria2.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2019-06-18 09:12:12 CST; 3s ago
 Main PID: 31640 (aria2c)
    Tasks: 1 (limit: 879)
   CGroup: /system.slice/aria2.service
           └─31640 /usr/local/bin/aria2c --conf-path=/home/ubuntu/.aria2/config.conf

Jun 18 09:12:12 VM-0-3-ubuntu systemd[1]: Started Aria2 Service.
Jun 18 09:12:12 VM-0-3-ubuntu aria2c[31640]: 06/18 09:12:12 [NOTICE] IPv4 RPC: listening on TCP port 6800

禁用服务(禁止开启自启)

sudo systemctl disable aria2c

# Windows

下载 win build 版本并解压

运行 .exe 时加上 --conf-path= 参数指向你的配置文件即可

  • 隐藏运行窗口

创建一个后缀为 .vbs 的文本,将以下内容保存

CreateObject("WScript.Shell").Run "aria2c.exe --conf-path=config.conf",0
  • --conf-path 指向你的配置文件路径

提示

将此文件和 aria2c 放在同一目录下,双击即可运行

# 客户端

Android 客户端:https://github.com/devgianlu/Aria2App/releases (opens new window)

Windows 客户端:https://github.com/mayswind/AriaNg-Native/releases (opens new window)

文章部分内容参考链接: