树莓派之下载机和NAS服务器

Author Avatar
呃哦 11月 01, 2017

简介

Q: 用树莓派搭建下载机的优势是什么
A: 树莓派耗电量极低,可以24小时挂机不费多少电费

Q: NAS局域云是什么
A: NAS全称是Network Attached Storage,即网络连接存储设备,通俗点讲就是云存储,可以让你在局域网内有个可以任意读写的网盘,在不同设备都可以访问.适合用来存储大文件或者电影等,从而在不同设备都可直接观看电影

开始动手!

搭建下载机

树莓派初体验一文已经提到烧录好了系统,因此下一步就是安装aria2

aria2是一个轻量级和多来源的命令行下载工具,aria2支持 HTTP/HTTPS, FTP, SFTP, BitTorrent 和 Metalink等协议.(注:不支持ed2k协议).

安装

sudo apt install aria2

使用

aria2 安装后对应的命令不是aria2而是aria2c.
可以通过man aria2c查看使用手册
最简单的通过命令下载文件的例子如下

aria2c http://example.org/mylinux.iso

配置

aria2c是有很多命令选项的,我们可以把这些选项写成一个配置文件,在启动时候通过 --conf-path=aria2.conf 命令选项指定配置文件即可
下面是我自己用的配置文件,仅供参考

#文件保存目录 
dir=/home/feng/Downloads/aria2
#因为垃圾运营商还没有ipv6,获取了也没有,关掉
disable-ipv6=true  
#打开rpc给等会的web管理界面用
enable-rpc=true  
rpc-allow-origin-all=true  
rpc-listen-all=true  
#rpc监听端口6800 缺省设置
rpc-listen-port=6800  
#允许断点续传
continue=true  
#进度保存文件
input-file=/home/feng/opt/aria2/aria2.session  
save-session=/home/feng/opt/aria2/aria2.session  
#最大同时下载任务数
max-concurrent-downloads=8

详细配置文件选项可以参考这里

RPC(Remote Procedure Call)远程过程调用

想必有人已经发现上面配置文件中有不少是关于rpc的,aria2是支持RPC远程调用的
通过rpc远程调用,我们可以使用一些web应用来远程调用aria2下载,不然每次都通过命令行调用多累啊.
github有不少大佬写好的web应用项目了,可以直接拿来用,安装也很简单.下面推荐下:

  • webui-aria2 最多人使用的aria2 web应用.支持多国语言,中文汉化不完全,界面简洁
  • yaaw 国产的另一个框架,不过官方不支持中文,github上有汉化版.界面不大喜欢
  • AriaNg 同国产的一个web ui项目,支持中文,在汉化方面应该是最好的一个了

在这里以 webui-aria2 项目为例,在github上克隆项目源码后,直接将项目源码移动到网站目录下即可.而后打开本地网站即可看到.

git clone https://github.com/ziahamza/webui-aria2 #克隆源码
cd webui-aria2
mv ./* /var/www/html/ # 默认网站目录

运行

aria2c  --conf-path=aria2.conf

而后打开 127.0.0.1 即可看到了

开机自启

每次都要输入这条命令多累啊,不仅麻烦还不好管理.因此,把它写作一个Unit,通过systemd来管理是最简单方便的了.下面附上自己写的一个简单的Unit服务.

# sudo vim /usr/lib/systemd/system/aria2.service
;=============================================================================
;     FileName: aria2.service
;         Desc: aria2 download
;       Author: chemf
;        Email: chemf01@163.com
;     HomePage: 
;      Version: 0.0.1
;   LastChange: 2017-10-17 10:03:47
;      History:
;=============================================================================
[Unit]
Description=aria2 download service

[Service]
Type=simple
ExecStart=/usr/bin/aria2c --conf-path=/home/feng/opt/aria2/aria2.conf # 这里的路径需要改为自己的

[Install]
WantedBy=multi-user.target

现在,让我们结束刚才的进程并通过服务启动aria2吧,并让他开机自启

sudo systemctl daemon-reload # 重载服务管理器配置,就是扫描获取到咱们刚写的服务
sudo systemctl start aria2.service # 启动服务
sudo systemctl enable aria2.service # 设置服务开机自启

至此,我们的下载机部分完成了.

搭建NAS服务

samba简介

Samba是在Linux和UNIX系统上实现SMB协议的一个免费软件,由服务器及客户端程序构成。 SMB(Server Messages Block,信息服务块)是一种在局域网上共享文件和打印机的一种通信协议,它为局域网内的不同计算机之间提供文件及打印机等资源的共享服务。 –百度百科-samba

简而言之,Samba就是一个Linux上的共享服务器软件

安装

sudo apt install samba

配置

参考配置如下:

#vim /etc/samba/smb.conf
#其他默认部分略
#======================= Share Definitions =======================
[custom_share] # 分享名
comment = 这是说明 
browseable = yes # 是否允许浏览查看
path = /home/pi/Downloads # 分享目录
create mask = 0750 # 创建文件默认掩码
read only = yes # 只读
guest ok = yes # 是否允许游客登录
public = yes # 同上

运行

systemctl start smbd # 注意了,samba服务对应的是smbd

查看

  • Windows 打开文件管理器,在地址栏输入 \\ip\即可
  • Android 可以下载ES文件管理器,支持查看smb局域网的文件,并在线播放
  • Linux 以Ubuntu为例,打开文件管理器,在 Connect to Server 输入 smb://ip/即可

总结

OK,NAS和下载机搭建完成,但是这是仅限于局域网内控制的,如何在其他地点如公司远程提交下载任务呢,方法有二:

  1. 使用迅雷远程下载,需要编译使用迅雷开源的xware程序,麻烦,而且…官方支持很不友好,并且远程下载意味着咱们的aria2下载白费功夫了…
  2. 使用内网穿透,将树莓派的相关端口映射出去,如此,咱们就可以在公网上访问了,便可以控制提交远程下载了.详情请看下篇文章 内网穿透frp及树莓派的应用