群晖NAS | 部署安装Aria2离线下载工具

说明:上篇【piān】文章喵斯基部落发布一篇《群晖【huī】DSM6搭【dā】建【jiàn】NextCloud15私有网【wǎng】盘》文章,顺着【zhe】文章继续【xù】讲下去,让NextCloud增加离线下载功【gōng】能,这里我【wǒ】们【men】用【yòng】的是Aria2。

Aria2介绍

Aria2是一【yī】款【kuǎn】基于【yú】命令行的超轻量级全平台多协议下载【zǎi】工【gōng】具【jù】,支【zhī】持诸【zhū】如HTTP/FTP/BT/磁力等下载协议,唯【wéi】独不支【zhī】持电驴(在此【cǐ】缅怀一【yī】下当年的【de】VeryCD )。Aria2本身是不带操作界面【miàn】的,所以叫做【zuò】命【mìng】令【lìng】行工具【jù】,但为了方便使用,很多大神自制【zhì】了【le】UI界面,常见的有Aria2WebUI、AriaNg等。这两种界面【miàn】都是基【jī】于网页的,所以只要能连接到Aria2的服务器,无【wú】论在【zài】什么地方都可以轻松的进【jìn】行下载管理,实现远程下载。

废话不多说【shuō】,下面主【zhǔ】要【yào】说说如何使用群晖DSM的Docker套【tào】件安装Aria2。

安装Aria2

首先在套件中心中安装Docker,安装好之后打开。

点击左侧的 注册表,使用关键字查找Aria2,可以看到有很多不同版本。这里我选的是第一个xujinkai/aria2-with-webui,从下面的注【zhù】释可以看出【chū】来。这【zhè】个镜像包含了【le】Aria2和webui,这样使用【yòng】的【de】时候有图形界面会比【bǐ】较方便。选好之后右键【jiàn】 下载此映像

点击左侧的映像,看到此镜像正在下载。Docker的镜【jìng】像下载服务器【qì】对国【guó】内网络的支持不是很【hěn】好,有时候下【xià】载【zǎi】很慢,请耐心等待【dài】。好【hǎo】在【zài】这个镜像大小只有【yǒu】24M。

映像xujinkai/aria2-with-webui下载完成后,双击映像,开始创建容器。第一页的容器【qì】名称可以【yǐ】任意填写,高级权限【xiàn】没有必要选【xuǎn】,资【zī】源【yuán】限制【zhì】可以根据自己的【de】实【shí】际【jì】情况来,我这边没有【yǒu】做限【xiàn】制。下【xià】面点击高级设置

接着点击标签,需要在此标签页添加两个文件夹。

  • 添加一【yī】个【gè】文件夹作为默认下载文【wén】件夹(可以【yǐ】选择NextCloud的files文件夹),在对应的装载路径中填入/data
  • 选择一个文【wén】件夹作为Aria2的配置文【wén】件储存位置【zhì】,然【rán】后在装载路径【jìng】中填【tián】入/conf

注【zhù】意:装【zhuāng】载路径所填信息必须一致,否则程序无【wú】法【fǎ】识别会导致程【chéng】序【xù】无法正常开启。

网络标签页【yè】保【bǎo】持【chí】默【mò】认不用修【xiū】改,端口设置页建议将本【běn】地端口从【cóng】自动改成固定的端【duān】口号【hào】,这个是任【rèn】意填写【xiě】的(也可以按照我设置进【jìn】行),需要记住稍后有用。

环境标签页中点击+号添加一个,可变填入rpc-secret,值【zhí】中【zhōng】任意填写一个验证码,这个在【zài】连接Aria2时需要用到。到这里高【gāo】级设置就【jiù】完成了,点【diǎn】击【jī】应用后回到上一级页面之后点击下一步。

这一页会把你的设置全部展示出来,检查没有问题就可以点应用了,默认向导完成后运行此容器。

现在Aria2下载器已经在运行了。

使用Aria2

在【zài】浏览【lǎn】器【qì】中输入群晖的IP和刚才【cái】设置的端【duān】口号,进入Aria2的WebUI界面,我的地【dì】址是192.168.2.110:6880。点击设【shè】置【zhì】,选择连接设置【zhì】。在密码令牌处【chù】填写刚【gāng】才设【shè】置的认证口令,这时【shí】RPC认证通【tōng】过,会提示连接成功,左侧【cè】的设置窗口也会把相关配置显示【shì】出来。

局域网地址+端口,例如192.168.2.110:6880不【bú】支持【chí】外网访问,无【wú】法做到远【yuǎn】程下载。请在群晖控制面板做好端口映射后【hòu】,根【gēn】据喵斯基【jī】部落之前发布的【de】两篇文章《LanProxy 使用教程【chéng】 : 一【yī】款拥有WebUI的内网穿【chuān】透工【gōng】具》和《Nginx反向代理》

点击添加,可以通过连接、种子和磁力链三种方式创建下载。

NextCloud全盘扫描

如果使【shǐ】用Aira2下载的文件【jiàn】无法在nextcloud中显示,请以root账【zhàng】号登陆ssh,并在nextcloud目录中执行下【xià】面命【mìng】令【lìng】:

#定位到nextcloud根目录
cd /volume1/web/nextcloud
#如果php7.x已加入到环境变量,请运行下面的文件扫描命令
sudo -u http php occ files:scan --all --quiet

若【ruò】在WebStation给nextcloud配置的虚拟主机使用php7.0且【qiě】又同时安装了【le】php7.2套件的请执【zhí】行下面命【mìng】令【lìng】:

#定位到nextcloud根目录
cd /volume1/web/nextcloud
#如果php7.x未曾加入到环境【jìng】变量,请运【yùn】行下面的【de】文【wén】件扫描命【mìng】令
sudo -u http php72 -c /usr/local/etc/php72/php.ini /volume1/web/nextcloud/occ files:scan --all --quiet

觉得每【měi】次下载都要执行一次很麻烦,写个脚本配合群晖的任【rèn】务【wù】计划【huá】每隔15分钟【zhōng】执【zhí】行一次就行【háng】。如下:

# 在nextcloud根目录创建一个sh脚本
vim /volume1/web/nextcloud/scan_all_files.sh

脚本内容如下:

#!/bin/bash
#如果【guǒ】遇到Aria2下载的文件没有权限修改【gǎi】,可以在此脚本【běn】中【zhōng】增加【jiā】下面两【liǎng】行用【yòng】于目录赋权。
chown -R http:http <此处【chù】填写Aria2用于保存文件的目【mù】录路【lù】径>
chmod -R 755 <此【cǐ】处填【tián】写Aria2用于保【bǎo】存文件的【de】目录路径>

#定位到nextcloud根目录
cd /volume1/web/nextcloud

#指定http用户通过occ命令对全局进行文件扫描
sudo -u http php72 -c /usr/local/etc/php72/php.ini /volume1/web/nextcloud/occ files:scan --all --quiet

修改后,按ESC键输入:wq保存并退出。

依次打开群晖的控制面板->任务计划->新增->计划的任务->用户定义的脚本。具体的设置请参考下方动图:

自动扫描(推荐): 只需要修改 /volume1/web/nextcloud/config/config.php 文件,在文件最后一行);前添加配置: 'filesystem_check_changes' => 1, 选项实现文件夹的自动扫描,实测效果很理想。

添加Tracker服务器

Aira2离线下载完成了,试了试BT种子没有任何速度怎么办?

除了【le】为Aria2增【zēng】加Tracker服务器外,建议先【xiān】下载一个热【rè】门的BT种子文件【jiàn】,而不【bú】是磁力【lì】链接。这样可以帮助缓存【cún】DHT文件,渐【jiàn】渐【jiàn】地,速度就会起【qǐ】来了。比如试试下载树莓【méi】派操作系统的BT种【zhǒng】子?前往下【xià】载

为 Aria2 添加 Tracker 服务器。

BitTorrent客户【hù】端下载一开始【shǐ】就要连【lián】接到tracker,从tracker获得其他【tā】客【kè】户端IP地址后,才能连接到其【qí】他客户端【duān】下载。在传【chuán】输过程中【zhōng】,也会一直与tracker通【tōng】信,上传【chuán】自己的信息,获【huò】取其它客户端的信息。

trackerslist 是一个开源项目【mù】,每天更新 Trackers list。Aria2 是【shì】支持 RPC 的,类似【sì】与 AriaNG 等【děng】 WEB UI 都是靠 RPC 和 Aria2 通信的,那么我们也是【shì】可以写个脚【jiǎo】本用 RPC 来设【shè】置 Aria2 ,并且【qiě】实时生【shēng】效,无【wú】需重启 Aria2。

脚本内容如下:

#!/bin/sh
#more trackers list, see https://github.com/ngosang/trackerslist

tracker_url='https://raw.githubusercontent.com/ngosang/trackerslist/master/trackers_all.txt'
path='http://10.10.10.5:6800/jsonrpc'
passwd='xxxxxx'

tracker=$(echo -n  $(curl -s -L $tracker_url | sed 'N;s/n//g') | tr ' ' ',')
[ -n "$tracker" ] && curl $path -d '{"jsonrpc":"2.0","method":"aria2.changeGlobalOption","id":"cron","params":["token:'$passwd'",{"bt-tracker":"'$tracker'"}]}'

注意:添加前,先修改 tracker_urlpath 和 passwd 三个变量的值。

保存上面的脚本,使用cron定时任务,即可定时自动更新到Aria2.conf文件【jiàn】中。(关【guān】于任务计划如何开启可以【yǐ】参考文【wén】章:如何【hé】在群晖NAS上面【miàn】使用Crontab任务【wù】计划?)

扩展:aria2.conf配置详解

以下是aria2.conf配置文件的一些说明,请根据个人情况进行修改。

## '#'开头为注释内【nèi】容, 选【xuǎn】项都【dōu】有相应的注释说明, 根据【jù】需要修改 ##
## 被注释的选【xuǎn】项填写的是【shì】默认值, 建议【yì】在需【xū】要【yào】修改时再取消注释【shì】  ##
 
## 文件保存相关 ##
 
# 文件的保存【cún】路【lù】径(可使用绝对路径或相对路径), 默认: 当前启动位【wèi】置
dir=~/downloads
# 启用磁盘缓【huǎn】存【cún】, 0为禁用缓存, 需1.16以上版本, 默认:16M
#disk-cache=32M
# 文件预【yù】分配方式, 能【néng】有效降低磁【cí】盘碎片, 默认:prealloc
# 预分配【pèi】所需时【shí】间: none < falloc ? trunc < prealloc
# falloc和trunc则需要文件系统和内核支持
# NTFS建议使用falloc, EXT3/4建【jiàn】议trunc, MAC 下【xià】需要注释此【cǐ】项
file-allocation=none
# 断点续传
continue=true
 
## 下载连接相关 ##
 
# 最大同时下载任务数, 运行时可修改, 默认:5
max-concurrent-downloads=1
# 同一服务器连接数, 添加时可指定, 默认:1
max-connection-per-server=5
# 最【zuì】小文件分片大小, 添加时可【kě】指定【dìng】, 取值范围1M -1024M, 默认【rèn】:20M
# 假定size=10M, 文件为20MiB 则使用两个来源下载; 文件【jiàn】为【wéi】15MiB 则【zé】使【shǐ】用一个来源下载【zǎi】
min-split-size=10M
# 单个任务最大线程数, 添加时可指定, 默认:5
split=5
# 整体下载速度限制, 运行时可修改, 默认: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退出时保存`错误【wù】/未完成`的下【xià】载任务到【dào】会话【huà】文件
save-session=/etc/aria2/aria2.session
# 定时保存会话, 0为退出时【shí】才保【bǎo】存【cún】, 需1.16.1以上版【bǎn】本, 默认: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], 不【bú】同系【xì】统默【mò】认值不同
#event-poll=select
# RPC监听端口, 端口被占用时可以修改, 默认:6800
rpc-listen-port=6800
# 设置的RPC授权【quán】令牌【pái】, v1.18.4新增功能, 取代 --rpc-user 和 --rpc-passwd 选【xuǎn】项
#rpc-secret=<TOKEN>
# 设置的RPC访问用户名, 此选项新版已【yǐ】废【fèi】弃, 建议改【gǎi】用 --rpc-secret 选项
rpc-user=ruyo
# 设置【zhì】的【de】RPC访问密码, 此选项新版已废弃, 建议改【gǎi】用 --rpc-secret 选项
rpc-passwd=RUYO.net
 
## BT/PT下载相关 ##
 
# 当下载【zǎi】的【de】是一个种子(以.torrent结尾)时, 自动开【kāi】始BT任务, 默认【rèn】:true
#follow-torrent=true
# BT监听【tīng】端【duān】口, 当【dāng】端【duān】口被屏蔽时使用, 默认:6881-6999
listen-port=51413
# 单个种子最大连接数, 默认:55
#bt-max-peers=55
# 打开DHT功能, PT需要禁用, 默认:true
enable-dht=true
# 打开IPv6 DHT功能, PT需要禁用
#enable-dht6=false
# 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
# 当【dāng】种子的分享【xiǎng】率达到这【zhè】个数时, 自动停止【zhǐ】做种, 0为一直做种, 默认【rèn】:1.0
seed-ratio=0
# 强制保存会话, 即使任务已经完成, 默认:false
# 较新的版本开启后会在任务完成后依然保留.aria2文件
#force-save=false
# BT校验相关, 默认:true
#bt-hash-check-seed=true
# 继续之前的BT任务时, 无需再次校验, 默认:false
bt-seed-unverified=true
# 保存磁力链接元数据为【wéi】种子【zǐ】文件(.torrent文件【jiàn】), 默认【rèn】:false
bt-save-metadata=true
阿里企业邮箱、网易企业邮箱、新网企业邮箱
【标准版】400元/年/5用户/无限容量
【外贸版】500元/年/5用户/无限容量
其它服务:网站建设、企【qǐ】业邮箱、数【shù】字证书ssl、400电话、
联系方式:电话:13714666846 微信同号

声明:本站所有作【zuò】品(图文、音视频)均由用户自行上传分享,或互联【lián】网相关【guān】知识整合,仅【jǐn】供【gòng】网【wǎng】友学【xué】习交【jiāo】流,若您【nín】的权利被【bèi】侵害,请联系 管理员 删除【chú】。

本文链接:https://www.city96.com/article_32761.html