突破世界极限 下载神器 Aria
前言
温馨提示:这是一篇面对爱折腾的入门用户写的文章,这里总结了我的经验,为后来人踩雷,本文为原创,如有雷同,纯属巧合
认识
Q:什么是Aria2?
A:这是一个十分高效的命令行下载工具,由国外大神开发, 最初被进入国内时被广泛用于某度网盘的高速下载。它是开源的,这意味着任何人都可以审查它的代码,它的源代码托管于Github
Q:他有什么优点
A:它的优点很多,比如:
多线程多连接下载:你可以手动给一个文件添加多个下载源,甚至可以给一个文件添加不用协议的下载源!它同时采用多线程,真正跑满你的带宽,最大化利用资源,节省用户时间
超低的资源占用:你可能会想,多线程是不是很需要内存?你大可放心,在官方版16的线程中(可以通过编译修改),内存占用仅4MB(正常HTTP / FTP下载)到9MiB(BitTorrent下载),并且如果你挂机等待下载命令,可以达到2MiB
麻雀虽小五脏俱全:你认为它支持多少种协议?只是一款命令行工具那么简单吗?它可以向外拓展,即使是原有的下载功能也完全够用,他支持Metalink协议(V4)和RPC控制(JSON-RPC(通过HTTP和WebSocket)和XML-RPC),以及各种集成语言,
说了一堆屁话,开始进入正题
我的测试环境:
Linux服务端:CentOS7.8.2003(Py3.7.8)
Windows服务端:Windows10家庭中文版10.0.18363
控制端:Aria2c.com网页端
Aria2相关地址:
官网:
项目地址:
开始
截止写文日期(2020/9/5 11:32)Aria2的最新版本为1.35.0
有很多种方式安装Aria2,如果你不需要一些特殊的,比如官方限制最大16线程(对于某度是不够的)可以使用快捷安装的方法
直接使用yum安装Aria2,自动补全类库,免去繁琐操作
需要注意的是,在CentOS7的官方源中,是并没有Aria2的软件包的
所以如果你需要使用CentOS自带的yum软件包安装命令,需要先安装一个epel软件包源,如果已经安装可以忽略
Q:什么是EPEL?
A:EPEL的全称叫 Extra Packages for Enterprise Linux,EPEL是一个由 Fedora 社区打造维护的用于红帽系列系统和他的衍生版比如CentOS系列系统的软件仓库,他解决了很多的软件官方源没有或者老旧滞后而自己编译又慢到吐血的问题,详细自行百度,当然也可以为了后期方便使用把他替换为清华/阿里/网易之类的EPEL镜像源,国内效果会好很多
你可以直接输入
yum -y install epel-releas
来快速安装EPEL源,或者你也可以使用RPM安装方法自行百度
查看是否安装成功可以使用
ls -la /etc/yum.repos.d/
查看是否有带有EPEL字眼的源,有就是成功
然后记得清理一下缓存
yum clean allyum makecache
然后可以使用
yum install aria2
来安装Aria2了
当然,我们不仅可以使用yum安装,也可以直接从Github下载,不过Github下载的编译好的版本是没有支持库的,也就是说你如果没有安装一大堆类库就无法使用,yum则可以贴心解决
至于说编译安装,后面我会单独拿出来说
配置
默认Aria2会读取/root/.aria2/下面的aria2.conf作为默认配置文件
还会把/root/.aria2/下面的aria2.session作为默认的断点续传的记录文件
而Log会根据配置文件所提示的路径写入到指定文件
为了方便,我用的是默认的路径,也就是/root/.aria2/,这样只需要打aira2c就可以直接启动了
所以我们先创建.aira2文件夹
su
先获取Root权限
mkdir /root/.aria2
创建文件夹
touch /root/.aria2/aria2.session
touch /root/.aria2/aria2.conf
touch /root/.aria2/aria2.log
创建空白文件
创建完成,编辑配置文件
vi /root/.aria2/aria2.conf
修改配置文件,下面可以做参考,这是以CentOS 7.8 for Aria2 1.35.0写的
这里需要注意一点,Windows中,默认以作为认证的标识,但是在Aria2必须把替换为/,所以各位填写下载路径时记得注意,否则会报错
## #开头为注释内容, 选项都有相应的注释说明, 根据需要修改 ##
## 被注释的选项填写的是默认值, 建议在需要修改时再取消注释##
## 文件保存相关 ##
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/home/cloud/Downloacl
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=32M
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: nonefalloc ? truncprealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
file-allocation=trunc
# 断点续传
continue=true
## 下载连接相关 ##
# 最大同时下载任务数, 运行时可修改, 默认:5
#max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=16
# 最小文件分片大小, 添加时可指定, 取值范围1M -1024M, 默认:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件为15MiB 则使用一个来源下载
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=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=true
# 连接超时时间, 默认:60
timeout=60
# 最大重试次数, 设置为0表示不限制重试次数, 默认:5
#max-tries=5
# 设置重试等待的秒数, 默认:0
#retry-wait=0
## 进度保存相关 ##
# 从会话文件中读取下载任务
input-file=/home/mzking/.aria2c/aria2.session
# 在Aria2退出时保存`错误/未完成`的下载任务到会话文件
save-session=/home/mzking/.aria2c/aria2.session
# 定时保存会话, 0为退出时才保存, 需1.16.1以上版本, 默认:0
save-session-interval=60
## 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=TOKEN
# 设置的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
## BT/PT下载相关 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
follow-torrent=true
# BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=51413
# 单个种子最大连接数, 默认:55
bt-max-peers=64
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=false
# 打开IPv6 DHT功能, PT需要禁用
enable-dht6=false
# DHT网络监听端口, 默认:6881-6999
#dht-listen-port=6881-6999
# 本地节点查找, PT需要禁用, 默认:false
bt-enable-lpd=false
# 种子交换, PT需要禁用, 默认:true
enable-peer-exchange=false
# 每个种子限速, 对少种的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=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true
需要什么自行修改解决
启动
你可以直接在SSH打
aria2c
来启动它,值得注意的是,启动Aria2需要Root权限,请先su获取root权限,我也不知道未什么
Aria2启动后会占用前台,但是Aria2提供了后台静默启动,只需要在后面加一个-D的参数就行
就像这样
aria2c -D
至于结束方法很简单,直接killall掉就行,不过这种方式并没有screen来的方便,screen可以实时查看log,还可以直接Ctrl+C(虽然好像没有方便多少)
控制
Aria2的命令行使用方式自行百度,现在不说这个
Aria2是支持使用RPC控制,这里推荐一些WebGUI:
Aria2NG:
YAAW:
没了,其中还有很多的小技巧等慢慢整
结束
忘记想说啥了
|突破世界极限、下载神器、Aria
下载神器 突破世界极限