ARM平台qnap用Docker部署aria2

亦适用于其他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/*

×

纯属好玩

扫码支持
扫码打赏,你说多少就多少

打开支付宝扫一扫,即可进行扫码打赏哦

文章目录
  1. 1. 浏览器登录NAS
  2. 2. 设置aria2.conf
  3. 3. 安装Container Station
  4. 4. 获取arm版aria2镜像
  5. 5. 获得用户的uid与gid
  6. 6. 运行aria2容器
  7. 7. 客户端
  8. 8. 过期资料备份
    1. 8.1. 登录AriaNg
    2. 8.2. QTS UI设置步骤(可选)
      1. 8.2.1. Create Container -> Advanced Settings下设置容器运行参数
        1. 8.2.1.1. Evironment
        2. 8.2.1.2. Network -> Port Forwarding
        3. 8.2.1.3. Shared Folder
    3. 8.3. debug
      1. 8.3.1. 下载文件写权限问题
,