Samba是一个“Linux/Unix 系统与 Windows 系统进行互操作的软件套组”,因而常用于搭建简易 NAS 系统。
简单来说,它实现了一个文件服务,分别将 Windows 和 Unix 系的文件流写入为 Unix 系的文件,从而让用户免于处理 NTFS、FAT/exFAT、APFS 等相对底层的磁盘存储格式转换过程,通过网络挂载磁盘,实现云存储。
在家庭或者公司等局域网环境下使用 Samba 搭建 NAS,可以实现安全、便捷的文件传输和访问。
下面以 Debian/Ubuntu 系统(硬件为树莓派 4B)为例,演示 Samba 服务器搭建及 Windows、macOS 挂载的实现过程。
服务端
安装 Samba 服务端
此处以 aptitude 作为包管理器,但 apt、apt-get 的命令是通用的。
# (可选)安装aptitude
sudo apt-get update
sudo apt-get install -y aptitude
# 更新软件源,并安装samba服务端
sudo aptitude update
sudo aptitude install -y samba
准备共享目录
将 Linux 建议作为共享目录的/share
作为存储文件的目录,并调整好操作权限,以支持文件夹和文件的读写操作。
# 以Linux建议的/share目录作为共享目录
sudo mkdir /share
# 配置目录权限
sudo chmod 777 /share
(可选)添加用户
如果直接以 root 用户使用,可以跳过此步;但出于安全性考虑,应该使用非 root 用户(例如树莓派的 pi 用户);此处以 smbuser
为例。
sudo adduser smbuser
初始化 samba 配置
安装 samba 时,默认配置文件会生成到/etc/samba/smb.conf
,需要对该文件进行一定的调整。此处用 nano 作为文本编辑器,也可以随个人喜好选用 vim 等。
打开samba配置文件
sudo nano /etc/samba/smb.conf
在该文件末尾添加如下内容:
[share]
path = /share # 共享目录
valid users = smbuser, 用户名1, 用户名2(若有) # 可访问用户白名单
write list = smbuser, 用户名1, 用户名2(若有) # 可进行写操作的用户白名单
create mask = 0775 # 新创建文件的默认权限
directory mask = 0775 # 新创建目录的默认权限
添加用户,并配置服务跟随系统一并启动:
# 添加samba用户及密码
sudo smbpasswd -a smbuser
# 启动/重新启动samba服务
systemctl start smbd # 首次启动samba服务
systemctl restart smbd # 重新启动samba服务
systemctl status smbd # 确认服务状态
此时如果可以在输出信息中看到active (running)
,就表示服务端已经正常运行了。
如果想要移除特定 samba 用户,可以使用smbpasswd
语言的-x
参数:
sudo smbpasswd -x smbuser
确认服务端 IP 地址,在客户端连接时需要用到。
ifconfig
(可选)配置 samba 随系统一同启动
systemctl enable smbd
客户端
macOS
方式 A
- 打开访达,在顶部工具栏找到“前往”下的“连接服务器”;或者直接使用快捷键
⌘+K
。 - 在弹出窗口中输入
smb://用户名@服务器IP地址/share
即可。
方式 B
- 打开访达,在侧边栏找到“网络”。
- 点击服务器,点击“连接身份”,及确认弹窗中的“连接”。
- 输入用户名和密码,即可连接到 samba 服务器。
Windows
- 打开文件资源管理器,在侧边栏找到“网络”,右键单击后点击“映射网络驱动器”。
- 在Windows11系统下,需要先点击右键菜单中的“显示更多选项”才能看到“映射网络驱动器”。
- 在弹出窗口中选一个驱动器盘符,然后在“文件夹”字段中输入
\\服务器IP地址\share
,点击完成。 - 在弹出窗口中填写之前已经在服务端配置好的用户名和密码,即可连接到 samba 服务器。
参考资料
原文网址如下,转载敬请标明出处,谢谢。
https://kamaslau.wordpress.com/2022/09/15/solution-to-quickly-establish-a-free-and-convenient-nas-system-with-samba/
网友评论