ARM平台qnap用Docker部署aria2
亦适用于其他64位的ARM平台(arm64v8)。
踩了些坑后发觉还是aria2+浏览器插件的方式更为方便灵活,如果喜欢ariaNg可在客户端运行。
浏览器登录NAS
设置aria2.conf
在NAS中建立容器挂载的文件夹,我是在Download
下建立aria2
文件夹,然后其中又新建downloads
和config
。并在config中新建aria2.conf
和aria2.session
文件。
其中aria2.conf
内容如下,把YOUR_RPC_TOKEN
改成自己的secret,其他按实际情况自行定制,如PT则要把dht关掉,删去enable-dht
之后的全部内容。
1 | save-session=/config/aria2.session |
安装Container Station
App Center -> All Apps -> Container Station -> Install
获取arm版aria2镜像
用ssh登录NAS,然后执行以下命令。
1 | docker pull mjysci/aria2:arm64v8 |
获得用户的uid与gid
1 | id <你的用户名> |
运行aria2容器
将下面命令中的/share/Download/aria2/downloads
和/share/Download/aria2/config
换成自己喜欢的位置。-u=1000:100
是用户的uid和gid,换成你的id。
1 | docker run \ |
客户端
安装YAAW for Chrome。点开图标后将设置中的JSON-RPC Path
改成http://token:YOUR_RPC_TOKEN@ip:6800/jsonrpc
。右键下载的设置是分开的,右键插件图标->Options->JSON-RPC,改成一样的地址。
喜欢AriaNg则可以使用本地网页版AllInOne或无需浏览器的应用版。
过期资料备份
登录AriaNg
浏览器访问NAS:<yourip>:6888
。
第一次登录会提示认证失败。AriaNg 设置 -> RPC -> Aria2 RPC 密钥
处填上前面设置的YOUR_RPC_TOKEN
并刷新。
QTS UI设置步骤(可选)
Create Container -> Advanced Settings下设置容器运行参数
Evironment
添加Name为SECRET
的环境变量,Value为你连接aria2要用到的RPC令牌,待会有用。
Network -> Port Forwarding
Container的端口已自动填好,只需填入Host对应的端口,注意不要占用NAS的80
和8080
端口,如6080
,6888
。
Shared Folder
此处不要用默认的New volume
栏,而是从Volume from host
选择容器内/downloads
和/config
对应NAS的文件夹。
debug
下载文件写权限问题
如果是admin
用户就无此问题,但为了安全我是另建了管理员用户并禁用了admin
。docker下创建的文件夹只有owner有写权限,管理员组没有。
首先,尝试过开启Docker User Namespace,但qnap系统比较特殊,修改subuid
和subgid
无效,无法开启。此方法适用于主流系统,如raspbian和ubuntu等。
然后,尝试了docker run -u <youruid>
选项,但从外部通过浏览器访问ariang出问题。权限不对。
可以添加owncloud
之类的进行文件管理,但我的需求是从下载文件夹直接剪切到其他文件夹,而不是复制再通过文件管理删除。
目前解决方案是Container Station -> aria2 -> Terminal -> 运行/bin/sh,为所有已下载文件添加组写权限。
1 | chmod 775 -R /data/_dl/* |