在Linux系统中,SMB(Server Message Block)服务器通常通过Samba软件包实现,它允许Linux与Windows系统之间进行文件和打印共享,以下是详细启动SMB服务器的步骤,涵盖安装、配置、启动及测试全流程。
安装Samba软件包
首先根据Linux发行版选择对应的命令安装Samba,主流发行版安装命令如下:
- Ubuntu/Debian:
sudo apt update && sudo apt install samba -y
- CentOS/RHEL/Fedora:
sudo yum install samba samba-client -y # CentOS/RHEL sudo dnf install samba samba-client -y # Fedora
安装完成后,可通过
samba --version
验证版本信息,确保安装成功。
配置共享目录
SMB服务器的核心是共享目录的权限与访问控制,以创建共享目录 /home/samba/shared
为例:
- 创建目录并设置权限:
sudo mkdir -p /home/samba/shared sudo chmod 777 /home/samba/shared # 临时设置权限,后续可通过smb.conf精确控制
- 备份并编辑配置文件:
Samba的主配置文件为/etc/samba/smb.conf
,修改前建议备份:sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak sudo nano /etc/samba/smb.conf
- 添加共享目录配置:
在文件末尾添加如下内容(可根据需求调整参数):[shared] # 共享名称(Windows中显示的名称) comment = Public Shared Folder # 共享描述 path = /home/samba/shared # 共享目录路径 browseable = yes # 是否允许浏览 writable = yes # 是否允许写入 guest ok = no # 是否允许匿名访问(no表示需认证) valid users = @smbgroup # 允许访问的用户组(需提前创建组)
关键参数说明(表格形式)
参数 | 作用说明 |
---|---|
[shared] |
共享名称,Windows网络中可见的别名 |
path |
共享目录的绝对路径 |
browseable |
是否在网络中显示该共享(yes/no) |
writable |
是否允许用户写入(yes/no) |
guest ok |
是否允许匿名访问(yes/no,生产环境建议关闭) |
valid users |
允许访问的用户或用户组(格式:username 或 @groupname ) |
创建Samba用户并设置密码
SMB访问需要用户认证,需将Linux系统用户添加为Samba用户并设置密码:
- 创建Linux用户(若不存在):
sudo useradd -m -s /bin/bash smbuser # 创建用户smbuser,-m创建家目录
- 添加为Samba用户并设置密码:
sudo smbpasswd -a smbuser # 输入两次密码,用于SMB认证
- (可选)创建用户组并授权:
若配置中使用了用户组(如@smbgroup
),需创建组并添加用户:sudo groupadd smbgroup sudo usermod -aG smbgroup smbuser
启动SMB服务
根据系统使用的服务管理工具(systemctl
或service
),启动SMB相关服务:
- 使用systemctl(主流系统):
sudo systemctl start smbd nmbd # 启动SMB(文件共享)和NetBIOS(名称解析)服务 sudo systemctl enable smbd nmbd # 设置开机自启
- 检查服务状态:
sudo systemctl status smbd nmbd
若显示
active (running)
,则启动成功。
配置防火墙(关键步骤)
若系统开启了防火墙,需开放SMB服务端口(TCP/139、TCP/445)及NetBIOS端口(UDP/137、UDP/138):
- Ubuntu/Debian(ufw):
sudo ufw allow samba # 直接开放Samba预设规则
- CentOS/RHEL(firewalld):
sudo firewall-cmd --permanent --add-service=samba sudo firewall-cmd --reload
测试SMB服务
- 本地测试:
使用smbclient
命令连接测试(需安装samba-client
):smbclient //localhost/shared -U smbuser # 输入密码后进入smbclient命令行 smb: > quit # 退出测试
- Windows客户端测试:
在文件资源管理器地址栏输入\Linux服务器IPshared
,输入用户名smbuser
及密码,访问共享目录。 - Linux客户端测试:
sudo apt install cifs-utils # 安装客户端工具(Ubuntu/Debian) sudo mount -t cifs //Linux服务器IP/shared /mnt -o username=smbuser ls /mnt # 查看共享文件
相关问答FAQs
Q1:如何修改共享目录的读写权限?
A:可通过两种方式调整:
- 修改目录系统权限:
sudo chmod 755 /home/samba/shared
(755表示所有者可读写执行,组和其他用户可读执行); - 修改smb.conf配置:在共享目录配置中添加
read only = no
(覆盖writable
参数)或create mask = 0644
(设置新建文件权限)。
Q2:Windows无法访问Linux共享目录,提示“网络错误”?
A:常见原因及解决方法:
- 防火墙未开放端口:检查Linux防火墙是否开放SMB端口(139/445),使用
sudo ufw status
或sudo firewall-cmd --list-ports
验证; - SMB服务未启动:在Linux上执行
sudo systemctl restart smbd
重启服务; - 用户名/密码错误:确认Windows中输入的用户名是Linux系统用户,且SMB密码正确(通过
smbpasswd -a
重置密码)。
原创文章,发布者:酷番叔,转转请注明出处:https://cloud.kd.cn/ask/22272.html