回顾一次内网搭建Aria2多线程下载器的流程分享

由于本人已经装过了,这里就不在此展示一遍了,总结下来分为2个大类;【1】搭建Aria2【2】可视化下载器(可选),其中【2】是可选的,当然大概率下我觉得你会跟我一样还是觉得可视化好用!话不多说,我们开始吧!

Snipaste_2022-04-22_22-04-55.png

流程分享

首先,我的环境如下:

[root@localhost ~]# cat /etc/redhat-release
CentOS Linux release 7.9.2009 (Core)

第一步,安装aria2,你们喜欢是源码自行编译还是直接yum懒人装法都随意,反正我是用的yum法直接装的!

[root@localhost ~]# yum install -y aria2
Loaded plugins: fastestmirror, product-id, search-disabled-repos, subscription-manager

This system is not registered with an entitlement server. You can use subscription-manager to register.

Repository epel is listed more than once in the configuration
Repository epel-debuginfo is listed more than once in the configuration
Repository epel-source is listed more than once in the configuration
Loading mirror speeds from cached hostfile
 * base: mirrors.aliyun.com
 * extras: mirrors.aliyun.com
 * updates: mirrors.aliyun.com
Package aria2-1.34.0-5.el7.x86_64 already installed and latest version
Nothing to do

因为我这里已经装过了,所以是这么显示,装完之后,没有配置文件,因此我们需要手动生成配置文件(当然,如果不生成默认是在当前用户下面建立)

[root@localhost ~]# vim /etc/aria2/aria2.conf

这里我们直接使用 vim 创建文件(会自动创建所需目录,省去了 mkdir 和 touch 的环节!),然后你可以参考我的配置录入如下内容:

## 文件保存相关 ##

# 文件保存目录
dir=/data/download/files
# 日志路径
log=/data/download/logs
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M
disk-cache=32M
# 断点续传
continue=true

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

## 下载连接相关 ##

# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=5
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=15
# 整体下载速度限制, 运行时可修改, 默认: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

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

## 进度保存相关 ##

# 从会话文件中读取下载任务
input-file=/etc/aria2/aria2.session
# 在Aria2退出时保存错误的、未完成的下载任务到会话文件
save-session=/etc/aria2/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
# RPC端口, 仅当默认端口被占用时修改
#rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret=

## BT/PT下载相关 ##

# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
follow-torrent=true
# 客户端伪装, PT需要
peer-id-prefix=-TR2770-
# 客户端UA标识
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 Edg/100.0.1185.44
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
force-save=false
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true

其实这里配置的都是一些主要的,如果有可视化界面(如:AriaNg),你完全可以根据可视化工具的配套设置项来修改!

配置项仅供参考,标出几个重要点大家注意下!

下载目录

# 下载目录,根据你自己的实际位置调整
dir=/data/download/files

客户端标识

# 客户端UA标识,这里我给大家预留的是Windows Edge浏览器的UA,你可以根据自己实际需求改
user-agent=Mozilla/5.0 (Windows NT 10.0; Win64; x64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/100.0.4896.127 Safari/537.36 Edg/100.0.1185.44

可视化界面服务器

## RPC相关设置 ##

# 启用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=

其它的就没有了,配置完成后,你就可以使用如下命令启动 aria2 了!

[root@localhost ~]# aria2c --conf-path=/etc/aria2/aria2.conf -D

当然执行到这一步其实理论来说 aria2 就已经搭建完毕了!但现在有一个问题,就是除非你不重启,一旦重启你就需要手动再次启动 aria2 服务,那么很显然,你们都不想这样,因此,我们需要配置一下 Aria2 的开机自启动

开机自启动

开机自启动其实就是在 /etc/init.d/ 目录下建立个脚本,基于执行权限,然后注册到服务(service),最后启用(chkconfig)即可!当然为了照顾到萌新,我们来逐步讲解!

首先,我们同样的,通过 vim /etc/init.d/aria2c 来建立启动脚本,脚本内容如下:

#!/bin/sh

# chkconfig: 2345 10 90
# description: Aria2

case "$1" in
    start)
        echo "正在启动Aria2服务,请稍后..."
        aria2c --conf-path=/etc/aria2/aria2.conf -D
        echo "Aria2服务已开启!"
    ;;
    stop)
        echo "正在关闭Aria2服务,请稍后..."
        killall -g aria2c
        echo "Aria2服务已关闭!"
    ;;
esac

然后使用 chmod +x 的方式基于该脚本执行权限!

[root@localhost ~]# chmod +x /etc/init.d/aria2c

最后就很简单了!测试服务是否可用+开启开机自启动,重启测试开机自启动是否生效!

测试服务是否可用

[root@localhost ~]# service aria2c stop
正在关闭Aria2服务,请稍后...
Terminated
[root@localhost ~]# service aria2c start
正在启动Aria2服务,请稍后...
Aria2服务已开启!

注册开机自启动

[root@localhost ~]# chkconfig aria2c on

重启测试一下是否配置成功

  • 重启命令有2个,分别是 rebootshutdown -r now,各位按自己的口味选择;
  • 测试开机后是否启动也很简单,测试端口是否开放即可!命令也有很多,我一般是用 losf -i:6800,这里6800是 Aria2 的默认端口号(如果你不开RPC相关设置则需要通过其它方式测试是否运行)

可视化GUI

可视化GUI就是你可以直接使用一个比较简单粗暴界面来调用Aria2的下载能力,这里我是推荐的是 Aria2Ng,官方主页地址:https://ariang.mayswind.net/zh_Hans/,好处正如你们看到的,原生中文,并且无侵入性(纯前端实现,只需要你有Web环境,即可使用!)

这里怎么搭建Web环境我就不展开了,下载代码大家可以直接访问 Aria2Ng 的 Github 开源地址下载,链接给大家准备好了,飞机票:https://github.com/mayswind/AriaNg/releases,怎么部署我也不讲了,这都是相当基本功的东西了!

这里主要要告知几个点,很多萌新会遇到的问题,问题就是代码部署好了,但是提示无法连接,这是因为你的 Aria2Ng配置中,RPC地址配置不对,这里配置的地址是需要你可以直接访问到Aria2服务的地址,比如下图所示:

Snipaste_2022-04-22_22-10-29.png

我配置的是192.168.1.111的内网地址,可以连接,为什么?因为我现在是在内网环境!所以我可以直接填这个地址,如果我在外网环境需要下载,那么就需要换成公网IP了,然后还有一个注意点就是防火墙,如果你不放开防火墙,那么也不是不能访问的!

差不多就是这些的,试了下,实话实说,Aria2只适合下载直连资源,磁力讲真的,除非真是热门资源,否则基本没速度,所以说句难听的,Aria2国内基本残了,除非你是有啥特殊需求正好Aria2能满足(如:百度云直连下载之类的),否则我讲真的,如果纯下载直连这种,我还不如用 wget 下载,反正这个是个人喜好问题!自己用的开心就好!

彩蛋部分

最后给大家分享几个链接吧,节约大家时间!懂的自然懂,不懂我也懒得解释:

  1. Github加速下载:https://ghproxy.com/
  2. 发稿时最新版Aria2Ng下载:wget -O https://github.com/mayswind/AriaNg/releases/download/1.2.3/AriaNg-1.2.3.zip
  3. Tracker链接:https://trackerslist.com/#/zh?id=aria2