Linux 配置 Samba 服务,Windows 访问共享目录
在混合系统的网络环境中,Linux 与 Windows 之间共享文件是非常常见的需求。
如果希望 Windows 直接访问 Linux 的文件夹,最便捷的方法就是在 Linux 上配置 Samba 服务,让它充当 SMB 文件服务器。
本文将详细介绍如何在 Linux 上安装、配置 Samba,并从 Windows 端访问共享目录。
一、什么是 Samba
Samba 是一个开源软件,允许 Linux、Unix 等系统通过 SMB/CIFS 协议 与 Windows 系统共享文件和打印机。
简单来说,Samba 可以让 Linux 像一个“Windows 文件服务器”一样被访问。
Samba 的主要组件包括:
组件 | 说明 |
---|---|
smbd | 提供文件和打印共享服务 |
nmbd | 提供 NetBIOS 主机名解析(可通过名称访问而不是 IP) |
smbclient | Linux 命令行访问 SMB 共享的客户端 |
mount.cifs | Linux 挂载 SMB 共享的工具 |
二、安装 Samba 服务
在 Debian/Ubuntu 系统上执行以下命令安装 Samba:
sudo apt update
sudo apt install samba -y
如果是 CentOS 或 RHEL:
sudo yum install samba samba-client samba-common -y
安装完成后,确认版本:
smbd --version
三、创建共享目录
我们先创建一个要共享给 Windows 的目录,例如:
sudo mkdir -p /srv/samba/share
sudo chmod 777 /srv/samba/share
为了方便测试,设置 777 权限;生产环境中应根据需要设置更严格的权限。
四、配置 Samba 服务
Samba 的主配置文件位于 /etc/samba/smb.conf
。
在文件末尾添加如下配置:
[share]
comment = Linux Share Folder
path = /srv/samba/share
browseable = yes
writable = yes
guest ok = yes
create mask = 0777
directory mask = 0777
这段配置含义如下:
参数 | 说明 |
---|---|
[share] | 共享名称,在 Windows 访问时使用 |
path | 实际共享的目录路径 |
browseable | 是否允许在网络邻居中显示 |
writable | 是否允许写入 |
guest ok | 是否允许匿名访问 |
create mask 、directory mask | 创建文件与文件夹的权限掩码 |
如果你希望只允许特定用户访问,可以使用如下配置:
[share]
comment = Linux Secure Share
path = /srv/samba/share
valid users = sambauser
writable = yes
create mask = 0664
directory mask = 0775
五、创建 Samba 用户(仅限用户访问模式)
如果你选择了带验证的共享,需要添加 Samba 用户:
sudo useradd -M -s /sbin/nologin sambauser
sudo smbpasswd -a sambauser
输入两次密码后,该账户即可通过 Windows 登录 Samba。
六、启动并设置自启
启用并启动 Samba 服务:
sudo systemctl enable smbd --now
sudo systemctl enable nmbd --now
检查状态:
sudo systemctl status smbd
看到 “active (running)” 即表示 Samba 已正常运行。
七、在 Windows 访问 Linux 共享目录
完成 Linux 端配置后,就可以在 Windows 中直接访问共享了。如果你还没有配置过windows的samba请参考这篇文章:Windows 配置 Samba 服务并在 Linux 挂载访问
1. 打开资源管理器
在地址栏中输入:
\\192.168.1.10\share
(将 192.168.1.10
替换为你的 Linux 主机 IP)
2. 访问共享
- 如果是 匿名共享(guest ok = yes),直接访问即可;
- 如果是 用户验证模式,会弹出登录框,输入:
用户名:sambauser 密码:你设置的密码
3. 映射网络驱动器(可选)
为了下次访问更方便,可以右键“此电脑” → “映射网络驱动器”,
选择一个盘符,例如 Z:
,路径填写:
\\192.168.1.10\share
勾选“登录时重新连接”后点击完成。
这样,Linux 共享文件夹就像本地磁盘一样显示在 Windows 中。
九、常见问题排查
问题 | 原因 | 解决办法 |
---|---|---|
无法访问 \\IP\share | Samba 服务未启动或防火墙阻止 | 检查 systemctl status smbd 或关闭防火墙测试 |
提示“用户名或密码错误” | Samba 用户未创建或密码错误 | 执行 smbpasswd -a username 重新设置 |
无法写入共享文件 | 目录权限不足 | 确认 Linux 目录权限及 writable=yes 设置 |
Windows 无法找到主机名 | 未启用 nmbd 或未配置 NetBIOS | 通过 IP 地址访问或启用 nmbd |