Aria2Install

aria2

官方解释

aria2 is a utility for downloading files. The supported protocols are HTTP(S), FTP, SFTP, BitTorrent, and Metalink. aria2 can download a file from multiple sources/protocols and tries to utilize your maximum download bandwidth. It supports downloading a file from HTTP(S)/FTP/SFTP and BitTorrent at the same time, while the data downloaded from HTTP(S)/FTP/SFTP is uploaded to the BitTorrent swarm. Using Metalink’s chunk checksums, aria2 automatically validates chunks of data while downloading a file like BitTorrent.

通俗解释

一个全速下载神器,支持各种主流协议。

官方仓库和文档

https://github.com/aria2/aria2
https://aria2.github.io/manual/en/html/

安装配置

下载aria2 及 web-ui 面板

点击上方官方仓库选择对应版本下载并解压,可以看到以下文件:
image.png
此处选用AriaNg作为web-ui,当然也有其他界面(webui-aria2等),自行选择即可。
链接:https://github.com/mayswind/AriaNg
image.png

aria2配置

在aria2文件夹下新建.conf/.log/.session文件,然后打开并写入以下信息:

点击查看

##===================================##
## 文件保存相关 ##
##===================================##

# 文件保存目录
dir=C:\aria2\Download
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=32M
# 断点续传
continue=true
#日志保存(想生成日志取消注释即可)
# log=aria2.log

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

##===================================##
## 下载连接相关 ##
##===================================##

# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=100
# 同一服务器连接数, 添加时可指定, 默认:1
# 官方的aria2最高设置为16, 如果需要设置任意数值请重新编译aria2
max-connection-per-server=16

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

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

# 单个任务最大线程数, 添加时可指定, 默认:5
# 建议同max-connection-per-server设置为相同值
split=16

##===================================##
## 进度保存相关 ##
##===================================##

# 从会话文件中读取下载任务
input-file=aria2.session
# 在Aria2退出时保存错误的、未完成的下载任务到会话文件
save-session=aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=60

##===================================##
## RPC相关设置 ##
##此部分必须启用,否则无法使用WebUI
##===================================##

# 启用RPC, 默认:false
enable-rpc=true
# 允许所有来源, 默认:false
rpc-allow-origin-all=true
# 允许外部访问, 默认:false
rpc-listen-all=true
# RPC端口, 仅当默认端口被占用时修改

rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
rpc-secret=<yourcode>

# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-user=<USER>
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-passwd=<PASSWD>

# 启动SSL
# rpc-secure=true
# 证书文件, 如果启用SSL则需要配置证书文件, 例如用https连接aria2
# rpc-certificate=
# rpc-private-key=

##===================================##
## 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=true
# 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.77

# 当种子的分享率达到这个数时, 自动停止做种, 0为一直做种, 默认:1.0
seed-ratio=0
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
force-save=true
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
# 单个种子最大连接数, 默认:55 0表示不限制
bt-max-peers=0
# 最小做种时间, 单位:分
# seed-time = 60
# 分离做种任务
bt-detach-seed-only=true
#BT Tracker List ;下载地址:https://github.com/ngosang/trackerslist
bt-tracker=udp://tracker.coppersurfer.tk:6969/announce,udp://tracker.internetwarriors.net:1337/announce,udp://tracker.opentrackr.org:1337/announce

以上配置信息来源于网络,也可以根据官方文档自配。

C:\aria2\aria2-1.35.0-win-64bit-build1>aria2c --conf-path=aria2.conf

11/19 23:20:30 [NOTICE] IPv4 RPC: listening on TCP port 6800

11/19 23:20:30 [NOTICE] IPv6 RPC: listening on TCP port 6800

11/19 23:21:30 [NOTICE] Serialized session to 'aria2.session' successfully.

11/19 23:36:54 [NOTICE] Shutdown sequence commencing... Press Ctrl-C again for emergency shutdown.

Download Results:
gid |stat|avg speed |path/URI
======+====+===========+=======================================================

11/19 23:36:54 [NOTICE] Serialized session to 'aria2.session' successfully.

web-ui 面板及设置

进入AriaNag点击index.html则可进入web-ui管理面板
image.png
输入在aria2.conf里面找到 “rpc-secret=“,在RPC Token出填上”yourcode”并尝试重新连接即可。
(yourcode为一串你想设置的任何代码,个人理解为验证身份,如后续有理解再更新)

命令行下载测试

C:\aria2\aria2-1.35.0-win-64bit-build1>aria2c https://dldir1.qq.com/qqfile/qq/PCTIM2.3.2/21158/TIM2.3.2.21158.exe -l /aria2.log

11/19 23:12:38 [NOTICE] Downloading 1 item(s)

11/19 23:12:38 [NOTICE] Allocating disk space. Use --file-allocation=none to disable it. See --file-allocation option in man page for more details.
[#96ce7a 67MiB/67MiB(99%) CN:1 DL:1.7MiB]
11/19 23:13:21 [NOTICE] Download complete: C:/aria2/aria2-1.35.0-win-64bit-build1/TIM2.3.2.21158.exe

Download Results:
gid |stat|avg speed |path/URI
======+====+===========+=======================================================
96ce7a|OK | 1.5MiB/s|C:/aria2/aria2-1.35.0-win-64bit-build1/TIM2.3.2.21158.exe

Status Legend:
(OK):download completed.

web-ui 测试下载(配合tampermonkey脚本)

速度仅供参考:
image.png

BaiDuExporter 导出aria2下载链接

官方插件仓库:https://github.com/acgotaku/BaiduExporter
将.crx加载到chrome 扩展中并进行以下配置:
默认自动生成配置,但是在最新版aria2,则还需要配置相应的token来重新设置rpc地址
Example: htp://token:yourtoken@hostname:port/
默认:hostname–localhost port–6800 如果aria2中设置了token则需要将其进行如上添加
此时再进行导出链接或者直接点击aria2 prc则自动调用填好的地址里本地安装的aria2

总结

aria2真的是一个非常强大的工具,就其原理将在下篇文章提到RPC等目前前沿且非常重要的互联网技术!

本文均是用于学习研究用途,请勿用于商业用途,谢谢合作!

Author: 𝓣𝓪𝓭𝓶
Link: https://liuhongwei3.github.io/2019/11/20/Aria2Install/
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.