Aria2相关

关于文章
撰写整理:光影(某位法医学长)

校对上传:二次寒树

aria2项目地址:https://github.com/aria2/aria2

 从互联网上古时代开始,下载就是人们从未断绝的核心需求之一,网际快车(FlashGet)、QQ旋风、电驴、和臭名昭著的迅雷,无不体现了当时人们对下载的需求,而现在这几家软件就剩下迅雷苟延残喘,还有恶心的会员加速,那有没有一种软件,能同时下载BT、HTTP资源,还轻巧好用呢?
答案是:有!让我隆重为您介绍Aria2,这款轻量多线程多协议下载程序。

 Aria2为了足够的轻量化,只使用CLI交互界面,也就是说它是一个纯命令行软件,你需要一个提供指令输入交互界面的软件(Windows自带的命令提示符或者Power shell)当然,如果你觉得这俩界面过于丑陋难用,可以使用微软全新推出的“终端”程序(微软商店搜索安装)。

 有了交互界面后,我们可以使用命令来对电脑进行操作,最简单的一个命令,就是使用他去下载一个文件,那么输入 aria2c x ,回车执行就好(x是你的下载链接或种子文件的地址)。

 它还有很多参数,比如-V是用来检查文件完成情况,未完成进行继续下载等等。

 但上面都只是它的最初级用法,它最强大的功能来源于它支持读取配置文件和通过RPC进行交互。

 使用 aria2c --conf=*/aria2.conf 命令,会读取位于(*)下的aria2.conf文件,并根据文件中的参数进行配置。

 一份完整的配置文件如下:


## 基本设置 ##

# 下载路径(默认为当前程序路径)
dir=D:\下载
# 最大同时下载任务数,运行时可修改,默认:5
max-concurrent-downloads=10
# 检查完整性,默认false
check-integrity=true
# 断点续传
continue=true

## 高级设置 ##

# 启用磁盘缓存,0为禁用缓存,需1.16以上版本,默认:16M
disk-cache=64M
# 文件预分配方式,能有效降低磁盘碎片,默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc,EXT3/4建议trunc,MAC 下需要注释此项,固态硬盘无需预分配
file-allocation=falloc
# 允许分片大小变化,当分片长度与控制文件中的不同时,false会终止下载,true会继续下载,但损失一定进度,默认:false
allow-piece-length-change=true
# 禁用IPv6,默认false
#disable-ipv6=true

## 进度保存相关 ##

# 从会话文件中读取下载任务
input-file=D:\Program Files\Aria2\aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=D:\Program Files\Aria2\aria2.session
# 任务状态改变后保存会话的间隔时间(秒),0为退出时才保存(此处需要设置,否则失去自动保存),需1.16.1以上版本,默认:0 
save-session-interval=10
# 自动保存任务进度到控制文件(*.aria2)的间隔时间(秒),0 为仅在进程正常退出时保存,默认:60
# 此项值也会间接影响从内存中把缓存的数据写入磁盘的频率
# 想降低磁盘 IOPS (每秒读写次数)则提高间隔时间,想在意外非正常退出时尽量保存更多的下载进度则降低间隔时间
# 非正常退出:进程崩溃、系统崩溃、SIGKILL 信号、设备断电等
auto-save-interval=20

## 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授权令牌
#rpc-secret=130QAZWSX
# 设置的RPC访问用户名,此选项新版已废弃,建议改用 --rpc-secret 选项
#rpc-user=<USER>
# 设置的RPC访问密码,此选项新版已废弃,建议改用 --rpc-secret 选项
#rpc-passwd=<PASSWD>
# 是否启用 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

## 日志设置 ##

# 日志文件路径("-"代表写入sdout,""代表不写入)
#log=""
# 日志级别,可选 debug, info, notice, warn, error 。默认:debug
#log-level=warn
# 控制台日志级别,可选 debug, info, notice, warn, error ,默认:notice
#console-log-level=notice
# 安静模式,禁止在控制台输出日志,默认:false
#quiet=false
# 下载进度摘要输出间隔时间(秒),0 为禁止输出。默认:60
#summary-interval=0

## 客户端伪装 ##

# PT下载需要保持以下三者所指客户端一致
# 自定义User Agent
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/122.0.0.0 Safari/537.36 Edg/122.0.0.0
#自定义Peer Agent
peer-agent=Transmission/4.10
# 客户端伪装ID
peer-id-prefix=-TR4100-

## HTTP/FTP/SFTP下载相关 ##

# 通用代理服务器(可被单独设置代理选项覆盖)
all-proxy=127.0.0.1:7890
# netrc文件(FTP服务器配置文件)
no-netrc=true
# netrc文件位置
netrc-path=D:\Program Files\Aria2\netrc\.netrc
# 同一服务器连接数,添加时可指定,最大:16
max-connection-per-server=16
# 最小文件分片大小,添加时可指定,取值范围1M -1024M,默认:20M
# 假定size=10M,文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
#min-split-size=10M
# 单个任务最大线程数,添加时可指定,默认: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

## BT/PT下载相关 ##

# 当下载的是一个种子(以.torrent结尾)时,自动开始BT任务,默认:true
#follow-torrent=false
# BT监听端口,当端口被屏蔽时使用,默认:6881-6999
listen-port=2500
# 单个种子最大连接数,默认:55
bt-max-peers=128
# 打开DHT功能,PT需要禁用,默认:true
enable-dht=true
# 打开IPv6 DHT功能,PT需要禁用
enable-dht6=true
# DHT网络监听端口,默认:6881-6999
#dht-listen-port=6881-6999
# BT最大连接节点数,默认:55,0为无限制
#bt-max-peers=128
# 本地节点查找,PT需要禁用,默认:false
bt-enable-lpd=true
# 种子交换,PT需要禁用,默认:true
#enable-peer-exchange=true
# 每个种子限速,对少种的PT很有用,默认:50K
#bt-request-peer-speed-limit=50K
# 当种子的分享率达到设定时,自动停止做种,0为一直做种,默认:1.0
seed-ratio=0
# 保存通过 WebUI(RPC) 上传的种子文件(.torrent),默认:true
# 所有涉及种子文件保存的选项都建议开启,不保存种子文件有任务丢失的风险
# 通过 RPC 自定义临时下载目录可能不会保存种子文件
rpc-save-upload-metadata=false
# 强制保存会话,即使任务已经完成,默认:false,较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=true
# 检查文件哈希后并做种,默认:true,如果要检查文件并仅在文件损坏或不完整时继续任务,请将此选项设置为false。此选项仅对bt下载有效。
#bt-hash-check-seed=false
# 做种已存在的文件时,不进行检查,默认:false
#bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件),默认:false
bt-save-metadata=true
# 加载已保存的元数据文件,默认:false
bt-load-saved-metadata=true
# DHT文件保存位置
dht-file-path=D:\Program Files\Aria2\dht\dht.dat
dht-file-path6=D:\Program Files\Aria2\dht\dht6.dat
# Tracker列表
bt-tracker=udp://tracker.opentrackr.org:1337/announce,https://tracker2.ctix.cn:443/announce,https://tracker1.520.jp:443/announce,http://tracker.opentrackr.org:1337/announce,udp://opentracker.i2p.rocks:6969/announce,http://tracker.openbittorrent.com:80/announce,udp://tracker.openbittorrent.com:6969/announce,udp://open.demonii.com:1337/announce,udp://exodus.desync.com:6969/announce,udp://open.stealth.si:80/announce,udp://tracker.torrent.eu.org:451/announce,udp://tracker.moeking.me:6969/announce,udp://explodie.org:6969/announce,http://bt.endpot.com:80/announce,udp://uploads.gamecoast.net:6969/announce,udp://tracker1.bt.moack.co.kr:80/announce,udp://tracker.tiny-vps.com:6969/announce,udp://tracker.theoks.net:6969/announce,udp://tracker.bitsearch.to:1337/announce,udp://p4p.arenabg.com:1337/announce,udp://movies.zsw.ca:6969/announce,https://tracker.tamersunion.org:443/announce,http://tracker1.bt.moack.co.kr:80/announce,http://tracker.skyts.net:6969/announce,http://open.tracker.ink:6969/announce,http://montreal.nyap2p.com:8080/announce,udp://v1046920.hosted-by-vdsina.ru:6969/announce,udp://trackerb.jonaslsa.com:6969/announce,udp://tracker2.dler.org:80/announce,udp://tracker.leech.ie:1337/announce,udp://tracker.joybomb.tw:6969/announce,udp://tracker.jonaslsa.com:6969/announce,udp://tracker.filemail.com:6969/announce,udp://tracker.dler.org:6969/announce,udp://tracker.bittor.pw:1337/announce,udp://tracker.auctor.tv:6969/announce,udp://tracker.4.babico.name.tr:3131/announce,udp://thouvenin.cloud:6969/announce,udp://thagoat.rocks:6969/announce,udp://sanincode.com:6969/announce,udp://run.publictracker.xyz:6969/announce,udp://retracker01-msk-virt.corbina.net:80/announce,udp://public.publictracker.xyz:6969/announce,udp://private.anonseed.com:6969/announce,udp://open.free-tracker.ga:6969/announce,udp://open.dstud.io:6969/announce,udp://isk.richardsw.club:6969/announce,udp://htz3.noho.st:6969/announce,udp://fe.dealclub.de:6969/announce,udp://epider.me:6969/announce,udp://bt2.archive.org:6969/announce,udp://bt1.archive.org:6969/announce,udp://bt.ktrackers.com:6666/announce,udp://acxx.de:6969/announce,udp://aarsen.me:6969/announce,https://tracker.moeblog.cn:443/announce,https://tracker.loligirl.cn:443/announce,https://tracker.lilithraws.org:443/announce,https://tracker.kuroy.me:443/announce,https://tr.burnabyhighstar.com:443/announce,https://1337.abcvg.info:443/announce,http://tracker2.dler.org:80/announce,http://open.acgnxtracker.com:80/announce,http://1337.abcvg.info:80/announce,udp://v2.iperson.xyz:6969/announce,udp://tracker.publictracker.xyz:6969/announce,udp://tracker.ccp.ovh:6969/announce,udp://tk1.trackerservers.com:8080/announce,udp://public.tracker.vraphim.com:6969/announce,udp://opentracker.io:6969/announce,udp://carr.codes:6969/announce,http://tracker.renfei.net:8080/announce,http://tracker.mywaifu.best:6969/announce,http://tracker.dler.org:6969/announce,udp://yahor.of.by:6969/announce,udp://wepzone.net:6969/announce,udp://tracker1.myporn.club:9337/announce,udp://tracker.srv00.com:6969/announce,udp://tracker.qu.ax:6969/announce,udp://tracker.ocnix.net:6969/announce,udp://tracker.farted.net:6969/announce,udp://tracker.cubonegro.lol:6969/announce,udp://tracker.army:6969/announce,udp://tracker.0x7c0.com:6969/announce,udp://thinking.duckdns.org:6969/announce,udp://tamas3.ynh.fr:6969/announce,udp://t.zerg.pw:6969/announce,udp://su-data.com:6969/announce,udp://ssb14.nohost.me:6969/announce,udp://ryjer.com:6969/announce,udp://run-2.publictracker.xyz:6969/announce,udp://public-tracker.cf:6969/announce,udp://open.u-p.pw:6969/announce,udp://oh.fuuuuuck.com:6969/announce,udp://ns1.monolithindustries.com:6969/announce,udp://netmap.top:6969/announce,udp://moonburrow.club:6969/announce,udp://market-re.quest:6969/announce,udp://mail.segso.net:6969/announce,udp://inferno.demonoid.is:3391/announce,udp://download.nerocloud.me:6969/announce,udp://black-bird.ynh.fr:6969/announce,udp://astrra.space:6969/announce,udp://6ahddutb1ucc3cp.ru:6969/announce,udp://6.pocketnet.app:6969/announce,udp://1c.premierzal.ru:6969/announce,https://tracker.imgoingto.icu:443/announce,https://tracker.cloudit.top:443/announce,https://t1.hloli.org:443/announce,https://t.zerg.pw/announce,http://www.chouchou.club:8080/announce,http://wg.mortis.me:6969/announce,http://wepzone.net:6969/announce,http://tracker.qu.ax:6969/announce,http://tracker.files.fm:6969/announce,http://tracker.bt4g.com:2095/announce,http://region.nl1.privex.cc:6969/announce,http://ch3oh.ru:6969/announce,http://canardscitrons.nohost.me:6969/announce,udp://tracker2.itzmx.com:6961/announce,udp://tracker.ddunlimited.net:6969/announce,udp://tracker.artixlinux.org:6969/announce,udp://tracker-udp.gbitt.info:80/announce,udp://tr.bangumi.moe:6969/announce,udp://torrents.artixlinux.org:6969/announce,udp://psyco.fr:6969/announce,udp://mail.artixlinux.org:6969/announce,udp://fh2.cmp-gaming.com:6969/announce,udp://concen.org:6969/announce,udp://boysbitte.be:6969/announce,udp://aegir.sexy:6969/announce,https://tracker.gbitt.info:443/announce,http://tracker1.itzmx.com:8080/announce,http://tracker.gbitt.info:80/announce,http://t.acg.rip:6699/announce

 这其中有三个参数enable-rpc,rpc-allow-origin-all=true,rpc-listen-all=true,是关于如何启用RPC的,具体已在配置文件中注释。

 当这三个参数被设置为true时,我们就可以通过WebUI如(AriaNg)对aria2进行控制,比如添加下载任务、暂停任务、删除任务,或对一些选项做出调整等等。

 借由aria2的RPC功能,你可以将aria2部署到任意计算机和其系统中,比如我就将它部署到了位于加州洛杉矶的一台VPS中,用以下载在国内没有速度的种子,同时,也正是由于它的RPC功能,你甚至可以通过脚本(BiliBili Evolved、网盘直链下载、Alist)来下载B站视频、百度网盘的东西(同时不用百度网盘自己的客户端)。