树莓派搭建小型 NAS 服务器

0x00

网络连接存储设备(英语:Network Attached Storage,缩写:NAS)[1],是一种专门的数据存储技术的名称,它可以直接连接在电脑网络上面,对异质网络用户提供了集中式数据访问服务。

0x01

准备工作

  • 树莓派一个(安装官方系统 raspbian)
  • 硬盘一个(作为存储介质)
  • windows电脑一台

安装 samba 实现文件共享

硬盘格式化为 ext4(据网上介绍说如果是 fat 或者 ntfs 等格式可能会出现权限问题,于是干脆直接格式化为 ext4 格式。)

emm 然后发觉分区助手只能格为 ext3,所以用了 MiniTool Partition Wizard Home Edition 8.0,选择 Free Edition 就行了。具体使用方法是先将原分区删除,然后点击 create,在格式那里选 ext4,类型我选的 primary,label 用的 nas,然后点击 apply 就开始格式化硬盘了。

将硬盘挂载到树莓派上

先使用 sudo fdisk -l 查看硬盘。

查看硬盘设备

可以看到这里 /dev/sda2 就是刚刚格式化的硬盘分区

接下来我们需要先取消挂载 /dev/sda2,然后在 / 目录下创建一个 samba 文件夹,给权限 777 所有用户读写执行,最后把 /dev/sda2 挂载到 /samba 文件夹

1
2
3
4
sudo umount /dev/sda2
sudo mkdir /samba
sudo chmod -R 777 /samba
sudo mount /dev/sda2 /samba

df -h 查看挂载是否成功

设置硬盘的自动挂载

每次树莓派重启或者硬盘插拔都需要对硬盘进行重新挂载,比较麻烦,因此需要自动挂载。

cat /etc/fstab

/etc/fstab 中加入

1
/dev/sda2 /samba ext4 defaults 0 0

可以看到,fstab文件其实就是一个表格,表格各列的含意如下:

  • 第一列:磁盘分区名/卷标,一般是/dev/sdaN(N表示正整数)

  • 第二列:挂载点,我们在这里把/dev/sda1挂到/samba上。

  • 第三列:缺省设置,一般用defautls。

  • 第四列:是否备份:0——表示不做 dump 备份;1——表示要将整个 里的内容备份;2 也表示要做 dump 备份,但该分区的重要性比 1 小。

  • 第五列:检测顺序:0——不进行检测;根分区(/),必须填写 1,其它的都不能填写 1。如果有分区填写大于 1 的话,则在检查完根分区后,从小到大依次检查下去。

install samba

1
2
sudo apt-get update
sudo apt-get install samba samba-common-bin

安装完成后,修改配置文件 /etc/samba/smb.conf

1
2
3
4
5
6
[share]                                   #共享文件的名称,将在网络上以此名称显示 
path = /samba #共享文件的路径
valid users = root pi #允许访问的用户,这里我用的是root 和 pi 两个用户
browseable = yes #允许浏览
public = yes #共享开放
writable = yes #可写

然后重启 samba 服务

1
sudo /etc/init.d/samba restart

添加共享用户 pi

1
smbpasswd -a pi

测试 samba 安装效果

在windows计算机上,打开我的电脑,在左下角网络点右键,选映射网络驱动器

输入 \\树莓派ip\share

点击完成会提示输入用户名和密码,这里输入设置的共享用户名和密码。

最后在计算机下会出现共享的文件夹,点开文件夹,新建 test.txt 文件进行测试,如果能正常建立,就说明成功了,如果不行,应该是权限问题,可再重新设置一下 /samba 文件夹权限。

测试新建文件

安装 DLNA 实现流媒体服务器

DLNA 的全称是 DIGITAL LIVING NETWORK ALLIANCE(数字生活网络联盟), 其宗旨是 Enjoy your music, photos and videos, anywhere anytime, DLNA(Digital Living Network Alliance) 由索尼、英特尔、微软等发起成立、旨在解决个人电脑,消费电器,移动设备在内的无线网络和有线网络的互联互通,使得数字媒体和内容服务的无限制的共享和增长成为可能。

DLNA 主要面向媒体资源(比如视频、音乐)实现局域网内共享。

install minidlna

1
2
sudo apt-get update
sudo apt-get install minidlna

安装完成后修改配置文件 /etc/minidlna.conf

1
2
3
4
5
media_dir=A,/samba/DLNA/Music                #A表示这个目录是存放音乐的,当minidlna读到配置文件时,它会自动加载这个目录下的音乐文件 
media_dir=P,/samba/DLNA/Picture
media_dir=V,/samba/DLNA/Video
db_dir=/samba/DLNA/db #配置minidlna的数库数据的存放目录
log_dir=/samba/DLNA/log #配置日志目录

在 /samba 下创建好相应的文件夹之后,重启服务

1
sudo /etc/init.d/minidlna restart

重启成功之后,在电脑的网络会发现设备

发现树莓派设备

播放音乐

安装 aria2 实现下载机功能

install aria2

1
2
sudo apt-get update
sudo apt-get install aria2

setting

1
2
3
4
5
6
# 在/etc目录下创建aria2目录用来存放配置文件:
sudo mkdir /etc/aria2
# 创建空白的aria2.session文件:
sudo touch /etc/aria2/aria2.session
# 创建配置文件
sudo nano /etc/aria2/aria2.conf
1
2
3
4
5
6
7
8
9
10
11
12
#=========文件保存目录自行修改 
dir=/samba
disable-ipv6=true
#打开rpc的目的是为了给web管理端用
enable-rpc=true
rpc-allow-origin-all=true
rpc-listen-all=true
#rpc-listen-port=6800
continue=true
input-file=/etc/aria2/aria2.session
save-session=/etc/aria2/aria2.session
max-concurrent-downloads=3

具体参数可以参考这个链接 https://aria2c.com/usage.html

启动aria2:

1
sudo aria2c --conf-path=/etc/aria2/aria2.conf

如果没有提示任何错误信息,那就按 ctrl+c 停止执行,转为后台运行:

1
sudo aria2c --conf-path=/etc/aria2/aria2.conf -D

为了能用 WEB 界面管理 aria2 进行下载,需要安装 yaaw 和 apache 环境。

1
2
3
4
5
6
7
8
9
# install apache
sudo apt-get install apache2
sudo chmod -R 777 /var/www
# install yaaw
# 或者进入链接直接点击 download zip 也行:
# 通过 mv 命令把 yaaw 文件夹里面的所有文件都复制到网页根目录 /var/www/html
git clone https://github.com/binux/yaaw.git
sudo rm /var/www/html/index.html
sudo mv yaaw/* /var/www/html/

此时输入树莓派 IP,如果出现以下页面,则表示已经正常工作了。

WEB 界面

服务开机自启动

安装配置完 samba dlna aria2 任务基本就算完成了,不过我们还需要最后一步 就是开机自动启动这些服务

在 /etc/rc.local 中添加

1
2
3
sudo /etc/init.d/samba restart
sudo /etc/init.d/minidlna restart
sudo aria2c --conf-path=/etc/aria2/aria2.conf -D

0x02

好了。以上。有些东西自己去发掘吧。

参考资料:

树莓派学习笔记(5):成功实现NAS家庭服务器(流媒体播放、文件共享及下载机)

百度云资源使用 Aria2 来下载

迅雷离线助手

https://github.com/ohsc/ThunderLixianAssistant

https://github.com/binux/ThunderLixianExporter

封面出处:https://www.pixiv.net/member_illust.php?mode=medium&illust_id=72384366

Author: ronething
Link: https://blog.ronething.cn/20180518-pi.html
Copyright Notice: All articles in this blog are licensed under CC BY-NC-SA 4.0 unless stating additionally.