概述
本指南详细记录如何在 Ubuntu Linux 系统上部署 Samba (SMB/CIFS) 文件共享服务,实现与 Windows、macOS 和其他 Linux 设备的文件共享。
环境信息
| 项目 |
值 |
| 操作系统 |
Ubuntu Linux |
| 服务器 IP |
192.168.31.10 |
| 工作组 |
WORKGROUP |
| Samba 版本 |
4.19.5 |
第一步:安装 Samba
1 2 3 4 5 6 7 8
| sudo apt update
sudo apt install samba samba-common-bin -y
smbd --version
|
第二步:创建 Samba 用户密码
Samba 使用独立的密码系统,需要为 Linux 用户创建 Samba 密码:
1 2 3 4 5 6
| sudo smbpasswd -a leslie
|
第三步:配置 smb.conf
编辑 Samba 配置文件:
1
| sudo nano /etc/samba/smb.conf
|
全局配置 [global]
1 2 3 4 5 6 7 8 9 10 11 12 13 14
| [global] workgroup = WORKGROUP server string = %h server (Samba, Ubuntu) log file = /var/log/samba/log.%m max log size = 1000 logging = file server role = standalone server obey pam restrictions = yes unix password sync = yes passwd program = /usr/bin/passwd %u passwd chat = *Enter\snew\s*\spassword:* %n\n *Retype\snew\s*\spassword:* %n\n *password\supdated\ssuccessfully* . pam password change = yes map to guest = bad user usershare allow guests = yes
|
共享目录配置
1 2 3 4 5 6 7 8
| [leslie] comment = Leslie Home Directory path = /home/leslie browseable = yes read only = no create mask = 0755 directory mask = 0755 valid users = leslie
|
参数说明:
| 参数 |
说明 |
path |
共享的目录路径 |
browseable |
是否在网络中可见 |
read only |
no 表示可读写 |
create mask |
新文件权限 |
directory mask |
新目录权限 |
valid users |
允许访问的用户 |
第四步:测试配置
第五步:启动服务
1 2 3 4 5 6 7 8
| sudo systemctl restart smbd nmbd
sudo systemctl enable smbd nmbd
sudo systemctl status smbd
|
第六步:防火墙配置
如果使用 UFW 防火墙,需要开放 SMB 端口:
1 2 3 4 5 6 7 8 9 10 11
| sudo ufw allow samba
sudo ufw allow 139/tcp sudo ufw allow 445/tcp sudo ufw allow 137/udp sudo ufw allow 138/udp
sudo ufw reload
|
客户端连接方式
Windows
- 打开”此电脑”
- 在地址栏输入:
\\192.168.31.10\leslie
- 输入用户名和密码
- 勾选”记住我的凭据”可保存密码
映射网络驱动器:
- 右键”此电脑” → “映射网络驱动器”
- 文件夹:
\\192.168.31.10\leslie
- 勾选”登录时重新连接”
macOS
- Finder → 前往 → 连接服务器 (Cmd+K)
- 服务器地址:
smb://192.168.31.10/leslie
- 点击”连接”,输入凭据
- 可在”钥匙串”中保存密码
Linux
1 2 3 4 5
| sudo mount -t cifs //192.168.31.10/leslie /mnt/share -o user=leslie
//192.168.31.10/leslie /mnt/share cifs username=leslie,password=yourpass,uid=1000,gid=1000 0 0
|
常用管理命令
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17
| sudo pdbedit -L
sudo pdbedit -L -v
sudo smbpasswd -x username
sudo smbpasswd username
sudo smbstatus
sudo tail -f /var/log/samba/log.smbd
|
故障排查
问题 1: 无法连接
1 2 3 4 5 6 7 8
| sudo systemctl status smbd
sudo ss -tlnp | grep -E "139|445"
sudo ufw status
|
问题 2: 权限被拒绝
1 2 3 4 5 6 7 8
| sudo pdbedit -L
ls -la /home/leslie
testparm -s | grep -A 10 "\[leslie\]"
|
问题 3: Windows 无法发现
- 确保
WORKGROUP 与 Windows 工作组一致
- 在 Windows 中启用 SMB 1.0/CIFS 客户端(如需要)
- 检查路由器的 AP 隔离设置
安全建议
- 强密码: 为 Samba 用户设置复杂密码
- 限制访问: 使用
valid users 和 hosts allow 限制访问
- 最小权限: 只共享必要的目录
- 定期更新: 保持 Samba 版本最新
- 内网使用: 避免将 SMB 暴露到公网
进阶配置
添加只读共享
1 2 3 4 5 6
| [documents] comment = Read-only Documents path = /srv/documents browseable = yes read only = yes guest ok = yes
|
限制 IP 访问
1 2 3 4 5
| [private] path = /srv/private hosts allow = 192.168.31.0/24 hosts deny = all valid users = admin
|
回收站功能
1 2 3 4 5 6
| [share] path = /srv/share vfs objects = recycle recycle:repository = .recycle recycle:keeptree = yes recycle:versions = yes
|
总结
本指南涵盖了从安装到配置、从连接到排错的完整 SMB 服务部署流程。核心步骤可总结为:
- 安装 Samba 包
- 创建 Samba 用户密码
- 配置
/etc/samba/smb.conf
- 启动并启用服务
- 配置防火墙规则
- 从客户端测试连接
部署日期: 2026年2月22日
服务器 IP: 192.168.31.10
工作组: WORKGROUP