samba服务器3
1. 安装Samba服务
bash
# 更新系统
sudo dnf update -y
# 安装Samba
sudo dnf install samba samba-client -y
2. 创建Samba用户和共享目录
创建系统用户和Samba用户
bash
# 创建系统用户(如果还没有)
sudo useradd -s /sbin/nologin sambauser
sudo passwd sambauser
# 创建Samba用户并设置密码
sudo smbpasswd -a sambauser
创建共享目录并设置权限
bash
# 创建共享目录
sudo mkdir -p /samba/windows_share
sudo chown sambauser:sambauser /samba/windows_share
sudo chmod 755 /samba/windows_share
3. 配置Samba服务器
备份并编辑配置文件
bash
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.backup
sudo vi /etc/samba/smb.conf
完整的Samba配置文件示例
ini
[global]
workgroup = WORKGROUP
server string = CentOS Samba Server
netbios name = CENTOS-SAMBA
security = user
map to guest = bad user
dns proxy = no
# 重要:Windows客户端兼容性设置
client min protocol = SMB2
server min protocol = SMB2
# 名称解析设置
name resolve order = bcast host
# 日志设置
log file = /var/log/samba/log.%m
max log size = 1000
# 性能优化
socket options = TCP_NODELAY SO_RCVBUF=65536 SO_SNDBUF=65536
# Windows兼容性
ntlm auth = yes
lanman auth = no
# 主共享配置
[windows_share]
path = /samba/windows_share
browseable = yes
writable = yes
valid users = sambauser
guest ok = no
read only = no
create mask = 0755
directory mask = 0755
# Windows兼容性设置
store dos attributes = yes
map archive = no
map hidden = no
map read only = no
map system = no
# 公共共享(可选)
[public]
path = /samba/public
browseable = yes
writable = yes
guest ok = yes
read only = no
create mask = 0755
directory mask = 0755
4. 创建公共共享目录(可选)
bash
sudo mkdir -p /samba/public
sudo chmod 777 /samba/public
5. 配置防火墙
bash
# 启用Samba相关服务通过防火墙
sudo firewall-cmd --permanent --add-service=samba
sudo firewall-cmd --permanent --add-service=samba-client
sudo firewall-cmd --permanent --add-port=139/tcp
sudo firewall-cmd --permanent --add-port=445/tcp
sudo firewall-cmd --permanent --add-port=137/udp
sudo firewall-cmd --permanent --add-port=138/udp
sudo firewall-cmd --reload
6. 配置SELinux
bash
# 设置SELinux上下文
sudo chcon -t samba_share_t /samba/windows_share -R
sudo chcon -t samba_share_t /samba/public -R
# 或者安装SELinux管理工具
sudo dnf install policycoreutils-python-utils -y
# 设置布尔值
sudo setsebool -P samba_enable_home_dirs on
sudo setsebool -P samba_export_all_rw on
# 如果仍有问题,可以临时禁用SELinux测试
sudo setenforce 0
7. 启动Samba服务
bash
# 启动服务
sudo systemctl start smb
sudo systemctl start nmb
sudo systemctl enable smb
sudo systemctl enable nmb
# 检查服务状态
sudo systemctl status smb
sudo systemctl status nmb
8. 验证配置
bash
# 测试配置文件语法
sudo testparm
# 检查共享列表
sudo smbclient -L localhost -U sambauser
# 测试共享连接
sudo smbclient //localhost/windows_share -U sambauser
9. 从Windows访问Samba共享
方法1:通过文件资源管理器
1. 打开文件资源管理器
2. 在地址栏输入:centos-server-ipwindows_share
3. 输入用户名:sambauser 和对应的密码
4. 点击"确定"即可访问
方法2:映射网络驱动器
1. 打开"此电脑"
2. 点击"计算机"选项卡 → "映射网络驱动器"
3. 驱动器字母选择(如:Z:)
4. 文件夹输入:centos-server-ipwindows_share
5. 勾选"使用其他凭据连接"
6. 输入Samba用户名和密码
10. Windows端故障排除
启用SMB1(如果需要,不推荐)
powershell
# 以管理员身份运行PowerShell
Enable-WindowsOptionalFeature -Online -FeatureName SMB1Protocol
检查网络发现
1. 打开"网络和共享中心"
2. 启用"网络发现"和"文件和打印机共享"
Windows防火墙设置
确保Windows防火墙允许文件和打印机共享。
11. 高级配置(可选)
为多个用户配置
bash
# 创建用户组
sudo groupadd smbusers
# 添加用户到组
sudo usermod -aG smbusers sambauser
sudo usermod -aG smbusers anotheruser
# 在smb.conf中配置组共享
[group_share]
path = /samba/group_share
valid users = @smbusers
writable = yes
browseable = yes
配置时间同步
bash
# 安装并配置NTP
sudo dnf install chrony -y
sudo systemctl enable chronyd
sudo systemctl start chronyd
常见问题解决
Windows连接问题
bash
# 检查Samba日志
sudo tail -f /var/log/samba/log.smbd
# 检查网络连通性
ping windows-client-ip
# 检查Samba服务是否在监听
sudo netstat -tlnp | grep smb
权限问题
bash
# 重新设置目录权限
sudo chown -R sambauser:sambauser /samba/windows_share
sudo chmod -R 755 /samba/windows_share









