编译安装Aria2,和前端web界面安装。

aria2221.png

1.简介

aria2 - 超快的下载工具

aria2是一款用于下载文件的工具,支持的协议有HTTP(S)、FTP、SFTP、BitTorrent和Metalink。支持的协议有HTTP(S)、FTP、SFTP、BitTorrent和Metalink。aria2可以从多个来源/协议下载一个文件,并尝试利用您的最大下载带宽。它支持同时从HTTP(S)/FTP/SFTP和BitTorrent下载文件,而从HTTP(S)/SFTP/SFTP下载的数据会上传到BitTorrent群中。利用Metalink的分块校验,aria2在下载BitTorrent这样的文件时,会自动验证数据的分块。

功能
以下是功能列表。

命令行界面
通过HTTP(S)/FTP/SFTP/BitTorrent下载文件。
分段下载
Metalink版本4 (RFC 5854) 支持(HTTP/FTP/SFTP/BitTorrent)
支持Metalink 3.0版本(HTTP/FTP/SFTP/BitTorrent)
支持Metalink/HTTP(RFC 6249)。
HTTP/1.1的实施
支持HTTP代理
支持HTTP BASIC认证
支持HTTP代理认证
代理的著名环境变量。, , , 和 http_proxyhttps_proxyftp_proxyall_proxyno_proxy。
支持HTTP gzip、deflate内容编码。
在HTTPS中使用给定的可信CA证书验证对等体。
HTTPS中的客户端证书认证
支持分块传输编码
使用Firefox3格式、Chromium/Google Chrome和Mozilla/Firefox (1.x/2.x)/Netscape格式从文件中加载Cookies。
以Mozilla/Firefox (1.x/2.x)/Netscape格式保存Cookies。
支持自定义HTTP头
支持持久性连接
通过HTTP代理的FTP/SFTP
下载/上传速度控制
BitTorrent扩展。快速扩展、DHT、PEX、MSE/PSE、多跟踪、UDP跟踪器。
aria2请求的块数超过了件数大小,以减少请求开销。此外,它还支持带有片段大小的管道式请求。
BitTorrent 本地对等体发现
完全重命名/更改BitTorrent下载的目录结构。
JSON-RPC(通过HTTP和WebSocket)/XML-RPC接口。
作为守护进程运行
在多文件洪流中选择性下载/Metalink。
Metalink中的Chunk checksum验证
可以在Metalink中禁止分段下载。
支持Netrc
配置文件支持
下载在文本文件或stdin中找到的URI,目标目录和输出文件名可以选择性地指定。
支持参数化URI
使用Happy Eyeballs支持IPv6
磁盘缓存以减少磁盘活动

2.安装

先安装编译环境

yum -y install gcc*

安装 epel源等下安装 nginx要用到

yum install epel-release

下载最新版源码包

wget https://github.com/aria2/aria2/releases/download/release-1.35.0/aria2-1.35.0.tar.gz

解压编译需要一定时间

tar -zxvf aria2-1.35.0.tar.gz
cd aria2-1.35.0
./configure
make
make install

创建aria2配置文件目录和配置文件

mkdir /root/.aria2
touch /root/aria2.conf
touch /root/aria2.session

3.编辑配置文件

vim aria2.conf
# Copyright (c) 2018-2020 P3TERX <https://p3terx.com>
#
# This is free software, licensed under the MIT License.
# See /LICENSE for more information.
#
# https://github.com/P3TERX/aria2.conf
# File name:aria2.conf
# Description: Awesome Aria2 configuration file
# Version: 2020.08.08
#

## 文件保存设置 ##

# 下载目录。可使用绝对路径或相对路径, 默认: 当前启动位置
dir=/root/Download

# 启用磁盘缓存, 0 为禁用缓存,默认:16M
# 路由器或 NAS 等本地设备建议在有足够的内存空闲情况下设置为适当的大小,以减少磁盘 I/O 延长硬盘寿命,但不要超过可用内存空间大小。
disk-cache=64M

# 文件预分配方式, 可选:none, prealloc, trunc, falloc, 默认:prealloc
# 预分配对于机械硬盘可有效降低磁盘碎片、提升磁盘读写性能、延长磁盘寿命。
# 机械硬盘使用 ext4(具有扩展支持),btrfs,xfs 或 NTFS(仅 MinGW 编译版本)等文件系统建议设置为 falloc
# 若无法下载,提示 fallocate failed.cause:Operation not supported 则说明不支持,请设置为 none
# prealloc 分配速度慢, trunc 无实际作用,不推荐使用。
# 固态硬盘不需要预分配,只建议设置为 none ,否则可能会导致双倍文件大小的数据写入,从而影响寿命。
file-allocation=none

# 文件预分配大小限制。小于此选项值大小的文件不预分配空间,单位 K 或 M,默认:5M
no-file-allocation-limit=64M

# 断点续传
continue=true

# 始终尝试断点续传,无法断点续传则终止下载,默认:true
always-resume=false

# 不支持断点续传的 URI 数值,当 always-resume=false 时生效。
# 达到这个数值从将头开始下载,值为 0 时所有 URI 不支持断点续传时才从头开始下载。
max-resume-failure-tries=0

# 获取服务器文件时间,默认:false
remote-time=true


## 进度保存设置 ##

# 从会话文件中读取下载任务
input-file=/root/.aria2/aria2.session

# 在 Aria2 退出时保存`错误/未完成`的下载任务到会话文件
save-session=/root/.aria2/aria2.session

# 定时保存会话的间隔时间(秒), 0 为进程正常退出时保存, 默认:0
save-session-interval=1

# 自动保存任务进度的间隔时间(秒),0 为进程正常退出时保存,默认:60
auto-save-interval=1

# 强制保存,即使任务已完成也保存信息到会话文件, 默认:false
# 开启后会在任务完成后保留 .aria2 文件,文件被移除且任务存在的情况下重启后会重新下载。
# 关闭后已完成的任务列表会在重启后清空。
force-save=false


## 下载连接设置 ##

# 文件未找到重试次数,默认:0 (禁用)
# 重试时同时会记录重试次数,所以也需要设置 max-tries 这个选项
max-file-not-found=10

# 最大尝试次数,0 表示无限,默认:5
max-tries=0

# 重试等待时间(秒), 默认:0 (禁用)
retry-wait=10

# 连接超时时间(秒)。默认:60
connect-timeout=10

# 超时时间(秒)。默认:60
timeout=10

# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=10

# 单服务器最大连接线程数, 任务添加时可指定, 默认:1
# 最大值为 16 (增强版无限制), 且受限于单任务最大连接线程数(split)所设定的值。
max-connection-per-server=16

# 单任务最大连接线程数, 任务添加时可指定, 默认:5
split=64

# 文件最小分段大小, 添加时可指定, 取值范围 1M-1024M (增强版最小值为 1K), 默认:20M
# 比如此项值为 10M, 当文件为 20MB 会分成两段并使用两个来源下载, 文件为 15MB 则只使用一个来源下载。
# 理论上值越小使用下载分段就越多,所能获得的实际线程数就越大,下载速度就越快,但受限于所下载文件服务器的策略。
min-split-size=4M

# HTTP/FTP 下载分片大小,所有分割都必须是此项值的倍数,最小值为 1M (增强版为 1K),默认:1M
piece-length=1M

# 允许分片大小变化。默认:false
# false:当分片大小与控制文件中的不同时将会中止下载
# true:丢失部分下载进度继续下载
allow-piece-length-change=true

# 最低下载速度限制。当下载速度低于或等于此选项的值时关闭连接(增强版本为重连),此选项与 BT 下载无关。单位 K 或 M ,默认:0 (无限制)
lowest-speed-limit=0

# 全局最大下载速度限制, 运行时可修改, 默认:0 (无限制)
max-overall-download-limit=20M

# 单任务下载速度限制, 默认:0 (无限制)
max-download-limit=0

# 禁用 IPv6, 默认:false
disable-ipv6=false

# GZip 支持,默认:false
http-accept-gzip=true

# URI 复用,默认: true
reuse-uri=false

# 禁用 netrc 支持,默认:false
no-netrc=true

# 允许覆盖,当相关控制文件(.aria2)不存在时从头开始重新下载。默认:false
allow-overwrite=false

# 文件自动重命名,此选项仅在 HTTP(S)/FTP 下载中有效。新文件名在名称之后扩展名之前加上一个点和一个数字(1..9999)。默认:true
auto-file-renaming=true

# 使用 UTF-8 处理 Content-Disposition ,默认:false
content-disposition-default-utf8=true

# 最低 TLS 版本,可选:TLSv1.1、TLSv1.2、TLSv1.3 默认:TLSv1.2
#min-tls-version=TLSv1.2


## BT/PT 下载设置 ##

# BT 监听端口(TCP), 默认:6881-6999
listen-port=51413

# DHT 网络监听端口(UDP), 默认:6881-6999
dht-listen-port=51413

# 启用 IPv4 DHT 功能, PT 下载(私有种子)会自动禁用, 默认:true
enable-dht=true

# 启用 IPv6 DHT 功能, PT 下载(私有种子)会自动禁用,默认:false
# 在没有 IPv6 支持的环境开启可能会导致 DHT 功能异常
enable-dht6=false

# IPv4 DHT 文件路径,默认:$HOME/.aria2/dht.dat
dht-file-path=/root/.aria2/dht.dat

# IPv6 DHT 文件路径,默认:$HOME/.aria2/dht6.dat
dht-file-path6=/root/.aria2/dht6.dat

# IPv4 DHT 网络引导节点
dht-entry-point=dht.transmissionbt.com:6881

# IPv6 DHT 网络引导节点
dht-entry-point6=dht.transmissionbt.com:6881

# 本地节点查找, PT 下载(私有种子)会自动禁用 默认:false
bt-enable-lpd=true

# 启用节点交换, PT 下载(私有种子)会自动禁用, 默认:true
enable-peer-exchange=true

# 单个种子最大连接数,0为不限制,默认:55
bt-max-peers=0

# 期望下载速度。BT 下载速度低于此选项设置的值时临时提高连接数来获得更快的下载速度,单位 K 或 M 。默认:50K
bt-request-peer-speed-limit=10M

# 全局最大上传速度限制, 运行时可修改, 默认:0 (无限制)
# 设置过低可能影响 BT 下载速度
max-overall-upload-limit=2M

# 单任务上传速度限制, 默认:0 (无限制)
max-upload-limit=0

# 最小分享率。当种子的分享率达到此选项设置的值时停止做种, 0 为一直做种, 默认:1.0
# 强烈建议您将此选项设置为大于等于 1.0
seed-ratio=1.0

# 最小做种时间(分钟)。设置为 0 时将在 BT 任务下载完成后停止做种。
seed-time=0

# 做种前检查文件哈希, 默认:true
bt-hash-check-seed=true

# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=false

# BT tracker 服务器连接超时时间(秒)。默认:60
# 建立连接后,此选项无效,将使用 bt-tracker-timeout 选项的值
bt-tracker-connect-timeout=10

# BT tracker 服务器超时时间(秒)。默认:60
bt-tracker-timeout=10

# BT 服务器连接间隔时间(秒)。默认:0 (自动)
#bt-tracker-interval=0

# BT 下载优先下载文件开头或结尾
bt-prioritize-piece=head=32M,tail=32M

# 保存通过 WebUI(RPC) 上传的种子文件(.torrent),默认:true
# 所有涉及种子文件保存的选项都建议开启,不保存种子文件有任务丢失的风险。
# 通过 RPC 自定义临时下载目录可能不会保存种子文件。
rpc-save-upload-metadata=true

# 下载种子文件(.torrent)自动开始下载, 默认:true,可选:false|mem
# true:保存种子文件
# false:仅下载种子文件
# mem:将种子保存在内存中
follow-torrent=true

# 种子文件下载完后暂停任务,默认:false
# 在开启 follow-torrent 选项后下载种子文件或磁力会自动开始下载任务进行下载,而同时开启当此选项后会建立相关任务并暂停。
pause-metadata=false

# 保存磁力链接元数据为种子文件(.torrent), 默认:false
bt-save-metadata=true

# 加载已保存的元数据文件(.torrent),默认:false
bt-load-saved-metadata=true

# 删除 BT 下载任务中未选择文件,默认:false
bt-remove-unselected-file=true

# BT强制加密, 默认: false
# 启用后将拒绝旧的 BT 握手协议并仅使用混淆握手及加密。可以解决部分运营商对 BT 下载的封锁,且有一定的防版权投诉与迅雷吸血效果。
# 此选项相当于后面两个选项(bt-require-crypto=true, bt-min-crypto-level=arc4)的快捷开启方式,但不会修改这两个选项的值。
bt-force-encryption=true

# BT加密需求,默认:false
# 启用后拒绝与旧的 BitTorrent 握手协议(\19BitTorrent protocol)建立连接,始终使用混淆处理握手。
bt-require-crypto=true

# BT最低加密等级,可选:plain(明文),arc4(加密),默认:plain
bt-min-crypto-level=arc4

# 分离仅做种任务,默认:false
# 从正在下载的任务中排除已经下载完成且正在做种的任务,并开始等待列表中的下一个任务。
bt-detach-seed-only=true


## 客户端伪装 ##

# 自定义 User Agent
user-agent=Mozilla/5.0 (Macintosh; Intel Mac OS X 10_15_5) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/85.0.4160.0 Safari/537.36 Edg/85.0.537.0

# BT 客户端伪装
# PT 下载需要保持 user-agent 和 peer-agent 两个参数一致
# 部分 PT 站对 Aria2 有特殊封禁机制,客户端伪装不一定有效,且有封禁账号的风险。
#user-agent=qBittorrent/4.2.5
peer-agent=qBittorrent/4.2.5
peer-id-prefix=-qB4250-


## 执行额外命令 ##

# 下载停止后执行的命令
# 从 正在下载 到 删除、错误、完成 时触发。暂停被标记为未开始下载,故与此项无关。
on-download-stop=/root/.aria2/delete.sh

# 下载完成后执行的命令
# 此项未定义则执行 下载停止后执行的命令 (on-download-stop)
on-download-complete=/root/.aria2/clean.sh

# 下载错误后执行的命令
# 此项未定义则执行 下载停止后执行的命令 (on-download-stop)
#on-download-error=

# 下载暂停后执行的命令
#on-download-pause=

# 下载开始后执行的命令
#on-download-start=

# BT 下载完成后执行的命令
#on-bt-download-complete=


## RPC 设置 ##

# 启用 JSON-RPC/XML-RPC 服务器, 默认:false
enable-rpc=true

# 接受所有远程请求, 默认:false
rpc-allow-origin-all=true

# 允许外部访问, 默认:false
rpc-listen-all=true

# RPC 监听端口, 默认:6800
rpc-listen-port=6800


# RPC 密钥
#rpc-secret=xiaolin:$apr1$VTWxt.bq$NsgEIcE5QDhto1AqYOykF.

# RPC 最大请求大小
rpc-max-request-size=10M

# RPC 服务 SSL/TLS 加密, 默认:false
# 启用加密后必须使用 https 或者 wss 协议连接
# 不推荐开启,建议使用 web server 反向代理,比如 Nginx、Caddy ,灵活性更强。
rpc-secure=true

# 在 RPC 服务中启用 SSL/TLS 加密时的证书文件(.pem/.crt)
rpc-certificate=/etc/v2ray/v2ray.crt

# 在 RPC 服务中启用 SSL/TLS 加密时的私钥文件(.key)
rpc-private-key=/etc/v2ray/v2ray.key

# 事件轮询方式, 可选:epoll, kqueue, port, poll, select, 不同系统默认值不同
#event-poll=select


## 日志设置 ##

# 日志文件保存路径,忽略或设置为空为不保存,默认:不保存
#log=

# 日志级别,可选 debug, info, notice, warn, error 。默认:debug
#log-level=warn

# 控制台日志级别,可选 debug, info, notice, warn, error ,默认:notice
console-log-level=notice

# 安静模式,禁止在控制台输出日志,默认:false
quiet=false


## 增强扩展设置(非官方) ##

# 仅适用于 myfreeer/aria2-build-msys2 (Windows) 和 P3TERX/aria2-builder (GNU/Linux) 项目所构建的增强版本

# 在服务器返回 HTTP 400 Bad Request 时重试,仅当 retry-wait > 0 时有效,默认 false
#retry-on-400=true

# 在服务器返回 HTTP 403 Forbidden 时重试,仅当 retry-wait > 0 时有效,默认 false
#retry-on-403=true

# 在服务器返回 HTTP 406 Not Acceptable 时重试,仅当 retry-wait > 0 时有效,默认 false
#retry-on-406=true

# 在服务器返回未知状态码时重试,仅当 retry-wait > 0 时有效,默认 false
#retry-on-unknown=true


## BitTorrent trackers ##

以上配置只是方便个人使用

推荐到这里获取完美配置并根据自己需求修改
P3TERX/aria2.conf: Aria2 配置文件 (github.com)

4.启动测试

读取配置文件并启动

aria2c --conf-path=/root/.aria2/aria2.conf

上面的命令执行会在前台运行

通过以下命令在后台运行

aria2c --conf-path=/root/.aria2/aria2.conf -D

开机自启动

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

[Unit]
Description=aria2 torrent server

[Service]
User=root
ExecStart=/usr/local/bin/aria2c --conf-path=/root/.aria2/aria2.conf
Restart=on-abort

[Install]
WantedBy=multi-user.target

之后重新加载单元

systemctl daemon-reload

启动设置开机自启动

systemctl enable aria2     #开机自启
systemctl start aria2        #启动
systemctl status aria2     #查看状态

● aria2.service - aria2 torrent server
   Loaded: loaded (/usr/lib/systemd/system/aria2.service; enabled; vendor preset: disabled)
   Active: active (running) since 二 2020-12-08 09:51:30 CST; 8s ago
 Main PID: 24381 (aria2c)
   CGroup: /system.slice/aria2.service
           └─24381 /usr/local/bin/aria2c --conf-path=/root/.aria2/aria2.conf

12月 08 09:51:30 localhost.localdomain systemd[1]: Started aria2 torrent server.
12月 08 09:51:30 localhost.localdomain aria2c[24381]: 12/08 09:51:30 [WARN] Neither --rpc-secret nor a combination of --rpc-user and --rpc-passwd is set. This is insecure. It is extremely recommend...--rpc-passwd.
12月 08 09:51:30 localhost.localdomain aria2c[24381]: 12/08 09:51:30 [NOTICE] RPC transport will be encrypted.
12月 08 09:51:30 localhost.localdomain aria2c[24381]: 12/08 09:51:30 [NOTICE] IPv4 RPC:正在监听 TCP 端口 6800
12月 08 09:51:30 localhost.localdomain aria2c[24381]: 12/08 09:51:30 [NOTICE] IPv6 RPC:正在监听 TCP 端口 6800
12月 08 09:51:31 localhost.localdomain aria2c[24381]: 12/08 09:51:31 [NOTICE] 已成功将当前会话序列化到“/root/.aria2/aria2.session”

5.前端web UI安装

下载nginx

yum -y install nginx

进入nginx网页目录并创建一个目录

cd /usr/share/nginx/html/
mkdir /usr/share/nginx/html/aria2

进入目录下载aria2 NG

cd /usr/share/nginx/html/aria2
wget https://github.com/mayswind/AriaNg/releases/download/1.1.7/AriaNg-1.1.7.zip

解压
unzip这个命令没有需要装一下

yum -y install unzip
unzip AriaNg-1.1.7.zip    # 解压
rm -rf AriaNg-1.1.7.zip   #解压后删除压缩包

6.启动nginx测试

systemctl enable nginx    #开机自启
systemctl start nginx       #启动
systemctl status nginx     #查看状态

输入IP/aria2 访问

555.png

# Aria2 

本文由:星际难民
实践,测试,整理发布.如需转载请注明地址 本文标题:编译安装Aria2,和前端web界面安装。
地址:https://530503.xyz/articles/2020/12/08/1607392551477.html

评论

取消