在Linux系统中搭建文件共享服务,Samba是最常用的方案之一,它支持SMB/CIFS协议,能够实现Linux与Windows、macOS等系统的跨平台文件共享,满足多设备之间的文件传输和访问需求。

安装Samba服务
首先需要在Linux系统中安装Samba相关的软件包,不同发行版的安装命令略有差异:
Debian/Ubuntu系统
# 更新软件源 sudo apt update # 安装Samba服务及客户端工具 sudo apt install samba smbclient -y
CentOS/RHEL系统
# 安装Samba服务及客户端工具 sudo yum install samba samba-client samba-common -y
配置Samba共享目录
Samba的核心配置文件是smb.conf,默认路径为/etc/samba/smb.conf,我们可以先备份原配置文件,再自定义共享规则。
创建共享目录并设置权限
首先创建一个用于共享的目录,比如/data/share,同时设置合适的读写权限:
# 创建共享目录 sudo mkdir -p /data/share # 设置目录权限,允许所有用户读写(可根据实际需求调整) sudo chmod 777 /data/share # 如果需要指定用户访问,可先创建系统用户再设置Samba密码 sudo useradd smbuser sudo smbpasswd -a smbuser
编辑smb.conf配置文件
在配置文件末尾添加自定义共享段,以下是基础配置示例:
[public_share]
comment = Public Share Directory
path = /data/share
browseable = yes
writable = yes
guest ok = yes
create mask = 0666
directory mask = 0777
配置项说明:
- comment:共享目录的描述信息
- path:共享目录的实际路径
- browseable:是否允许其他设备浏览到该共享
- writable:是否允许写入操作
- guest ok:是否允许匿名访问
- create mask/directory mask:新建文件和目录的权限掩码
启动并配置Samba服务
配置完成后需要启动Samba服务,同时设置开机自启,还要调整防火墙规则开放对应端口。
启动服务
# 启动Samba服务 sudo systemctl start smbd nmbd # 设置开机自启 sudo systemctl enable smbd nmbd # 检查服务状态 sudo systemctl status smbd
防火墙规则配置
Samba默认使用139和445端口,需要开放这两个端口的访问权限:
UFW防火墙(Debian/Ubuntu)
sudo ufw allow 139/tcp sudo ufw allow 445/tcp sudo ufw reload
Firewalld防火墙(CentOS/RHEL)
sudo firewall-cmd --permanent --add-port=139/tcp sudo firewall-cmd --permanent --add-port=445/tcp sudo firewall-cmd --reload
测试Samba共享可用性
配置完成后可以在本地或者其他设备测试共享是否正常可用。
本地测试
使用smbclient工具测试本地共享访问:
# 列出本机所有Samba共享 smbclient -L localhost -U smbuser # 访问指定共享目录 smbclient //localhost/public_share -U smbuser
Windows设备访问
在Windows文件资源管理器的地址栏输入\Linux服务器IPpublic_share,如果是匿名访问可以直接进入,需要账号密码的话输入对应的Samba用户名和密码即可访问共享目录。
Linux设备访问
其他Linux设备可以通过smbclient或者挂载的方式访问共享:
# 挂载Samba共享到本地目录 sudo mkdir -p /mnt/samba_share sudo mount -t cifs //192.168.0.1/public_share /mnt/samba_share -o username=smbuser,password=设置的Samba密码
常见问题排查
如果访问共享失败,可以从以下几个方面排查:
- 检查
smb.conf配置文件语法是否正确,可使用testparm命令验证 - 确认共享目录的Linux系统权限和Samba配置权限是否匹配
- 检查防火墙是否开放了139和445端口
- 确认Samba服务是否正常运行,查看
/var/log/samba/目录下的日志排查错误
SambaLinux文件共享smb.confsystemctlsmbclient修改时间:2026-07-09 21:30:36