把阿里云盘的文件通过Aria2下载到威联通NAS

  1. 动机
  2. 曲折的摸索
    1. 安装“多云盘挂载工具for QNAP”
    2. 威联通docker的网络模式
      1. RPC
      2. RPC密钥

动机

阿里云盘已经满了,想把云盘的电影下到威联通的NAS里。离线下载

曲折的摸索

安装“多云盘挂载工具for QNAP”

本来是想安装alist但是没有看懂,就用了这个“多云盘挂载工具for QNAP”,这个工具封装了Alist。具体设置可以参考Alist的官方网站
需要阿里云的token,有个链接,点击后可以直接拿到token。

从qanpClub中安装“多云盘挂载”
安装多云盘挂载
进入管理界面
挂载阿里云盘
添加'阿里云盘OPEN,不能添加阿里云盘'

大神p3terx做了封装Aria2的Docker:”p3terx/aria2-pro”(在dokerhub.com里找),在威联通中要输入 p3terx/aria2-pro 才能安装,然后是封装了Aria2NG的”p3terx/ariang”。
威联通创建docker
输入docker的地址
点击“高级设置”
网络配置
根据p3terx大神的文章,直接选用host 不用birdge模式,这样可以减少一次vlan切换,以前是因为没有这种模式,所以才用birgde模式,但是很多人搞不清楚,仍然选这种模式,就是没有搞清楚。
群晖 NAS Docker 进阶教程 - 部署全能下载工具 Aria2 Pro

TIPS: 勾选后就不需要填一遍一模一样的端口号进行映射了,减少了一层 NAT ,会提升一定的网络性能,还能直接使用 IPv6 网络。很多教程会写容器端口映射的设置,那是因为早期 Docker 还没有 Host 网络模式,久而久之端口映射就成为了传统技能。而且这个提示让人觉得得好像会上不了网一样,它很大概率会让人放弃尝试和探索这个选项。

威联通docker的网络模式

  • 默认(NAT)

    默认情况下,容器使用网络地址转换(NAT)进行网络通信。
    Docker 容器使用预配置的“lxcbr0”虚拟交换机连接进行连接。
    LXD 容器使用预配置的“lxdbr0”虚拟交换机连接进行连接。

  • Bridge

    桥接网络允许同一网桥上的容器相互通信,与未连接到同一桥接网络的容器隔离,并将容器连接到设备上的物理网络接口。会创建虚拟交换机以进行中继连接。

  • Host

    此模式仅适用于 Docker 容器。移除容器与 Docker 主机之间的网络隔离,使容器对主机网络接口具有完全访问权限。

使用此网络模式时,端口可能会与系统端口冲突。

  • None

    仅适用于 Docker 容器。容器上禁用了网络连接。选择网络模式“None”时,无法使用其他 Docker 网络模式。

  • VLAN

    将容器连接到预配置的 VLAN 接口。创建虚拟交换机以进行中继连接。

设置存储
选择“绑定装载主机”
这里说明下,/config 是需要指定配置保存的目录,/downloads是下载保存的目录。
设置RPC_SECRET
其他的不用设置,但这个RPC_SECRET到底是什么,其实是你自己设置的,但是为了简便,就用P3TERX,就好。这个是用来对接Aria2和Alist的。相当于是“天王盖地虎”暗号,都得说一样得话。

RPC

RPC(远程过程调用)是一种计算机通信协议,它允许一个计算机程序调用另一个计算机上的子程序或服务,而不需要了解底层网络细节。通过 RPC,你可以像调用本地函数一样调用远程服务器上的函数或方法。
RPC 的一大优势是它隐藏了网络通信的细节,使得远程调用的过程对于程序员来说就像调用本地函数一样简单。这使得分布式系统开发变得更加容易,因为程序员可以将系统拆分成多个模块,并在不同的计算机上运行这些模块,而无需担心通信细节。
在实际应用中,RPC 有多种实现方式,包括基于 HTTP 的 RESTful API、基于 XML 的 SOAP、基于二进制协议的 gRPC 等。选择哪种方式取决于应用的需求、性能要求和技术栈

RPC密钥

RPC(远程过程调用)密钥通常是用于保护远程调用接口的安全性的一种机制。在一些软件中,特别是像 Aria2 这样的下载管理器中,RPC 密钥用于限制对其远程调用接口的访问,以防止未经授权的访问者对其进行操作。
具体来说,在 Aria2 中,RPC 密钥是通过设置 rpc-secret 参数来指定的。这个密钥可以是一个随机生成的字符串,通常应该足够复杂和安全,以防止被他人猜测或者暴力破解。
当设置了 RPC 密钥后,只有知道密钥的用户才能够通过远程调用接口进行操作。对于未提供正确密钥的请求,Aria2 将会拒绝执行,并返回错误信息。
因此,RPC 密钥是用于保护远程调用接口的一种安全机制,用于确保只有授权用户才能够访问和操作相应的服务或软件。

在p3terx的文章是用群晖,对于”环境”设置做如下说明:

LISTEN_PORT:BT 监听端口(TCP)、DHT 监听端口(UDP)设置,默认为6888
RPC_PORT:RPC 端口,默认为6800。WebUI 连接时需要填写的端口。
RPC_SECRET:RPC 密钥,即 WebUI 连接时需要填写的密码,只建议使用字母和数字。
PUID和PGID:这取决于你想让哪个用户管理下载来的文件。群晖 DSM 初始化时创建的用户默认是1026和100。建议通过 SSH 连接群晖后执行id命令去确认一下,不懂怎么做就直接留空。
前 3 个环境变量如果留空后续可以通过配置文件进行修改,否则在配置文件中就是固定的,想要修改就需停止容器后修改相应的环境变量。

PUID和GID留空就行,在威联通中没有默认值。

接着是安装Aria2NG,仍然是用p3terx大神封装好的docker, p3terx/airang。这个的网络也选host。
登录地址是 localhost:6880 默认的端口不用改了。

这个Aria2NG其实就是一个管理的web页面,你看大小就知道了,非常小的,不到1M,本地部署,就是和Aria2部署到一个服务器上,或者可以部署到web服务器上,实现远程离线下载,用vps来下,速度比较快,下完了,再down到本地。当然也可以对接Aria2服务器,不同的服务器也可以的。rpc把下载任务发给Aria2来下载。
这个地方注意设置,我就是这个地方漏了,搞了半天
如果这里是已连接,那么就是OK了
安好后,在Alist设置rpc密钥。
这里的密钥要和Aria2设置的一样

这里基本就设置好了。有点坑的地方是最后的下载。很无语的,坑是Alist的下载方式。一开始以为是离线下载,但是如果你直接下载,提示你权限不够。
坑。。。

离线下载的概念是离线下载到挂载的云盘,感觉更像是“上传”

剩下的就没有什么了。
发送成功后可以在Aria2NG中看到,在Alist中不知道为什么看不到。具体的任务。
速度还是不错的


转载请注明来源,欢迎对文章中的引用来源进行考证,欢迎指出任何有错误或不够清晰的表达。