Samba 是一个开源软件套件,它实现了 SMB/CIFS 协议,允许 Windows 客户机像访问本地网络上的其他 Windows 计算机一样,来访问和共享 Linux/Unix 系统的文件和打印机。

虽然 Samba 服务器通常部署在 Linux 上,但在 Windows 上运行它主要用于以下几种情况:
- 跨平台开发与测试:开发人员需要在 Windows 环境中测试他们的应用程序与 Linux Samba 服务器的兼容性。
- 混合环境管理:在已经以 Windows 为主,但需要为某些 Linux/Unix 设备提供文件共享的网络上。
- 特定工具集成:一些工具可能需要 SMB 协议作为通信桥梁。
- 学习与研究:学习和理解 SMB/CIFS 协议的工作原理。
核心概念:Samba vs. Windows 文件共享
在开始之前,理解两者之间的区别很重要:
| 特性 | Samba (在 Windows 上) | Windows 文件共享 |
|---|---|---|
| 底层协议 | SMB/CIFS (Samba 自己实现) | SMB (Server Message Block) / SMB2 / SMB3 |
| 用户认证 | 可以使用本地 Windows 用户,也可以配置独立的 Samba 用户数据库。 | 默认使用本地 Windows 用户或 Active Directory 域用户。 |
| 配置文件 | smb.conf (文本文件) |
“计算机管理” -> “共享” 或 PowerShell 命令 |
| 主要用途 | 模拟 Linux/Unix 共享行为,为异构系统提供服务。 | 原生 Windows 系统间的文件和打印共享。 |
在 Windows 上运行 Samba,相当于在你的 Windows 机器里“装”了一个能说“Linux Samba 方言”的服务,让 Linux 客户机能听懂。
使用预编译的二进制文件 (推荐用于快速测试)
这是最简单直接的方法,适合快速搭建和测试。

步骤 1:下载 Samba
- 访问 Samba 官方下载页面:https://www.samba.org/samba/download/
- 找到 "Binaries" 部分,选择适合你 Windows 版本的预编译包,通常是
samba-latest-x86.zip或samba-latest-x64.zip。 - 下载并解压到一个固定的目录,
C:\samba。
步骤 2:配置 Samba
- 进入
C:\samba目录,你会看到一个smb.conf文件,这是 Samba 的核心配置文件。 - 用记事本或 VS Code 打开
smb.conf,默认配置可能很简单,我们需要修改或添加一个共享目录。
示例配置:
# 全局设置 [global] workgroup = WORKGROUP # 设置你的 Windows 工作组名,通常默认是 WORKGROUP server string = Samba Server on Windows netbios name = WIN-SAMBA # 设置 NetBIOS 名称,用于在网络邻居中显示 security = user # 安全级别,"user" 表示需要用户名和密码才能访问 map to guest = never # 禁用匿名访问 # 共享目录 [myshare] [myshare] comment = My Shared Folder path = C:\samba\share # **这是你要共享的文件夹路径,必须提前创建!** browseable = yes # 是否在“网络”中可见 writable = yes # 是否允许写入 read only = no guest ok = no # 禁止匿名访问 valid users = @users # 只有 "users" 组的用户可以访问 (需要提前创建该组) create mask = 0664 # 新建文件权限 directory mask = 0775 # 新建文件夹权限
配置说明:
[global]: 全局设置,影响所有共享。[myshare]: 共享的名称,Windows 客户端将通过网络路径\\<server_ip>\myshare来访问它。path: 最重要的一步,指定一个你想要共享的文件夹,这个文件夹必须存在,Samba 服务运行账户需要有权限访问它。security = user: 这是最常用的安全模式,客户端必须提供一个有效的用户名和密码,这些用户名和密码必须是 Samba 服务器上已知的。
步骤 3:创建共享文件夹和用户
- 创建共享文件夹:根据你的
smb.conf中的path设置,创建文件夹,在C:\samba下创建一个名为share的文件夹。 - 创建 Samba 用户:Samba 有自己独立的用户数据库,需要将 Windows 用户添加进去。
- 打开 命令提示符 (CMD) 或 PowerShell。
- 切换到 Samba 的
bin目录:cd C:\samba\bin - 运行以下命令来添加用户(用户名为
winuser):# 首先确保 Windows 用户存在 net user winuser /add * # (可选,如果用户不存在) # 将 Windows 用户添加到 Samba 数据库,并设置密码 .\smbpasswd -a winuser
- 系统会提示你为
winuser设置一个 Samba 专用的密码,这个密码可以与 Windows 登录密码不同。
步骤 4:启动 Samba 服务
Samba 在 Windows 上是以服务的形式运行的。
-
打开 命令提示符 (CMD) 或 PowerShell (以管理员身份运行)。
(图片来源网络,侵删) -
切换到 Samba 的
bin目录:cd C:\samba\bin -
运行以下命令安装并启动 Samba 服务:
# 安装 Samba 服务 .\server -smbconf C:\samba\smb.conf -i -n "Samba Server" -d 3
-smbconf: 指定配置文件路径。-i: 安装为服务。-n: 指定服务名称。-d 3: 设置日志级别 (0-3,3 为详细日志,方便排错)。
-
你也可以使用
sc命令来管理服务:# 启动服务 net start "Samba Server" # 停止服务 net stop "Samba Server" # 删除服务 sc delete "Samba Server"
步骤 5:客户端连接测试
- 在另一台 Windows 电脑上,打开文件资源管理器。
- 在地址栏输入
\\<你的Samba服务器IP>\myshare,然后按回车。 - 系统会提示你输入用户名和密码,输入你刚刚在 Samba 中创建的用户名(如
winuser)和对应的 Samba 密码。 - 成功后,你就可以像访问普通共享文件夹一样访问
C:\samba\share的内容了。
使用 WSL (Windows Subsystem for Linux) (更推荐)
对于熟悉 Linux 的用户,在 Windows 上使用 WSL 运行 Samba 是更稳定、更强大的方式,它相当于在你的 Windows 系统里拥有一个完整的 Linux 子系统。
步骤 1:安装 WSL
- 以管理员身份打开 PowerShell 或 CMD。
- 运行命令:
wsl --install -d Ubuntu(或你喜欢的其他发行版)。 - 按照提示完成安装,重启电脑。
步骤 2:在 WSL 中安装 Samba
- 打开 Ubuntu 应用。
- 更新软件包列表并安装 Samba:
sudo apt update sudo apt install samba
步骤 3:配置 Samba
-
备份原始配置文件:
sudo cp /etc/samba/smb.conf /etc/samba/smb.conf.bak
-
编辑配置文件:
sudo nano /etc/samba/smb.conf
-
在文件末尾添加一个共享配置,
[wslshare] comment = Share from WSL path = /home/your_username/share # **将 your_username 替换为你的 WSL 用户名** browseable = yes writable = yes guest ok = no create mask = 0664 directory mask = 0775 -
创建共享目录并设置权限:
# 创建共享目录
