一、家庭服务器实现的主要功能
1、流媒体播放服务:利用 DLNA 实现电视、手机、电脑播放其上面的媒体文件。
2、文件共享:利用 samba
实现手机、电脑等终端与服务器的文件共享。
3、自动下载:利用 aria2c
实现自动下载。
二、准备工作
1、树莓派B+ (笔者是树莓派3B)
2、安装raspbian系统,具体安装方法见: 入手树莓派 或 Mac下制作树莓派系统盘。
3、设置固定IP为192.168.1.120,设置方法见: 利用VNC远程控制树莓派。
4、安装vnc软件,最新版系统自带vncserver
无需安装。安装方法见: 利用VNC远程控制树莓派。
5、准备了一块旧移动硬盘(80G)
6、准备了可外接供电的usb hub一个,树莓派本身输出电流较小,很难保证移动硬盘的运行,所以加了一个可外接供电的usb hub。(笔者没用供电的USB hub ,只有树莓派3B 配5V 2A 电源,外接 320G 移动硬盘。没问题)
三、安装samba实现文件共享
1、准备硬盘
我直接就分了一个区,格式化为ext4
格式,据说如果是fat
或者ntfs
等格式可能会出现权限问题,干脆直接格式化为ext4
格式。
windows7
环境,利用软件 MiniTool Partition Wizard
(下载地址)。
- 先将原分区删除
- 然后点击
creat
- 在格式那里选
ext4
,类型我选的primary
,label
用的nas
- 然后点击apply就开始格式化硬盘了。(如果用容量较小的U盘,可以直接用树莓派格式化,命令为:
mkfs -t ext4 /dev/sdb1
)
2、将硬盘挂载到树莓派上
树莓派开机后,用putty连接(方法见 树莓派学习笔记 )后,为方便操作直接进行root用户(具体方法点击查看一楼评论处),然后运行df –h,查看硬盘挂载情况。
root@raspberrypi:/home/pi# df -h
Filesystem Size Used Avail Use% Mounted on
rootfs 2.9G 2.4G 387M 87% /
/dev/root 2.9G 2.4G 387M 87% /
devtmpfs 183M 0 183M 0% /dev
tmpfs 38M 792K 37M 3% /run
tmpfs 5.0M 0 5.0M 0% /run/lock
tmpfs 75M 0 75M 0% /run/shm
/dev/mmcblk0p1 56M 9.7M 47M 18% /boot
/dev/sda1 70G 24M 67G 1% /media/nas
最后一行/dev/sda1
说明硬盘已经挂载。为下一步安装samba
,将共享文件夹设为/samba
。于是新建文件夹:
sudo mkdir /samba #新建文件夹
sudo chmod 777 /samba #设置访问权限
将硬盘挂载到/samba
文件夹,具体步骤:
umount /dev/sda1 #取消挂载
mount /dev/sda1 /samba #将硬盘挂载到/samba文件夹
这里再查看df -h
,结果为:
这里表示已挂载成功。
3、解决硬盘的自动挂载
树莓派重启或者硬盘插拔都需要对硬盘进行重新挂载,比较麻烦,因此需要自动挂载。这里要修改/etc/fstab
文件。有人喜欢用vi
进行编辑,我比较喜欢直接vnc
连接上后,用编辑器进行编辑。
可以看到,fstab
文件其实就是一个表格,表格各列的含意如下:
第一列:磁盘分区名/
卷标,一般是/dev/sdaN
(N
表示正整数)
第二列:挂载点,我们在这里把/dev/sda1
挂到/samba
上。
第三列:缺省设置,一般用defautls
。
第四列:是否备份:0
——表示不做 dump
备份;1
——表示要将整个 <fie sysytem>
里的内容备份;2
也表示要做 dump
备份,但该分区的重要性比1
小。
第五列:检测顺序:0
——不进行检测;根分区/
,必须填写1
,其它的都不能填写1
。如果有分区填写大于1
的话,则在检查完根分区后,从小到大依次检查下去。
具体填写方法在图中已注明。
挂载 NTFS 硬盘
sudo apt-get install ntfs-3g #实现 ntfs 读写 sudo umount /dev/sda1 #取消挂载 sudo mount -t ntfs-3g /dev/sda1 /samba #挂载硬盘到目录 /samba sudo nano /etc/fstab #编辑fstab让移动硬盘开机自动挂载 #在最后一行添加如下内容 /dev/sda1 /samba ntfs-3g defaults,noexec,umask=0000 0 0 #保存重启,即可生效
4、安装samba
sudo apt-get update #更新一下源
sudo apt-get install samba samba-common-bin #安装 samba
安装完成后,配置/etc/samba/smb.conf
文件
在其最后添加以下命令:
[share]
path = /samba
valid users = root pi #允许访问的用户,这里我用的是root 和pi 两个
browseable = yes
public = yes
writable = yes
保存后,重启samba
服务,输入
sudo /etc/init.d/samba restart
注意:如果遇到以下错误:
[ ok ] Starting nmbd (via systemctl): nmbd.service.
[....] Starting smbd (via systemctl): smbd.serviceJob for smbd.service failed. See 'systemctl status smbd.service' and 'journalctl -xn' for details.
- 解决办法:将所有#号以后的注释去掉
最后添加共享用户:
sudo smbpasswd –a pi #这里我用的pi。
5、测试 samba 安装效果
在windows
计算机上,打开我的电脑,在左下角网络点右键,选映射网络驱动器
点击完成会提示输入用户名和密码,这里输入设置的共享用户名和密码。
最后在计算机下会出现共享的文件夹,点开文件夹,新建test.txt文件进行一下测试,如果能正常建立,就说明ok了,如果不行,应该是权限问题,可再重新设置一下/samba文件夹权限。这里注意,如果在/samba文件夹下新建新的文件夹,也需要设置权限,可以用vnc连接后,用管理员浏览,点右键设置文件夹权限为read and write,也可以用chmod命令设置。
四、安装 DLNA 实现流媒体服务器
DLNA 主要面向媒体资源(比如视频、音乐)实现网内共享,具体步骤如下:
1、安装 minidlna
sudo apt-get update #更新一下安装源
sudo apt-get install minidlna #安装 minidlna
2、设置配置文件
设置/etc/minidlna.conf
文件,在文件尾部添加如下内容:
media_dir=A,/samba/DLNA/Music
media_dir=P,/samba/DLNA/Picture
media_dir=V,/samba/DLNA/Video
db_dir=/samba/DLNA/db
log_dir=/samba/DLNA/log
3、建立文件夹
在/samba
文件夹下,建立以上文件夹,并设置好权限为read and write。
4、重启 minidlna
sudo /etc/init.d/minidlna restart
测试:
sudo /etc/init.d/minidlna status
返回如下结果为正常。
或者
5、在电脑上进行播放
先在树莓派以上对应的video等文件夹内存上一些文件(可利用samba
直接从电脑上考入),然后返回到计算机进行操作。
点击我的电脑下面的网络,出现媒体设备
双击进入媒体播放器,在左边的列表栏下方其它媒体库中出现raspberrypi:root,点击后,可选择音乐,视频等。
这时双击就可以欣赏了。
6、手机上进行播放
手机上实现网络共享,可安装es file explorer软件,在其网络处进行设置,设置方法与电脑基本一样,这里不再详述。设置后,文件均可浏览,媒体文件双击可以在线播放。
也可以直接使用updp播放器,这里我安装的是moliplayer,可以在其附近设备里,直接找到raspberrypi:root,访问其媒体问题,注意,这里是访问的DLNA共享,所以不需要再输入密码。
7、智能电视进行播放
智能电视一般都是用的android系统,与手机基本一样。
五、安装 aria2 实现下载机功能
1、安装aria2
sudo apt-get update #更新一下安装源
sudo apt-get install aria2 #安装aria2
2、创建配置文件
在/etc
目录下创建aria2
目录用来存放配置文件:
sudo mkdir /etc/aria2 #创建 aria2 目录
sudo touch /etc/aria2/aria2.session #创建空白的 aria2.session 文件
sudo nano /etc/aria2/aria2.conf #创建配置文件
在aria2.conf
文件中输入以下内容:
#=========文件保存目录自行修改
dir=/samba
disable-ipv6=true
enable-rpc=true #打开rpc的目的是为了给web管理端用
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
这里为了方便共享,我直接设置将文件下载到samba
共享文件夹。
3、启动 aria2
sudo aria2c --conf-path=/etc/aria2/aria2.conf
如果没有提示任何错误信息,那就按ctrl+c
停止上面的语句,转为后台运行:
sudo aria2c --conf-path=/etc/aria2/aria2.conf -D
同时其此句写到开机启动中,编辑/etc/rc.local
,如下
4、安装appache
为了能web
管理aria2
进行下载,需要安装yaaw
和apache
环境。
sudo apt-get install apache2 #安装appach
chmod 777 /var/www/html #修改/var/www的权限
5、安装yaaw
从https://github.com/binux/yaaw下载yaaw,点击右下角的
,下载后将解压后的文件夹内内容拷贝到/var/www
文件夹下。这时输入树莓派IP
,如果出现以下页面,则表示已经正常工作了。
这里可以点add
添加下载任务,具体方法不再详述。
到此,树莓派的NAS服务器搭建完成,试了一下效果,还是很满意的。
整理自:@小五义[http://www.cnblogs.com/xiaowuyi/p/4051238.html] QQ群:64770604