aria2 使用指南

aria2 使用指南

aria2 是一款轻量级的下载器,支持 HTTP/HTTPS, FTP, SFTP, BitTorrent and Metalink 等多种协议。

它有如下特点:

多节点链接:下载一个文件可以同时链接多个源来提速轻量级:占用系统资源极少,一般下载任务内存占用 10mb 内全功能的 BitTorrent 客户端:支持 DHT, PEX, Encryption, Magnet URI, Web-Seeding, Selective Downloads, Local Peer Discovery and UDP tracker支持 metalink 链接支持远程控制:支持 RPC 界面控制 aria2 进程官网:https://aria2.github.io/GitHub 主页:https://github.com/aria2/aria2webui-aria2:https://github.com/ziahamza/webui-aria2

aria2 下载安装从官方发布页下载对应平台的最新版包,我是 Windows x64 系统下载了 aria2-1.35.0-win-64bit-build1.zip:

https://github.com/aria2/aria2/releases/

解压压缩包到本地,我的解压目录是:C:\Users\Marco Nie\Application\aria2

aria2c.exe 就是 aria2 主程序。

命令行使用aria2 原生支持命令行控制,它的控制语句形式由 主程序 - 选项参数 - 链接 构成:

aria2c [] [|||]

全部的可用参数参考官方文档:https://aria2.github.io/manual/en/html/aria2c.html#synopsis

下面简单介绍几个常用的下载命令

修改下载目录终端里切换到 aria2 目录,使用下面命令将文件下载到 /home 目录下,使用参数 --dir 控制下载目录:

aria2c --dir=/home http://www.file.zip

注意如果不定义 dir 目录,则默认下载到当前用户根目录。下载指定文档内的链接aria2c --input-file=dl.txt --max-concurrent-downloads=5 --dir=/home

下载 dl.txt 内所有的链接,同时下载5个文件。

多路链接下载aria2c --split=5 http://www.file.zip

同时建立 5 个链接来下载这个文件,如果链接源速度不够快,这样可以达到提速效果。

远程控制aric2c --enable-rpc=true --rpc-listen-all=true

开启远程控制,默认端口为 6800 可使用 --rpc-listen-port 参数修改。以上命令执行后,可以使用 JSON-RPC/XML-RPC 来控制,下一章节会详细介绍。

指定配置文件aria2c --conf-path=/home/aria2.conf http://www.file.zip

当设置的 option 参数很多的时候,每次启动都敲入大量的命令就很麻烦了,可以将所有需要的配置参数放到一个配置文件里,使用 --conf-path 加载配置文件就可以了。

由于命令行方式控制不便于个人使用,所以这里介绍以 webUI 的方式控制 aria2。

webui-aria2webui-aria2 是一个官方推荐的 web RPC 控制器,图形化的界面方便管理进程。

GitHub 主页:https://github.com/ziahamza/webui-aria2

下载仓库包到本地:

解压压缩包到本地,我放在了 aria2 文件夹目录,在 docs 文件夹下启动 indix.html 就打开了 web 控制面板:

这时候页面会报错,因为 aria2 源程序还没有启动,命令行执行一下指令启动 rpc:

aric2c --enable-rpc=true --rpc-listen-all=true

刷新页面就可以连接到 aria2 了。

下面系统介绍配置文件的建立和断点续传的使用。

配置文件在 aria2 根目录下新建四个文件:aria2.conf,aria2.session,aria2.log,dht.dat

aria2.conf:aria2 的配置参数文件,定义了 aria2 的启动参数aria2.session:会话信息记录文件,用来进行断点续传aria2.log:日志文件dht.dat:DHT 网络路由缓存文件路径,BT 相关aria2.conf 推荐设置内容如下(自行修改里面的目录):

# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置

dir=C:\Users\Marco Nie\Downloads

# 启动的时候,从会话文件中读取下载任务

input-file=C:\Users\Marco Nie\Application\aria2\aria2.session

# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件

save-session=C:\Users\Marco Nie\Application\aria2\aria2.session

# DHT 路由文件路径,BT 相关

dht-file-path=C:\Users\Marco Nie\Application\aria2\dht.dat

# log 日志文件,没有的话输出到 stdout

log=C:\Users\Marco Nie\Application\aria2\aria2.log

# 日志级别 debug, info, notice, warn or error. Default: debug

log-level=warn

#下载完成后执行脚本

# on-download-complete=执行脚本

# Windows 下不关闭的话会出现 Timeout while contacting DNS servers

async-dns=false

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

#disk-cache=32M

#disk-cache=32M

# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc

# 预分配所需时间: none < falloc < trunc < prealloc

# falloc和trunc则需要文件系统和内核支持

# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项

file-allocation=prealloc

# 断点续传

continue=true

## 下载连接相关 ##

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

max-concurrent-downloads=10

# 同一服务器连接数, 添加时可指定, 默认:1 最大16

max-connection-per-server=16

# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M

# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载

min-split-size=10M

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

split=5

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

# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0

save-session-interval=60

## RPC相关设置 ##

# 启用RPC, 默认:false

enable-rpc=true

# 添加任务后默认暂停下载

pause=false

# 允许所有来源, 默认:false

rpc-allow-origin-all=true

# 允许外网访问, 默认:false

rpc-listen-all=true

# save torrent or metalink meta data to --dir

rpc-save-upload-metadata=true

# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项

rpc-secret=<设置自定义 token,要和远程设置一样>

# RPC监听端口, 端口被占用时可以修改, 默认:6800

rpc-listen-port=6800

## BT/PT下载相关 ##

# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true

follow-torrent=true

# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999

#listen-port=51413

# 单个种子最大连接数, 默认:55

bt-max-peers=55

# 打开DHT功能, PT需要禁用, 默认:true

enable-dht=true

# 打开IPv6 DHT功能, PT需要禁用

#enable-dht6=false

# DHT网络监听端口, 默认:6881-6999

dht-listen-port=6881-6999

# 本地节点查找, PT需要禁用, 默认:false

bt-enable-lpd=true

# 种子交换, PT需要禁用, 默认:true

enable-peer-exchange=true

# 每个种子限速, 对少种的PT很有用, 默认:50K

#bt-request-peer-speed-limit=50K

# 客户端伪装, PT需要

#peer-id-prefix=-TR2770-

user-agent=Transmission/2.92

#user-agent=netdisk;4.4.0.6;PC;PC-Windows;6.2.9200;WindowsBaiduYunGuanJia

# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0

seed-ratio=1.0

#作种时间大于30分钟,则停止作种

seed-time=30

# 强制保存会话, 话即使任务已经完成, 默认:false,BitTorrent seeding which is recognized as completed state

#force-save=false

# BT校验相关, 默认:true

#bt-hash-check-seed=true

# 继续之前的BT任务时, 无需再次校验, 默认:false

bt-seed-unverified=true

# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false

bt-save-metadata=true

# 加密传输 防止吸血

bt-force-encryption=true

# 添加自定义的 bt tracker 地址,从 https://github.com/ngosang/trackerslist 找最新的链接

bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.leechers-paradise.org:6969/announce,udp://tracker.opentrackr.org:1337/announce,udp://p4p.arenabg.com:1337/announce,udp://9.rarbg.to:2710/announce,udp://9.rarbg.me:2710/announce,udp://tracker.internetwarriors.net:1337/announce,udp://exodus.desync.com:6969/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.cyberia.is:6969/announce,udp://open.stealth.si:80/announce,udp://open.demonii.si:1337/announce,udp://denis.stalker.upeer.me:6969/announce,udp://tracker.sbsub.com:2710/announce,udp://tracker.moeking.me:6969/announce,udp://retracker.lanta-net.ru:2710/announce,udp://ipv4.tracker.harry.lu:80/announce,udp://explodie.org:6969/announce,udp://zephir.monocul.us:6969/announce启动 aria2上述文件设置完毕后,就可以启动 aria2 了,在终端执行如下命令:

cd /to/aria2/path

aria2c --conf-path=aria2.conf

然后启动 webui-aria2 的 index.html 网页,根据 aria2.conf 配置文件情况设置 setting - connection 内容,就可以正常使用了。

我将 webui-aria2 托管到了我的网站:https://webui-aria2.niekun.net。但是发现如果 webui 是 https 的就无法连接上 aria2 了,查了下好像是 web 加密问题,所以还是把 webui-aria2 放在本地使用吧。

外网远程控制如果服务器在内网,可能需要进行内网穿透,可以参考我的 frp 教程,建立 http 转发:https://niekun.net/archives/539.html

frpc 配置示例片段:

[aria2]

type = http

local_ip = 127.0.0.1

local_port = 6800

subdomain = aria2

use_encryption = true

use_compression = true如果按照我 frp 教程配置 nginx 代理 frp 的话,完成后就可以通过:https://aria2.youdomain.net:443 来控制 aria2 了。

开机自启动可以建立脚本来实现开机自启动。

Windows在 aria2 目录新建 bat 文件,内容如下:

@echo off

if "%1" == "h" goto begin

mshta vbscript:createobject("wscript.shell").run("""%~nx0"" h",0)(window.close)&&exit

:begin

REM

cd %USERPROFILE%\Application\aria2

aria2c --conf-path=aria2.conf

exit建立脚本快捷方式,将快捷方式放到开机启动文件夹内即可,Windows 10 开机启动目录为:%APPDATA%\Microsoft\Windows\Start Menu\Programs\Startup

下载完成执行脚本使用配置文件里的 on-download-complete 选项,可以实现自定义的功能。

在 aria2 下载完成后,执行 on-download-complete 脚本时会自动传递三个参数:

GID GID is an ID of a download which aria2c uses to identify a particular download下载文件个数文件路径示例:

$ cat hook.sh

#!/bin/sh

echo "Called with [$1] [$2] [$3]"

$ aria2c --on-download-complete hook.sh http://example.org/file.iso

Called with [1] [1] [/path/to/file.iso]Linux 下可以编写 bash 脚本。windows 下可以执行 bat 脚本,注意 bat 脚本必须和配置文件在一个路径,否则报错。

我实现的功能是下载完成后触发一个系统通知。

Linux 脚本我测试了 macos 下的脚本,使用了 AppleScript 实现,在 bash 中使用 as 可以使用 osascript 命令,脚本内容如下:

#!/bin/sh

osascript -e 'display notification "download complete" sound name "Pop.aiff"'具体参考我的 osascript 教程:https://blog.niekun.net/archives/1773.html

Windows 脚本Windows 脚本使用 powershell 实现,由于 aria2 只能调用 bat 批处理脚本,且必须在和主程序同一个目录下,所以再编写一个 bat 脚本调用 ps 脚本,稍微复杂一些。

bat 脚本:script.bat

@ECHO OFF

set arg1=%3

PowerShell.exe -Command "&'path\to\download-complete.ps1' %arg1%"

PAUSEbat 脚本里传入参数使用 %0,%1,%2 等表示,%0 表示所有传入参数,%1 表示第一个参数。

内部定义参数使用 set 命令,使用变量时前后加上百分号 %,如:%arg1%。

以上脚本内容是:读取传入的下载文件地址参数,使用 powershell 执行 ps 脚本且传递读取的文件地址。

powershell 脚本:download-complete.ps1

$var1 = $args[0]

# Write-Output $var1

Add-Type -AssemblyName System.Windows.Forms

$global:balmsg = New-Object System.Windows.Forms.NotifyIcon

$path = (Get-Process -id $pid).Path

$balmsg.Icon = [System.Drawing.Icon]::ExtractAssociatedIcon($path)

$balmsg.BalloonTipIcon = [System.Windows.Forms.ToolTipIcon]::Warning

$balmsg.BalloonTipText = "Path is $var1"

$balmsg.BalloonTipTitle = "download complete"

$balmsg.Visible = $true

$balmsg.ShowBalloonTip(20000)保存以上两个脚本到 aria2.conf 配置文件一个目录下,然后修改配置文件:

on-download-complete=script.bat

重新运行 aria2,下载文件测试效果。

实现更多的脚本功能,可以参考开源项目:https://github.com/P3TERX/aria2.conf

标签:aria2, download

相关阅读

足坛11大“小巨人”,身高最多1米7,却踢出传奇人生!
365体育平台靠谱吗

足坛11大“小巨人”,身高最多1米7,却踢出传奇人生!

📅 07-06 👁️ 5233
共享打印机ip地址怎么找 简单3招查看共享打印机ip地址
best365官网登录下载

共享打印机ip地址怎么找 简单3招查看共享打印机ip地址

📅 07-05 👁️ 1617
一探究竟:GTX 950和GTX 960显卡实测评测
365BT游戏大厅官网

一探究竟:GTX 950和GTX 960显卡实测评测

📅 08-02 👁️ 3337