SMB 协议(Server Message Block)是一种广泛应用于局域网的文件共享协议,主要用于 Windows 系统中共享文件、打印机等资源,也是 NAS 网络存储访问的常用方式。本文介绍 SMB 协议的原理、版本演进与常见问题。

| 类型 | 应用层文件共享协议 |
| 开发商或厂商 | IBM 提出,微软扩展维护 |
| 推出时间 | 20 世纪 80 年代 |
| 默认端口 | TCP 445 |
| 加密支持 | SMB 3.x 起支持传输加密 |
| 官网 | learn.microsoft.com |
SMB 协议(Server Message Block,服务器消息块)是一种应用层网络通信协议,主要用于在局域网中共享文件、打印机以及其他资源,是 Windows 网络共享功能的核心协议。
SMB 最早由 IBM 提出,后由微软不断扩展并发扬光大,成为 Windows 操作系统内置的文件共享标准。用户在 Windows 资源管理器中通过「网络邻居」或 \\服务器名 的方式访问共享文件夹时,底层使用的就是 SMB 协议。现代 SMB 通常直接运行在 TCP 445 端口上。
SMB 并不局限于 Windows。开源项目 Samba 在 Linux 和类 Unix 系统上实现了 SMB 协议,使不同操作系统之间可以互相共享文件;macOS 也内置了 SMB 客户端和服务端。家用和企业级 NAS(网络附加存储)设备普遍以 SMB 作为主要访问方式,因此它也是搭建家庭影音库、办公文件服务器时最常接触的协议之一。
SMB 协议经历了多个大版本:早期的 SMB 1.0 设计年代久远、效率低且存在安全隐患;SMB 2.x 大幅精简了指令、提升了性能;SMB 3.x 进一步加入了端到端加密、多通道传输和故障转移等特性,更适合现代企业和虚拟化场景。
SMB 1.0 存在严重安全缺陷,历史上著名的 WannaCry 勒索病毒就是利用 SMB 1.0 相关漏洞传播的。目前主流系统已默认禁用 SMB 1.0,建议使用 SMB 2.0 及以上版本,并避免将 445 端口直接暴露在公网上;许多运营商和防火墙也会主动封锁该端口。
问:SMB 和 Samba 是什么关系?答:SMB 是协议本身,Samba 是在 Linux/Unix 上实现这一协议的开源软件,两者名字相近但概念不同。
问:SMB 用哪个端口?可以暴露到公网吗?答:现代 SMB 使用 TCP 445 端口。不建议直接暴露公网,存在被扫描和攻击的风险,远程访问建议通过 VPN。
问:访问 NAS 很慢或连不上怎么办?答:先确认双方使用的 SMB 版本(尽量用 2.0 以上),检查防火墙是否放行 445 端口,并确认账号密码和共享权限设置正确。

| 类型 | 应用层文件共享协议 |
| 开发商或厂商 | IBM 提出,微软扩展维护 |
| 推出时间 | 20 世纪 80 年代 |
| 默认端口 | TCP 445 |
| 加密支持 | SMB 3.x 起支持传输加密 |
| 官网 | learn.microsoft.com |
登录 后参与讨论
暂无讨论,来发表第一条评论吧