Centos7 - aria2+yaaw实现web页面下载管理

Centos7 - aria2+yaaw实现web页面下载管理

aria2支持http及bt的下载器,但纯命令行的操作对应linux的新手而言不是很友好,所以就有高手制作了aria2的web管理页面,网上的webui有很多,对比后推荐2款:AriaNG和yaaw

AriaNG:页面颜值很高,但无法对下载的文件重命名

Yaaw:页面简洁,可以对下载的文件重命名,而且可以更改下载路径

可以根据自己的情况,去选择webui,当然我更倾向于yaaw。

  • 第一步:安装aria2,配置aria2.conf文件
  • 第二步:安装http服务器
  • 第三步:下载yaaw中文版,并配置http服务器虚拟主机文件
  • 第四步:开放端口,关闭selinux
  • 第五步:测试yaaw_webui,并修改地址
  • 第六步:创建aria2系统服务,通过systemctl控制服务

拓展项:增加http简单访问验证

教程开始

一,1.安装aria2

通过yum安装aria2

#安装epel源
yum -y install epel-release
#安装aria2
yum -y install aria2
#查看aria2版本
aria2c -v

一,2.配置aria2.conf

a.创建aria所需文件及目录

#创建下载目录 /aria2_download
mkdir /aria2_download
#创建配置目录 /etc/aria2/
mkdir /etc/aria2
#创建日志文件 /var/log/aria2.log
touch /var/log.aria2.log
#创建会话文件 /etc/aria2/aria2.session
touch /etc/aria2/aria2.session

b.创建配置文件

#创建配置文件
vi  /etc/aria2/aria2.conf

下面为我的aria2.conf内容

#########启动前需先建立对应目录及文件#######
#下载目录 /aria2_download
#配置目录 /etc/aria2/
#日志文件 /var/log/aria2.log
#会话文件 /etc/aria2/aria2.session
#
# 日志 
log-level=warn
log=/var/log/aria2.log

# 后台运行
#方法一,daemon=true
#方法二,启动时加入-D参数:ari2c -D
# 文件的保存路径(可使用绝对路径或相对路径), 默认: 当前启动位置
dir=/aria2_download
# 启用磁盘缓存, 0为禁用缓存, 需1.16以上版本, 默认:16M 
disk-cache=32M 
# 文件预分配方式, 能有效降低磁盘碎片, 默认:prealloc
# 预分配所需时间: none < falloc ? trunc < prealloc 
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建议trunc, MAC 下需要注释此项
file-allocation=none 
# 断点续传 
continue=true 
## 下载连接相关 ## 
# 最大同时下载任务数, 运行时可修改, 默认:5 
max-concurrent-downloads=5 
# 同一服务器连接数, 添加时可指定, 默认:1 
max-connection-per-server=5
# 最小文件分片大小, 添加时可指定, 取值范围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
# 禁用IPv6, 默认:false
disable-ipv6=true
# 进度保存相关 ##
# 从会话文件中读取下载任务
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
# 事件轮询方式, 取值:[epoll, kqueue, port, poll, select], 不同系统默认值不同
#event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
rpc-listen-port=6800
# 设置的RPC授权令牌, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选项
#rpc-secret= 
# 设置的RPC访问用户名, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-user=
# 设置的RPC访问密码, 此选项新版已废弃, 建议改用 --rpc-secret 选项
#rpc-passwd= 
# BT/PT下载相关 ##
# 当下载的是一个种子(以.torrent结尾)时, 自动开始BT任务, 默认:true
follow-torrent=true 
#BT监听端口, 当端口被屏蔽时使用, 默认:6881-6999
listen-port=60002
# 单个种子最大连接数, 默认:55
#bt-max-peers=55
# 打开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=true
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为种子文件(.torrent文件), 默认:false
bt-save-metadata=true 

一,3.启动aria2

#启动aria2(加-D 实现后台隐藏)
aria2c --conf-path=/etc/aria2/aria2.conf -D
#检测aria2进程
ps -ef |grep aria2
#检测aria2端口,默认6800
netstat -tlunp |aria2

二,安装http服务器(如已安装,可跳过此步骤)

http服务器常用apache和nginx,我这里使用nginx

#安装epel源
yum -y install epel-release
#安装nginx
yum -y install nginx
#启动nginx
systemctl start nginx

三,1.下载yaaw中文版

这里使用我的gitee仓库yaaw中文版,当然你也可以去Github下载原作者的

#安装git
yum -y install git
#git我的yaaw中文版,到nginx站点目录
git clone https://gitee.com/ffing/yaaw-zh.git /usr/share/nginx/yaaw-zh

三,2.创建yaaw虚拟主机配置文件

a.创建yaaw虚拟主机配置文件,端口为6808(端口可以根据自己需求改动)

#创建nginx虚拟主机文件
vi /etc/nginx/conf.d/yaaw-zh.conf

下面为我的yaaw-zh.conf配置文件内容

server {
listen 6808;
root /usr/share/nginx/yaaw-zh;
index index.html;
location / {
}
}

四,开放防火墙端口

#nginx默认80端口
firewall-cmd --zone=public --add-port=80/tcp --permanent
#aria2默认6800端口
firewall-cmd --zone=public --add-port=6800/tcp --permanent
#yaaw虚拟主机端口
firewall-cmd --zone=public --add-port=6808/tcp --permanent
#重现加载防火墙
firewall-cmd --reload

五,测试yaaw_webui

!!!修改配置需google浏览器或IE内核急速模式!!!

先重启nginx使aria2虚拟主机生效

systemctl restart nginx

打开google浏览器输入地址:http://服务器IP:6808

点击右上角“小扳手”,来替换自己的aria2地址

https://qnimg.ffing.cn/wp-content/uploads/2021/03/image-49-1024x334.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

将“localhost”替换为你的服务器ip地址,譬如我替换为我外网域名http://ffing.cn:6800/jsonrpc(每次都要修改地址很麻烦,可以修改yaaw-zh/js/yaaw.js文件,永久替换地址)

如果提示连接aria2服务器失败,简称aria2服务是否启动!

https://qnimg.ffing.cn/wp-content/uploads/2021/03/image-51-1024x446.png?imageView2/0/q/75|watermark/1/image/aHR0cHM6Ly9xbmltZy5mZmluZy5jbi9mbl9sb2dvLnBuZw==/dissolve/55/gravity/SouthEast/dx/0/dy/0

如此配置结束,可以正常下载文件进行测试

六,创建aria2系统服务及开机启动

a.创建aria2系统服务为方便管理aria2,通过systemctl管理器控制aria2

vi /usr/lib/systemd/system/aria2.service

下面为我的aria2.server文件

[Unit]
Description=aria2
After=network.target
[Service]
PIDFile=/run/aria2.pid
ExecStart=/usr/bin/aria2c --conf-path=/etc/aria2/aria2.conf
ExecReload=/bin/kill -s HUP $MAINPID
ExecStop=/bin/kill -s QUIT $MAINPID
[Install]
WantedBy=multi-user.target

b,创建完服务文件,需要重新加载服务

systemctl daemon-reload

c,通过systemctl添加开机启动

#开机启动aria2
systemctl enable aria2
#启动aria2
systemctl start aria2
#停止aria2
systemctl stop aria2
#重启aria2
systemctl restart arai2

拓展项:增加http简单访问验证

生成密码文件

#安装生成密码工具
yum install httpd-tools
 
#第一次生成密码并且保存到指定文件
 htpasswd -bc /etc/aria2/user.passwd admin 123456
 
#之后添加用户和密码不需要-c参数
 htpasswd -b /etc/aria2/user.passwd test 123456

虚拟主机配置文件中,在server{}内加入校验路径

server {
listen 6808;
root /usr/share/nginx/yaaw-zh;
index index.html;

    #这里是验证时的提示信息
    auth_basic "input password";
    #密码校验路径
    auth_basic_user_file /etc/aria2/user.passwd;


location / {
}
}
good good study, day day up!

发表评论

textsms
account_circle
email

Centos7 - aria2+yaaw实现web页面下载管理
aria2支持http及bt的下载器,但纯命令行的操作对应linux的新手而言不是很友好,所以就有高手制作了aria2的web管理页面,网上的webui有很多,对比后推荐2款:AriaNG和yaaw AriaNG:页面…
扫描二维码继续阅读
2021-03-24