树莓派4B真的能做NAS么?——好像能。?
21 个回答
先说个结论:树莓派4B可以做NAS,我的那块板子实际速度可以跑到 写500/读800。
这主要还是得益于Raspberry Pi 4B网口和USB的升级,搭配千兆网口和USB3.0速度理论上可以跑满1000兆,使USB的速度不再成为瓶颈,其次网口的千兆带宽又基本上能满足日常需求。
我就讲讲我的配置吧。
物料清单:
千兆路由:
千兆路由十分十分重要,不然其他的都是白搭。
CAT6网线:
不能让网线成为瓶颈了吧。
移动硬盘:
够用就行,RAND 0的速度远大于树莓派网口的速度了,所以挂上树莓派有点不值,所以我的RAID硬盘柜做的DAS。
然后就是Raspberry Pi 4B啦!
系统 & 软件
我目前同时用的两套方案,一套内网文件存储与传输,一套针对外网。
方案一:内网SMB协议传输
我采用的是 基于Raspberry Pi 4B构建的OpenWrt固件
同时完成的软路由与NAS的两样功能,正好符合我的需求。
项目地址:
在这个固件下一块树莓派可以拥有许多许多功能(包括Docker),强烈推荐。
刷好固件了就只需要去Web管理界面挂载硬盘、开启SMB就完事了,操作简单。
方案二:外网文件共享
我采用的是Nextcloud,主要目的是便于 随时随地多终端同步 。
先给大家看下我的Nextcloud(知乎图片服务器改造插不了图片,先用我的图床吧)
这是用树莓派挂COS做的,主要用途不是局域网NAS(为什么呢?先卖个关子)
上面说到了,我们的NAS是用OpenWrt+SMB挂移动硬盘做了,主要负责内网的文件存储与传输,既然都上Nextcloud,那么这个私有云就不能限制在内网了呗。现在能够实现在世界的任何角落跟我的Nextcloud私有云同步文件了。大概讲讲我的实现思路吧。
1. 先在我的树莓派上装上Nextcloud
可以参考我的这一篇博客:
2. 通过内网穿透实现公网访问(有公网IP的小伙伴忽略这一步):
可以参考我的这一篇博客:
(你需要一台高速服务器,我目前在新泽西的云煮鸡带宽能有500兆+)
3. 存储空间,这时候肯定有小伙伴说了:树莓派SD卡那点存储太小了能存啥呀(对存储空间没有要求的同学忽略这一步)
方案一:
挂载移动硬盘之类的物理磁盘。
方案二(我使用的):
这里我用的是FTP服务器做外部大容量存储(噢,你得有一台服务器)
这时候又有同学说了:国内服务器上传带宽都好贵,那速度不是赛蜗牛???
哈哈哈,服务器速度慢我们可以用对象存储呀!
对象存储挂载到FTP服务器,服务器挂载到树莓派。
为了避免带宽从服务器经过而成为速度瓶颈,下面给出一种挂载方式。
参考这篇博客:
一切完成之后你就拥有一个真正意义上的私有云了。
全终端同步
Android客户端(Google Play):
IOS客户端(App Store):
Desktop客户端(Github):
包括了Linux、MacOS、Windows
树莓派买回来闲置了许久,之前一直有在家局域网看视频学习的需求用的是群晖的入门级Nas搭建的samba服务,可以通过ipad或是电脑直接连接,但是感觉服务不太稳定,没有树莓派来的实在,而且入门级的nas不支持docker可玩性不高
本篇文章记录下自己的探索,首先我这里准备一个U盘作为扩展存储用来存储samba网盘的内容,毕竟树莓派的空间比较有限,大家也可以选择移动硬盘等存储
在终端工具上使用ssh连接树莓派
我这里用户树莓派安装的是ubuntu系统,默认的root用户是ubuntu,局域网地址是192.168.10.114,大家根据自己的情况连接
ssh ubuntu@192.168.10.114
一、树莓派挂载U盘
1. 创建挂载目录
# 创建目录
sudo mkdir -p /home/ubuntu/udisk
# 为目录设置读写权限
sudo chmod 777 /home/ubuntu/udisk
2. 查看U盘信息
插入U盘到树莓派上后,输入
sudo fdisk -l
, 查看硬盘位置和硬盘格式
如图所见,硬盘位置为 /dev/sda1 ,硬盘格式是NTFS格式
U盘最好先做好格式化,在windows上面格式化为NTFS格式,否则可能会出现挂载中文文件名乱码等奇怪问题
3. 挂载U盘到树莓派
将硬盘位置
/dev/sda1
挂载到我们创建的udisk挂载目录
sudo mount /dev/sda1 /home/ubuntu/udisk
4. 测试挂载效果
创建文件查看是否挂载成功,我们可以使用vim创建中文名文件看中文格式是否正常
sudo vim 测试.txt
我们使用ls命令查看文件列表,如下中文正常展示说明中文编码没有问题
此刻虽然挂载成功,但重启树莓派后,挂载将会失效。下一小节介绍一下如何设置开机树莓派自动挂载
二、设置开机自动挂载
要实现开机自动挂载U盘,我们需要将U盘的设备信息写入到
/etc/fstab
文件中
1. 查看硬盘UUID信息
blkid
如上面列表中,我们看到U盘设备位置
/dev/sda1
的UUID是
3C646D4A646D07CA
,TYPE是"ntfs"
我们记录下信息准备后面使用:
/dev/sda1: UUID="3C646D4A646D07CA" TYPE="ntfs" PARTUUID="1231653f-01"
2. 挂载信息写入配置文件
查看下
cat /etc/fstab
文件的内容
- 将以下信息,添加到/etc/fstab文件末尾
UUID=3C646D4A646D07CA /home/ubuntu/udisk ntfs defaults 0 0
上面的具体内容含义:
- 要挂载的分区设备号 UUID=3C646D4A646D07CA
- 挂载点 /home/ubuntu/udisk
- 文件系统类型 ntfs
- 挂载选项 defaults
- 是否备份 0
- 是否检测 0
使用vim编辑
/etc/fstab
文件,追加上面的内容
sudo vim /etc/fstab
3. 使配置生效
sudo mount -a
4. 查看挂载情况
df -h
5.重启服务查看自动挂载效果
#重启
sudo reboot
$使用$
sudo lsblk
查看效果
三、树莓派部署Samba服务
1. 安装samba服务
sudo apt-get install samba
2. 创建账户与设置密码
这里把ubuntu为用samba的登录用户,并设置密码
# 创建samba配置的密码文件
sudo touch /etc/samba/smbpasswd
# 添加smb账户
sudo smbpasswd -a ubuntu
执行
smbpasswd
命令后会提示输入samba的账户密码,这个密码后面访问smb服务会用到,我这里使用ubuntu这个默认root用户所以不用新建,用户需要在系统中存在,没有则先用useradd创建。
3. 设置samba的配置文件
需要在smaba配置中指定相关的smb共享文件夹
sudo vim /etc/samba/smb.conf
将如下配置添加到smb.conf最后面
#树莓派本磁盘配置,挂载的是test目录
[local]
comment = local
path = /home/ubuntu/test
writable = yes
browseable = yes
valid user = ubuntu
available = yes
create mask = 0777
directory mask = 0777
public = yes
write list = root,ubuntu
# u盘挂载的配置,目录是挂载目录
[udisk]
comment = udisk
path = /home/ubuntu/udisk
writable = yes
browseable = yes
valid user = ubuntu
available = yes
create mask = 0777
directory mask = 0777
public = yes
write list = root,ubuntu
上面我添加了两个共享目录配置,一个是local共享的是树莓派本地的文件夹
/home/ubuntu/test
,一个是udisk共享的是U盘挂载的
/home/ubuntu/udisk
文件夹,大家可以根据自己情况设置一个或是多个
各个参数具体含义如下:
- [udisk]:分享名称
- comment:备注描述
- path:共享文件夹目录
- writable:是否可写入,不能写入就不能创建文件夹
- browseable:是否可以访问浏览
- valid user:允许哪个用户访问,这里需要按照指定的账户访问samba服务
4. 重启服务使配置生效
# 重启服务
sudo /etc/init.d/smbd restart
# 查看服务状态