linux下samba和cifs两者的关系/区别
1.基本概念
Samba
- 一个 开源软件套件,运行在 Linux/Unix 系统上,实现了 SMB/CIFS 协议。
- 主要功能是让 Linux/Unix 系统和 Windows 之间进行 文件共享、打印共享、域控制 等。
- 服务端:smbd(文件/打印服务)、nmbd(NetBIOS 名称解析)。
CIFS (Common Internet File System)
- 一种 网络文件系统协议,是 SMB (Server Message Block) 的扩展版本。
- 用于 Windows/Linux/Mac 等操作系统之间的 文件共享访问。
- Windows 默认文件共享就是基于 SMB/CIFS 协议。
换句话说:
- CIFS 是协议
- Samba 是协议的开源实现
2. 协议演进
- SMB 1.0 → CIFS (90年代 Windows NT/2000 时代流行)
- SMB 2.x → Windows Vista/7 开始引入,性能大幅提升
- SMB 3.x → Windows 8/Server 2012 之后增强安全性和加密
现在 CIFS(SMB1.0)已经过时,因为:
- 性能差
- 不支持加密
- 存在严重安全漏洞(如 WannaCry 勒索病毒利用 SMBv1 漏洞传播)
所以 现代 Samba 默认使用 SMB2/SMB3,只在兼容性需要时启用 CIFS(SMB1)。
3. 应用场景
Linux 作为 Samba 服务端:
- Windows 客户端 →
\\server\share - Linux 客户端 →
mount -t cifs //server/share /mnt/share -o username=user,password=pass
- Windows 客户端 →
Linux 作为 Samba 客户端:
- 使用
mount -t cifs挂载 Windows 共享目录 - 使用
smbclient命令行工具访问共享
- 使用
4. 配置示例
Samba 服务端配置(/etc/samba/smb.conf)
1 | [global] |
客户端挂载 CIFS
1 | # 安装工具 |
vers=3.0指定 SMB 版本,避免旧版本兼容问题。
5. 对比总结
| 项目 | Samba | CIFS/SMB 协议 |
|---|---|---|
| 类型 | 开源软件实现 | 协议规范 |
| 作用 | 提供文件/打印/域共享服务 | 定义共享访问方式 |
| 使用场景 | Linux/Unix ↔ Windows 共享 | Windows 原生文件共享 |
| 版本支持 | SMB1 (CIFS)、SMB2、SMB3 | 最初是 SMB1 (CIFS) |
一句话总结:
CIFS 是 SMB1 协议的别称,Samba 是 SMB/CIFS 协议的开源实现;现在推荐使用 SMB2/3 取代过时的 CIFS。