说明
简要
在 linux 系统上安装 aria2 、并接入 cloudreve 实现用户友好的可视化离线下载管理。
软件
aria2: aria2 是一个跨平台、开源的下载软件,支持多下载方式,比如http、https、ftp、磁力链、bt种子下载。官网首页:https://aria2.github.io/
cloudreve:cloudreve是一个开源的网络云盘解决方案,支持本地,异机,多家云存储整合。官网首页:https://cloudreve.org/
原因
cloudreve 的离线下载由 aria2 驱动。但是 cloudreve 最后是以可执行文件交付的,而 aria2 则是以命令行、软件包的形式交付的。所以两者的使用并不相同。
开始
创建用户
为了方便处理 cloudreve 和 aria2 的云存储,干脆就创建一个新的用户:
sudo adduser <new_user_name>
为新用户设置密码:
sudo passwd <new_user_name>
为新用户添加sudo
权限,这样在后续操作的时候可以方便很多:编辑 /etc/sudoers
文件,找到类似root ALL=(ALL:ALL) ALL
的行,然后复制一份,变成<new_user_name> ALL=(ALL:ALL) ALL
,然后保存,之后使用新用户就可以正常使用sudo
了。
安装 aria2 并配置
在 aria2 的官网可以看到下载的方式。绝大部分 linux 都可以在包管理器中下载和安装。对于 macos ,可以使用 homebrew 安装。可以先使用su
命令切换到我们刚才为云盘专门设置的用户。
su <new_user_name>
安装过程很简单,就是使用类似apt
、yum
安装。(选择操作系统适合的)
sudo apt install aria2
yum -y install aria2
之后,我们需要配置 aria2。如果通过yum
或者apt
方式安装的,有可能不会生成默认配置文件,所以我们需要自己创建默认的配置文件夹。通常,Aria2 的配置文件名为 aria2.conf
,可以放置在 /etc/aria2/
目录下。
aria2 的配置文件大致如下:
基本设置
-
dir:指定下载文件的保存目录,默认是当前目录。
-
input-file:指定一个文件作为输入,其中包含了需要下载的链接等信息。
-
save-session:指定一个文件路径,用于保存会话信息,方便在程序重启后恢复未完成的下载任务。
-
continue:设置是否继续下载已部分完成的文件(默认值为 true)。
下载控制
-
max-concurrent-downloads:设置同时进行的最大下载任务数。
-
max-connection-per-server:对单个服务器的最大连接数,可以提高下载速度。
-
min-split-size:当文件大于这个值时,aria2 将尝试分割文件并使用多个连接下载。单位可以是 K、M 或 G。
-
split:每个任务使用的最大线程数,可以与
min-split-size
结合使用以优化下载性能。
连接设置
-
check-certificate:是否检查 SSL/TLS 证书(默认为 true)。
-
follow-torrent:是否跟随 torrent 文件中的 URL 列表(默认为 false)。
-
bt-enable-lpd:是否启用本地节点发现(Local Peer Discovery,LPD),有助于发现同一局域网内的种子客户端(默认为 false)。
bt下载设置
-
listen-port:设置监听端口,用于接收其他 BitTorrent 客户端的连接请求。
-
dht-listen-port:设置 DHT 网络监听端口。
-
enable-dht:是否启用 DHT (Distributed Hash Table) 功能,这有助于在没有 tracker 的情况下发现其他 peer(默认为 false)。
-
enable-dht6:是否启用 IPv6 的 DHT 支持(默认为 false)。
-
bt-stop-timeout:当没有活动 peer 时,等待的时间(秒)后停止下载。
其他设置
-
log:指定日志文件的位置,记录 aria2 的运行日志。
-
log-level:设置日志级别,如 error、warn、info、debug 等。
-
daemon:是否以后台模式运行 aria2(默认为 false)。
-
rpc-listen-all:RPC 服务是否监听所有网络接口(默认为 false)。
-
rpc-allow-origin-all:是否允许所有源访问 RPC 接口(默认为 false),对于安全性有要求的场景建议关闭。
按照 cloudreve 的要求,需要在其配置文件中启用 RPC 服务,并设定 RPC Secret。所以需要添加如下内容:
# 启用 RPC 服务
enable-rpc=true
# RPC监听端口
rpc-listen-port=6800
# RPC 授权令牌,可自行设定
rpc-secret=<your token>
之后,创建必要的目录(比如上文的log),并且给相关用户足够的权限以写入日志文件。
sudo mkdir -p <下载路径>
sudo mkdir -p /var/log/aria2
sudo mkdir -p /var/run/aria2
sudo chmod -R 755 <下载路径>
sudo chmod -R 755 /var/log/aria2
sudo chmod -R 755 /var/run/aria2
启动 aria2
使用 systemd
服务来管理 Aria2 的启动和停止。首先,确保 Aria2 的服务文件存在:
sudo systemctl enable aria2
然后启动 Aria2 服务:
sudo systemctl start aria2
如果 aria2 的服务文件不存在,可以创建相关的服务文件:在 /etc/systemd/system/
目录下创建一个名为 aria2.service
的文件,并写入如下数据:
[Unit]
Description=Aria2c Download Manager
After=network.target
[Service]
User=<new_user_name>
Group=<new_user_group>
ExecStart=/usr/bin/aria2c --conf-path=<配置文件路径>
Restart=on-failure
RestartSec=10s
[Install]
WantedBy=multi-user.target
之后重新重新加载 systemd
配置
sudo systemctl daemon-reload
启动 Aria2 服务并设置开机自启:
sh
深色版本
sudo systemctl start aria2
sudo systemctl enable aria2
6. 检查 Aria2 服务状态
确保 Aria2 服务正在运行:
sudo systemctl status aria2
如果成功了,大概是这样的样子:
接入 cloudreve
在 cloudreve 后台控制面板中,打开离线下载节点,找到需要编辑的节点。打开“是否需要主机接管离线下载任务?”,然后按照规则进行编辑。
其中,RPC 授权令牌需要和相关的配置文件/etc/aria2/aria2.conf
相同。之后需要给 cloudreve 一个下载的缓存地址。我推荐这个缓存地址的存储空间大一点,因为 cloudreve 在处理远程下载的时候,如果目标存储是第三方,那么会先下载到这个缓存的地址后再转存到第三方的存储策略中。缓存的目录需要给 cloudreve 进程的用户足够的读、写权限:sudo chown <cloudreve> <缓存的目录>
,当然,如果希望递归给下面的目录,可以添加-R
参数:sudo chown -R <cloudreve> <缓存的目录>
。
这样,cloudreve 就可以正常接入 aria2,并且可以使用 aria2 进行离线下载了。
:-)