亦适用于其他64位的ARM平台(arm64v8)。

踩了些坑后发觉还是aria2+浏览器插件的方式更为方便灵活,如果喜欢ariaNg可在客户端运行。

浏览器登录NAS

设置aria2.conf

在NAS中建立容器挂载的文件夹,我是在Download下建立aria2文件夹,然后其中又新建downloadsconfig。并在config中新建aria2.confaria2.session文件。
其中aria2.conf内容如下,把YOUR_RPC_TOKEN改成自己的secret,其他按实际情况自行定制,如PT则要把dht关掉,删去enable-dht之后的全部内容。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
save-session=/config/aria2.session
input-file=/config/aria2.session
save-session-interval=60

dir=/downloads

file-allocation=prealloc
disk-cache=128M

enable-rpc=true
rpc-listen-port=6800
rpc-allow-origin-all=true
rpc-listen-all=true

rpc-secret=YOUR_RPC_TOKEN

max-concurrent-downloads=6
max-connection-per-server=16
min-split-size=10M
split=16
continue=true
max-overall-download-limit=0
max-overall-upload-limit=500K

enable-dht=true
bt-enable-lpd=true
bt-request-peer-speed-limit=1000K
bt-save-metadata=true
bt-max-peers=0
bt-require-crypto=true
enable-peer-exchange=true
listen-port=20000-30000
dht-listen-port=30000-40000
dht-file-path=/config/dht.dat
dht-file-path6=/config/dht6.dat
bt-tracker=udp://62.138.0.158:6969/announce,http://185.225.17.100:1337/announce,udp://51.15.4.13:1337/announce,udp://208.83.20.20:6969/announce,udp://128.1.203.23:8080/announce,udp://184.105.151.164:6969/announce,http://128.1.203.23:6961/announce,udp://51.15.40.114:80/announce,udp://5.2.79.219:1337/announce,udp://5.2.79.22:6969/announce,udp://51.15.76.199:6969/announce,udp://91.216.110.52:451/announce,udp://5.206.28.90:6969/announce,udp://51.38.184.185:6969/announce,udp://176.31.106.35:80/announce,udp://37.235.174.46:2710/announce,udp://188.246.227.212:80/announce,udp://95.211.168.204:2710/announce,udp://8.9.31.140:2000/announce,udp://212.47.227.58:6969/announce

安装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
2
3
4
5
6
7
8
9
docker run \
-d \
--name aria2 \
-u=1000:100 \
-v /share/Download/aria2/config:/config \
-v /share/Download/aria2/downloads:/downloads \
-p 6800:6800 \
--restart=on-failure:5 \
mjysci/aria2:arm64v8

客户端

安装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的808080端口,如60806888

Shared Folder

此处不要用默认的New volume栏,而是从Volume from host选择容器内/downloads/config对应NAS的文件夹。

debug

下载文件写权限问题

如果是admin用户就无此问题,但为了安全我是另建了管理员用户并禁用了admin。docker下创建的文件夹只有owner有写权限,管理员组没有。
首先,尝试过开启Docker User Namespace,但qnap系统比较特殊,修改subuidsubgid无效,无法开启。此方法适用于主流系统,如raspbian和ubuntu等。
然后,尝试了docker run -u <youruid>选项,但从外部通过浏览器访问ariang出问题。权限不对。
可以添加owncloud之类的进行文件管理,但我的需求是从下载文件夹直接剪切到其他文件夹,而不是复制再通过文件管理删除。
目前解决方案是Container Station -> aria2 -> Terminal -> 运行/bin/sh,为所有已下载文件添加组写权限。

1
chmod 775 -R /data/_dl/*