为何要在树莓派上使用Samba?
得益于SMB/CIFS协议的开源实现——Samba,树莓派Samba让用户能够在Windows、macOS和Linux系统间轻松共享文件夹。借助开源的SMB/CIFS协议实现Samba,树莓派无需太多操作即可在Windows、macOS和Linux系统间共享文件夹。
使用带Samba的树莓派文件服务器的主要动机在于其成本效益,使其成为个人或小型办公网络的实用选择。虽然Synology或QNAP等商业NAS设备提供了优雅的Web界面和冗余选项,但它们价格昂贵且功耗高。一台24小时不间断运行的树莓派通常耗电不到10瓦,非常适合个人备份、多媒体共享或小型办公环境——如需了解使用树莓派进行创客教育的创意,请查看SunFounder的创客教育页面。
当然,这其中也有权衡。商业NAS设备具备RAID管理、热插拔驱动器和高级快照系统等功能。树莓派缺乏这些企业级功能,但对于许多创客、学生和小型企业而言,它提供了一个易于上手的入门级NAS——是任何人构建树莓派NAS的完美起点。本指南面向那些熟悉Linux且希望将树莓派转变为安全可靠的网络共享服务器的用户。
什么是Samba?
Samba实现了服务器消息块(SMB)和通用互联网文件系统(CIFS)协议,使得UNIX类系统和Windows系统之间能够共享文件和打印机。它让Linux服务器(如树莓派)在网络上看起来就像一个Windows文件服务器——这是任何Samba服务器设置的基本组成部分。
协议兼容性
现代Samba版本支持SMB 2和SMB 3,提供加密、性能提升以及与Windows 10/11和macOS的兼容性。由于已知漏洞,传统的SMB 1协议默认被禁用。保持软件包更新可确保与现代客户端的最高安全性和互操作性。
硬件和系统设置
稳定的树莓派网络存储设置始于可靠的硬件,包括稳定的电源和外部SSD或HDD。推荐组件包括:
配备千兆以太网的树莓派4或5
高质量5V/3A电源
用于存储的外部SSD/HDD
1.挂载文件系统
大多数外部驱动器为与Windows兼容而格式化为NTFS或exFAT,但Linux在ext4文件系统上表现最佳,这能确保你的树莓派NAS获得更好的性能和可靠性。如果你偏好跨平台访问,使用ntfs-3g驱动器的NTFS格式效果良好。要实现自动挂载,请使用驱动器的UUID编辑/etc/fstab文件:
sudo blkid
sudo nano /etc/fstab
示例条目:
UUID=6803CC6E2309FCA2 /media/storage ntfs defaults,uid=pi,gid=pi,umask=000 0 0
编辑后,使用以下命令测试:
sudo mount -a
2.更新系统
在安装Samba之前:
sudo apt update && sudo apt upgrade -ysudo apt install ntfs-3g
在树莓派上安装Samba
Samba在树莓派OS、Debian和Ubuntu的默认软件源中可用,使得即使是初学者也能轻松配置树莓派上的Samba:
sudo apt install samba samba-common-bin -y
验证安装和服务状态:
systemctl status smbd
你应该能看到“active (running)”表示守护进程已准备就绪。
配置Samba共享
配置共享文件夹
在典型的树莓派SMB设置中,在编辑Samba配置文件之前,需要创建共享文件夹并分配适当的权限。为共享内容创建一个目录:
sudo mkdir -p /media/usb-storage/sharedsudo chmod -R 775 /media/usb-storage/shared
编辑配置文件:
sudo nano /etc/samba/smb.conf
在文件底部,定义共享资源:
[Shared]
path = p /media/usb-storage/sharedbrowseable = yeswritable = yesvalid users = picreate mask = 0775directory mask = 0775
全局部分
顶部的[global]块定义了服务器范围的参数:
[global]workgroup = WORKGROUPserver string = RaspberryPi File Serversecurity = userinterfaces = eth0log file = /var/log/samba/%m.logmax log size = 1000
管理Samba用户
Samba用户独立于Linux账户,但它们会映射到Linux账户——这是维护安全的树莓派Samba环境的关键步骤。首先,确保Linux用户存在:
sudo adduser pi
然后将同一用户添加到Samba:
sudo smbpasswd -a pi
重启服务:
sudo systemctl restart smbd
设置目录所有权以确保写入权限:
sudo chown -R pi:pi /media/usb-storage/shared
对于更精细的控制,可以使用setfacl为多用户环境应用访问控制列表(ACL)——详见Linux ACL使用指南中的详细示例。
访问共享文件夹
从Windows访问
要通过SMB文件共享连接,请在Windows上打开文件资源管理器并输入raspberrypiShared以访问你的文件。打开文件资源管理器并输入:
raspberrypiShared
或
<Pi_IP_Address>Shared
使用之前创建的Samba凭据。你可以右键点击并选择“映射网络驱动器”以便在登录时自动重新连接——详见SunFounder的Rascam文档中的“映射网络驱动器”说明。
https://docs.sunfounder.com/projects/rascam/en/latest/check_photos.html
共享文件夹中新增了一个名为“SunFounder”的示例文件夹
从Linux访问
使用CIFS挂载:
sudo apt install cifs-utilssudo mkdir /mnt/sharedsudo mount -t cifs //raspberrypi/Shared /mnt/shared -o username=pi
自动挂载和启动
自动挂载外部驱动器
为确保外部磁盘在每次启动时都能挂载,请按照之前所述将其UUID添加到/etc/fstab中。每次重启后务必进行测试以确认,确保你的DIY树莓派NAS每次系统启动时都能可靠运行。
启动时启用Samba
Samba服务会自动启动,但请验证:
sudo systemctl enable smbd nmbd
如果驱动器挂载缓慢,Samba可能会在卷可用之前启动。在/etc/systemd/system/smbd.service.d/override.conf中创建一个小的延迟:
[Service]
ExecStartPre=/bin/sleep 10
安全性、稳定性和性能优化
共享的树莓派家庭服务器必须通过实施加密和防火墙规则来平衡可访问性与保护。
禁用过时的协议
在[global]部分添加:
min protocol = SMB2
这会阻止不安全的SMB 1连接。
使用加密和签名
为保护在不受信任网络上的数据:
smb encrypt = required
这会强制执行与SMB 3客户端兼容的加密。
防火墙和网络规则
限制对受信任子网的访问:
hosts allow = 192.168.1.0/24
如果安装了简单防火墙(UFW),请配置:
sudo ufw allow samba
日志记录和审计
启用详细日志以便进行故障排除:
log level = 2 log file = /var/log/samba/%m.log
定期轮换日志以防止磁盘饱和。
性能调优
经过适当优化的树莓派4/5网络吞吐量可超过80–100 MB/s——如需基准测试数据和优化技术,请参阅树莓派基金会性能指南。推荐调整:socket options = TCP_NODELAY SO_RCVBUF=65536 SO_SNDBUF=65536
aio read size = 16384aio write size = 16384
资源和并发管理
Samba是多线程的。在内存有限(1–2 GB)的系统上,限制同时连接数:
max smbd processes = 10
监控工具如htop或iotop有助于确保在传输过程中磁盘I/O和CPU负载保持在安全范围内。
结论
树莓派Samba设置是将树莓派转变为实用家庭文件服务器的最简单且最有价值的方式之一。只需几个命令,你就可以在Windows、Linux和macOS设备间无缝共享文件夹,同时保持成本和功耗最低。通过遵循本指南中的配置、安全和优化步骤,你的树莓派可以成为个人使用或小型办公环境的可靠且高效的存储中心。无论你是备份文件、流式传输媒体还是在本地网络中协作,Samba都能让你的树莓派成为你数字生态系统的重要组成部分。
如果你想查看具体产品内容,可以通过原文进行了解:
https://www.sunfounder.com/blogs/news/raspberry-pi-samba-how-to-set-up-a-simple-and-secure-file-server-for-your-home-network
正式入手 树莓派CM0 !
官方网站:https://edatec.cn/zh/cm0
淘宝店铺:https://edatec.taobao.com/
全面升级!树莓派 CM0NANO 单板计算机发布!
2997