什么是 Windows 和 Windows Server 的 SMB 文件共享?

本文概述了 Windows 中的服务器消息块 (SMB) 协议。 它涵盖了文件共享的实际应用程序、功能和关键概念。

SMB 协议是网络文件共享协议。 SMB 允许通过 TCP/IP 或其他协议通过网络读取和写入文件。 借助 SMB,应用程序(或应用程序的用户)可以访问远程服务器上的文件或其他资源,从而允许应用程序读取、创建和更新远程服务器上的文件。 SMB 还可以与任何设置为接收 SMB 客户端请求的服务器程序通信。

SMB 也是超融合和群集存储解决方案(例如存储空间直通和存储副本)的构造协议。 有关详细信息,请参阅 SMB 作为 Windows Server 服务的基础

Usage

本部分讨论使用 SMB 协议的一些实际方法。

  • 用于虚拟化的文件存储 (Hyper-V™ over SMB)。 Hyper-V 可以通过 SMB 3.0 协议在文件共享中存储虚拟机文件,如配置、虚拟硬盘 (VHD) 文件和快照。 可以将此功能用于独立文件服务器和群集文件服务器,这些服务器将 Hyper-V 与群集的共享文件存储一起使用。

  • Microsoft SQL Server over SMB。 SQL Server 可以将用户数据库文件存储在 SMB 文件共享中。 目前,SQL Server 2008 R2 的独立 SQL 服务器支持使用 SMB 的 SQL Server。 即将发布的 SQL Server 版本添加了对群集 SQL 服务器和系统数据库的支持。

  • 用于最终用户数据的传统存储。 SMB 3.0 协议提供 信息工作者 (或客户端)工作负载的增强功能。 这些增强功能包括减少分支机构用户在通过广域网 (WAN) 访问数据时遇到的应用程序延迟,以及防止数据遭受窃听攻击。

注意

如果需要在 SMB 文件共享上保存存储空间,请考虑使用启用了云分层的 Azure 文件同步。 Azure 文件同步允许在本地缓存最常访问的文件,并将最不经常访问的文件分层到云,同时节省本地存储空间,同时保持性能。 有关详细信息,请参阅规划 Azure 文件同步部署

SMB 功能

SMB 包括组织成以下类别的各种功能:

  • 安全性和身份验证 - SMB 提供多层保护,包括加密、签名、NTLM 阻止和身份验证速率限制。 这些功能可保护传输中的数据,并帮助防止未经授权的访问和暴力攻击。

  • 网络和连接 - SMB 支持多种传输选项,包括传统 TCP、QUIC 用于无 VPN 的安全 Internet 访问,以及用于高性能数据中心工作负荷的 RDMA。 替代端口和防火墙强化等功能可提供其他灵活性和安全性。

  • 性能 - SMB 包括优化文件传输速度并减少网络开销的功能,包括压缩、带宽限制、目录缓存和 WAN 优化。

  • 高可用性和扩展性 - 对于企业环境,SMB 支持透明故障转移、横向扩展文件存储和滚动更新,以确保在维护或故障期间连续访问文件共享。

  • 管理和监视 - 管理员可以使用 PowerShell cmdlet 管理 SMB,控制方言版本,并通过专用计数器监视性能。

有关各个功能及其跨 Windows 版本的可用性的详细信息,请参阅 Windows 和 Windows Server 中的 SMB 功能

SMB 组件

SMB 通信涉及两个组件:SMB 客户端和 SMB 服务器。 这些术语是指 SMB 协议的职责,而不是 Windows 操作系统版本。

  • SMB 服务器 是共享资源(文件、打印机、命名管道)并响应来自 SMB 客户端的请求的组件。 在计算机上创建文件共享时,该计算机的 SMB 服务器将处理传入连接和文件访问请求。

  • SMB 客户端 是连接到远程共享并将请求发送到 SMB 服务器的组件。 当您映射网络驱动器或访问像 \\server\share 这样的 UNC 路径时,计算机的 SMB 客户端会启动并管理该连接。

Windows Server 和 Windows 客户端作系统包括 SMB 客户端和 SMB 服务器组件。 这意味着 Windows 客户端计算机(如 Windows 11)可以托管文件共享(充当 SMB 服务器),同时连接到其他计算机上的共享(充当 SMB 客户端)。 同样,Windows Server 可以连接到托管在其他服务器或客户端计算机上的共享。

功能可用性因作系统版本而异。 某些功能仅在 SMB 服务器组件中可用,一些功能仅在 SMB 客户端组件中提供,一些功能在两者中都可用。 此外,某些功能可能在 Windows Server 中可用,但不适用于 Windows 客户端版本,反之亦然。 有关不同 Windows 版本的功能可用性的详细信息,请参阅 Windows 和 Windows Server 中的 SMB 功能

SMB 方言

SMB 方言是 SMB 协议的特定版本,用于定义客户端和服务器之间通信期间支持的特性、功能和消息格式。 建立 SMB 连接时,客户端和服务器协商使用同时支持的最高方言版本。 更高的方言版本提供了更多功能,例如改进的安全性、更好的性能和新功能,同时保持与旧版本的向后兼容性。

下表显示了每个 Windows作系统版本都支持哪些 SMB 方言版本。

SMB 方言 Windows 客户端 Windows Server
SMB 3.1.1 Windows 10 版本 1607 及更高版本 Windows Server 2016 和更高版本
SMB 3.02 Windows 8.1 Windows Server 2012 R2
SMB 3.0 Windows 8操作系统 Windows Server 2012

注意

虽然多个 Windows 版本支持相同的 SMB 方言(3.1.1),但每个版本都引入了基础协议以外的更多功能和增强功能。 有关特定于版本的改进和功能可用性的详细信息,请参阅 Windows 和 Windows Server 中的 SMB 功能

SMB 作为基础

SMB 充当许多 Windows Server 存储和文件服务的基础协议。 这些服务基于 SMB 构建,以在继承 SMB 的安全性、性能和可靠性功能的同时提供更多功能。

超融合和群集存储

SMB 是超融合基础结构(HCI)和群集存储解决方案的构造协议:

  • 存储空间直通 使用 SMB 3 进行节点到节点通信,包括超融合和分解部署中的数据复制和缓存同步。 SMB Direct (RDMA)提供群集节点之间的高吞吐量、低延迟连接。 有关详细信息,请参阅 存储空间直通概述

  • 存储副本 使用 SMB 3 在服务器或群集之间复制数据,以便进行灾难恢复。 SMB 加密可保护传输中复制的数据。 有关详细信息,请参阅 存储副本概述

  • 非聚合存储体系结构将 计算和存储分为不同的群集,计算群集通过 SMB 3 访问存储。 此体系结构支持独立缩放计算和存储资源。 如需了解更多信息,请参阅 故障转移群集存储体系结构

文件服务器技术

多个文件服务器功能依赖于 SMB 进行文件访问:

  • Scale-Out 文件服务器 使用 SMB 3 跨多个群集节点提供持续可用的文件共享。 像 Hyper-V 和 SQL Server 这样的应用程序可以在这些共享上以透明故障转移的方式存储数据。 有关详细信息,请参阅 Scale-Out 文件服务器概述

  • DFS 命名空间将 多个服务器的共享文件夹组织到逻辑命名空间中。 虽然 DFS 命名空间管理命名空间和引用,但实际文件访问使用 SMB。 有关详细信息,请参阅 DFS 命名空间概述

  • DFS 复制 在服务器之间复制文件夹,以实现冗余和分支办公室场景。 复制的内容是通过 SMB 文件共享访问的。 有关详细信息,请参阅 DFS 复制概述

虚拟化和应用程序工作负载

SMB 3 为虚拟化环境启用高性能存储:

  • 通过 SMBHyper-V ,可以将虚拟机文件(配置、VHD/VHDX 和检查点)存储在 SMB 3 文件共享上,而不是本地存储。 此功能简化了存储管理,并启用了实时迁移等功能。 有关详细信息,请参阅在 SMB 上部署 Hyper-V

  • SMB 上的 SQL Server 支持将数据库文件存储在 SMB 3 共享上,因此可以从 SMB 多通道和 SMB 直通中受益,以便获得性能。

这些服务受益于 SMB 功能,例如加密、签名、多通道和直接(RDMA)。 启用 SMB 安全功能时,依赖于 SMB 的服务将继承这些保护。

事件日志记录和审核

SMB 提供事件日志记录和审核功能,可帮助管理员监视文件共享活动、排查连接问题以及检测潜在的安全威胁。

Windows 在 “应用程序和服务日志 > ”下的 Windows 事件日志中记录 SMB 事件Microsoft > Windows > SMBClientSMBServer。 这些日志捕获连接事件、身份验证失败、共享访问和协议协商详细信息。 管理员可以使用这些日志来诊断连接问题、识别配置错误的客户端,或调查未经授权的访问尝试。

从 Windows Server 2025 和 Windows 11 24H2 开始,SMB 包括用于签名和加密的增强审核功能。 管理员可以审核客户端和服务器是否支持 SMB 签名和加密,帮助识别可能构成安全风险的不合规设备。 可以通过组策略或 PowerShell 配置此审核。

有关 SMB 安全审核的详细信息,请参阅 SMB 安全增强功能

以下列表提供了有关 Windows Server 2012 R2、Windows Server 2012 和 Windows Server 2016 中 SMB 和相关技术的详细信息。