三言两语记录树莓派构建Aria2下载机

前段时间我买了一块树莓派4作为儿童节礼物送给自己,除了搭配Coral计算棒整活以外,我一直觉得这样一块低功耗板子还是可以做更多的事情才对。

几天前返校,我把学校里的NAS背回家暂时部署,一个想法突然映入脑海:要是把NAS接到树莓派上,10T西数金盘和树莓派岂不是都能利用起来,而且如果只是下数据的话还不用开电脑就能搞定。就这样,我开始动手实现这个计划。

原材料这次有点特殊:群晖NAS+硬盘;树莓派。

构造一个NFS分区

因为这里用的是群晖的NAS,所以如果想要构造一个合适的NFS分区似乎变得简单了些,下面将按照这个配置介绍创建NFS分区的方法,如果用的是自己DIY的NAS想要了解其他方法可以尝试自行了解nfs-kernel-server。

首先登录进入NAS,进入控制面板。


群晖的NAS默认关闭了NFS服务,所以要先进入File Service把NFS服务打开。

然后再回到Shared Folder,例如说图上的homes folder。

直接edit,首先要为这个目录开放一个NFS的权限,在NFS Permissions里面操作。

然后为账户开放读写权限,在Permissions里面操作即可。

这样就完成了NFS分区的创建,记住下面的路径,以下图为例,完整的路径应该包含“ip:/volume1/homes”。

自动化挂载NFS分区

这里的操作按理说其实并不复杂,例如说我要把NFS挂载到/mnt/nas下面,执行下面的命令即可。

1
sudo mount -t nfs your_ip:/volume1/homes /mnt/nas

这样就可以执行好了。当然如果想要开机自行挂载的话,只需要在/etc/fstab里面填写这个就可以

1
your_ip:/volume1/homes /mnt/nas nfs rw

看起来好像是这样的,不过遗憾的是这个方法在我这里并不work。尝试推测原因,可能有分区表先于NFS服务加载等。总而言之这个方法不是很稳定,所以我们换一种,例如说使用Auto FS来解决这个问题。

首先自然是安装autofs。

1
sudo apt install autofs

接下来开始逐级构造挂载点,首先编辑/etc/auto.master,先把/mnt的位置定位到/etc/auto.nas配置文件上,具体的挂在信息需要由这两份文件组合。

1
/mnt /etc/auto.nas -nosuid,noowners

然后编辑/etc/auto.nas来填写具体的/mnt/nas目录挂载配置。

1
nas -fstype=nfs,user,nolock,nosuid,rw your_ip:/volume1/homes

最后执行如下命令,先检查是否挂载成功,再设置开机自行挂载。

1
2
sudo service autofs restart
sudo update-rc.d autofs defaults

这样挂载NFS就能够稳定成功了。

配置Aria2 & Nginx & WebUI

因为是要构造下载机,所以我还是倾向于选择比较成熟的Aria2+WebUI这一方法(Aria2很久以前就在用,实在是太香了)。

首先是Aria2的配置部分,第一步很简单,安装Aria2。

1
sudo apt install aria2c

然后开始编辑配置文件。

1
2
3
4
5
cd ~
mkdir .aria2
cd .aria2
touch aria2.session
vim aria2.conf

配置文件内容如下。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
dir=/mnt/nas/Download

save-session=/home/pi/.aria2/aria2.session
input-file=/home/pi/.aria2/aria2.session

#configuration file for aria2c
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true

rpc-listen-port=6800
file-allocation=none
disable-ipv6=true
disk-cache=32M
split=3
max-concurrent-downloads=3
max-connection-per-server=3
max-file-not-found=3
max-tries=5
retry-wait=3
continue=true
check-integrity=true
log-level=error
log=/var/log/aria2.log

然后启动下aria2的守护进程即可。

1
sudo aria2c --daemon=true --enable-rpc=true -D --conf-path=/home/pi/.aria2/aria2.conf

然后是nginx,只需要执行sudo apt install nginx安装好nginx然后修改/etc/nginx/sites-enabled/defaults下面的配置即可。修改的内容只需要把/var/www/html字段改成下一步git clone后的路径就行。

最后你要选择一个喜欢的web UI,常见的由yaaw(简洁到有点没话说),AriaNg(推荐),Aria2-WebUI(我选的)。例如说以Aria2-WebUI为例。

1
2
cd /var/www
sudo git clone https://github.com/ziahamza/webui-aria2.git

修改nginx内配置路径为/var/www/webui-aria2后只需要访问 http://your_ip/docs 即可开始enjoy。

真香。用下QQ和Places205数据集测一下。至于讲怎么拿Coral计算棒整活,下次就更。