HQY

×

文件服务器与 SMB 协议从零到实战

hqy hqy 发表于2026-05-27 23:19:50 浏览4 评论0

抢沙发发表评论

? 文件服务器与 SMB 协议从零到实战

图片



目录

  1. 1. SMB 是什么?一句话讲清楚
  2. 2. SMB 的版本进化
  3. 3. 你的电脑既是客户端也是服务器
  4. 4. 文件共享是怎么工作的?
  5. 5. SMB 的安全防护体系
  6. 6. SMB 性能优化技巧
  7. 7. SMB 的应用场景
  8. 8. 常见问题与最佳实践
  9. 9. 总结

1. SMB 是什么?一句话讲清楚

SMB(Server Message Block,服务器消息块)是 Windows 网络文件共享的核心协议。

通俗地说:你在 Windows 资源管理器里输入 \\server\shared_folder 访问另一台电脑的文件、把文件拖到网络驱动器上、或者打开共享打印机——背后都是 SMB 在工作。

SMB 协议TCP 445端口

读取/写入文件

你的电脑SMB 客户端

文件服务器SMB 服务器

硬盘上的文件

不只是文件共享: SMB 还是许多核心 Windows 服务的底层基础设施,包括 Hyper-V 虚拟化存储、SQL Server 数据库存储、存储空间直通(Storage Spaces Direct)和存储副本(Storage Replica)。


2. SMB 的版本进化

SMB 经历了多个版本迭代,版本越高功能越强、越安全。

SMB 版本
首发 Windows 版本
关键改进
SMB 1.0
Windows NT 4.0 (1996)
初版,使用 MD5 签名,性能和安全较差
SMB 2.0
Windows Vista / 2008 (2006)
减少命令数量 100→19,大幅提升性能
SMB 2.1
Windows 7 / 2008 R2
引入租约机制,减少网络往返
SMB 3.0
Windows 8 / 2012 (2012)
重大升级
:加密、多通道、RDMA、透明故障转移
SMB 3.02
Windows 8.1 / 2012 R2
性能优化和安全增强
SMB 3.1.1
Windows 10 / 2016 (2015)
当前主流
:预认证完整性、AES-128-GMAC 签名加速

核心原则: SMB 客户端和服务器在连接时会自动协商使用双方都支持的最高版本。因此只要服务器支持,新客户端会自动获得更好的安全性。

版本影响

Windows 版本对应的默认 SMB 方言:

你的 Windows
自带 SMB 版本
Windows 7 / Server 2008 R2
SMB 2.1
Windows 8 / Server 2012
SMB 3.0
Windows 8.1 / Server 2012 R2
SMB 3.02
Windows 10 1607+ / Server 2016+
SMB 3.1.1
Windows 11 / Server 2022+
SMB 3.1.1(持续增强)

⚠️ SMBv1 已被弃用。Windows 10/11 和 Windows Server 2019+ 默认不安装 SMBv1。如果你还在使用 SMBv1(常见于老旧设备如旧 NAS、Windows XP),强烈建议升级。SMBv1 缺乏现代加密,是 WannaCry 等勒索病毒的传播途径之一。


3. 你的电脑既是客户端也是服务器

很多人以为 Windows 客户端只能访问别人的共享,Windows Server 才能提供共享——这是错的

Windows(包括 Windows 11 家庭版)自带完整的 SMB 客户端和 SMB 服务器

场景C

既是客户端又是服务器

同时

Windows 11 电脑C

访问别人

别人访问自己

场景B

作为服务器

Windows 11 电脑B

其他电脑访问B

场景A

作为客户端

Windows 11 电脑A

文件服务器

这意味着你可以:

  • • 作为客户端 → \\server\share 访问文件服务器
  • • 作为服务器 → 在 Windows 11 上右键文件夹 → 属性 → 共享 → 让别人访问你的文件
  • • 两边同时 → 一边从 A 服务器拷文件,一边把你的文件夹共享给同事

4. 文件共享是怎么工作的?

4.1 最基本的操作流程

在服务器上创建共享:

  1. 1. 右键文件夹 → 属性 → 共享 选项卡 → 共享 按钮
  2. 2. 选择要授权的用户(Everyone = 所有人,或指定特定用户)
  3. 3. 设置权限(读取/读取写入)

在客户端访问共享:

  • • 方法一:按 Win+R,输入 \\服务器IP或名称\共享名
  • • 方法二:映射网络驱动器(我的电脑 → 映射网络驱动器 → Z:\ 指向 \\server\share

4.2 通信过程

服务器客户端服务器客户端1. 找到服务器2. 建立 TCP 连接3. 协商 SMB 版本4. 身份验证5. 访问共享6. 文件操作DNS 查询: "fileserver.corp.com" → IPTCP 三次握手 → 端口 445SMB 协商请求 (我支持3.1.1, 2.1...)选择 SMB 3.1.1发送凭据 (Kerberos 或 NTLMv2)认证成功, 发放会话密钥请求访问 \\fileserver\docs授权成功, 文件句柄可用读取/写入文件数据 (可选: 加密/签名/压缩)

4.3 防火墙须知

SMB 使用 TCP 端口 445(从 Windows 2000 开始,早期用 NetBIOS 端口 137-139)。Windows 防火墙默认允许局域网内的 SMB 流量(专用/域网络),但禁止来自互联网的 SMB 连接——这是重要的安全防线。

从 Windows 11 24H2 / Server 2025 开始,防火墙规则已不再自动打开 NetBIOS 端口 137-139。如果你的环境还依赖这些旧端口(例如兼容老旧 SMBv1 设备),需要手动配置防火墙。


5. SMB 的安全防护体系

SMB 提供了多层安全机制,就像一栋楼的防盗门:

5.1 SMB 签名(Signing)— 防篡改

签名为每条 SMB 消息附加一个加密哈希。如果有人篡改了传输中的数据,接收方会发现签名不匹配,立即拒绝。

工作原理:

图片

签名版本进化:

  • • SMB 1.0:MD5(弱,已不推荐)
  • • SMB 2.02:HMAC-SHA-256(中等)
  • • SMB 3.0:AES-CMAC(强)
  • • SMB 3.1.1 以后:AES-128-GMAC(硬件加速,性能影响极小 ✅)

如何配置:
通过组策略或注册表:

图片


计算机配置 → Windows 设置 → 安全设置 → 本地策略 → 安全选项
  ├── Microsoft 网络客户端:对通信进行数字签名(始终)
  └── Microsoft 网络服务器:对通信进行数字签名(始终)

对应的注册表值:

位置
值名
说明
HKLM\System\CCS\Services\LanManWorkstation\ParametersRequireSecuritySignature
客户端要求签名
HKLM\System\CCS\Services\LanManServer\ParametersRequireSecuritySignature
服务器要求签名

签名在以下情况下启用:只要客户端或服务器任意一方要求签名,签名就会生效。只有双方都明确禁用时才不签名。

最佳实践: 在企业环境中始终启用签名。域控制器默认要求签名。

5.2 SMB 加密(Encryption)— 防窥探

签名只能防篡改,不能防窥探。加密则更进一步——让数据在传输过程中完全不可读。

加密场景:

  • • 文件在 WAN 链路上传输(分支机构 → 总部)
  • • 敏感数据跨越非信任网络
  • • 防止中间人攻击

如何启用文件共享加密:

# 创建加密共享
New-SmbShare
 -Name "Confidential" -Path "D:\Confidential" -EncryptData $true

# 已有共享启用加密

Set-SmbShare
 -Name "Confidential" -EncryptData $true

小提示: 启用加密会消耗一些 CPU 资源。在千兆局域网内,现代 CPU 几乎感觉不到性能损失。

5.3 身份验证保护

防护机制
作用
如何配置
阻止 NTLM
要求使用更安全的 Kerberos 认证,防止凭据哈希被抓取
Set-SmbServerConfiguration -RejectNtlm $true
身份验证速率限制
防止暴力破解,限制每秒失败登录次数
Windows Server 2025 新增
禁用不安全来宾登录
防止匿名访问(默认已启用保护)
Set-SmbClientConfiguration -RequireSecuritySignature $true
SMB安全防护

防篡改

防窥探

防冒用

监控

SMB 签名

数据完整性

SMB 加密

数据机密性

认证保护

身份验证

签名+加密审核

合规检查

5.4 安全增强审核(新功能)

从 Windows 11 24H2 开始,可以审核不支持签名/加密的设备和软件:

# 审核不支持加密的客户端
Set-SmbServerConfiguration
 -AuditClientDoesNotSupportEncryption $true

# 审核不支持签名的客户端  

Set-SmbServerConfiguration
 -AuditClientDoesNotSupportSigning $true

通过事件查看器查看结果:应用程序和服务日志 → Microsoft → Windows → SMBClient/SMBServer → Audit


6. SMB 性能优化技巧

6.1 SMB 压缩

SMB 压缩是 Windows Server 2022 引入的杀手级功能。当你通过网络复制文件时,SMB 可以实时压缩数据再传输,减少带宽占用,缩短传输时间。

适用场景:

  • • 千兆局域网(1 Gbps)或 Wi-Fi
  • • WAN 链路(分支机构传输)
  • • 可压缩数据(VHDX 文件、文本文件、未压缩的日志)

优点: 无需手动压缩→复制→解压三步走,SMB 自动处理

限制:

  • • 需要 Windows Server 2022+ 和 Windows 11
  • • ⚠️ 不支持 RDMA(SMB 直通)——使用 RDMA 的连接不会启用压缩
  • • 压缩会增加 CPU 使用

如何启用:

方式 1:对共享启用(所有传输压缩)

New-SmbShare -Name "Sales" -Path "C:\sales" -CompressData $true

方式 2:对映射驱动器启用压缩

New-SmbMapping -LocalPath "Z:" -RemotePath "\\fs1.corp.com\sales" -CompressNetworkTraffic $true

方式 3:robocopy 单次压缩

ROBOCOPY C:\temp \\server\share *.txt /COMPRESS

方式 4:全局始终压缩

# SMB 客户端始终请求压缩
Set-SmbClientConfiguration
 -RequestCompression $true

# SMB 服务器始终请求压缩

Set-SmbServerConfiguration
 -RequestCompression $true

从 Windows Server 2025 开始还支持 LZ4 压缩算法,比默认的 XPRESS 算法更快,推荐用于高速网络环境。

6.2 SMB 多通道(Multichannel)

SMB 3.0 引入的多通道功能允许同时使用多条网络路径传输数据。如果你的服务器有多个网卡,SMB 会自动聚合它们的带宽。

图片

特点: 零配置自动启用,增加网络容错(一条线路断开会自动切换)。

6.3 SMB 直通(Direct / RDMA)

RDMA(Remote Direct Memory Access) 让数据绕过 CPU,直接在内存之间传输,实现极低延迟和极低 CPU 使用率。

图片

硬件要求: 需要支持 RDMA 的网卡(如 Intel XXV710、Mellanox ConnectX 等)。

6.4 传输层选择

传输方式
协议
加密
使用场景
传统 TCP
TCP/445
可选
局域网内使用
SMB over QUIC
UDP/443 + TLS 1.3
强制加密
通过互联网无 VPN 访问

SMB over QUIC 是 Windows Server 2022 Datacenter: Azure Edition 引入的颠覆性功能——无需 VPN,通过互联网安全访问文件共享。它使用 UDP 443 端口和 TLS 1.3 加密,相当于内置了 VPN 隧道。


7. SMB 的应用场景

7.1 日常文件共享(最简单)

办公室同事之间的文档共享,共享打印机等。

7.2 Hyper-V 虚拟化(SMB + Hyper-V)

将虚拟机(VHD/VHDX 文件)直接存储在 SMB 共享上。这样多个 Hyper-V 主机可以共享同一存储,支持故障转移和实时迁移。

Hyper-V 主机1 ──┐
                ├── SMB ── 共享存储(VHDX 文件)
Hyper-V 主机2 ──┘

7.3 SQL Server over SMB

SQL Server 可以将数据库文件(.mdf、.ldf)存放在 SMB 共享上,获得 SMB 多通道和 SMB 直通的性能优势。

7.4 超融合基础设施(HCI)

存储空间直通和存储副本都建立在 SMB 之上:

  • • 存储空间直通:使用 SMB 3 + RDMA 在多台服务器之间同步数据
  • • 存储副本:使用 SMB 3 + 加密实现异地灾难恢复

7.5 高级文件服务

包括横向扩展文件服务器(Scale-Out File Server)、DFS 命名空间和 DFS 复制等企业级功能,底层都依赖于 SMB。


8. 常见问题与最佳实践

8.1 安全清单

✅ 在公司防火墙阻止 TCP 445 入站(防外部攻击)
✅ 在公司防火墙阻止 TCP 445 出站(防数据外泄)
✅ 禁用或卸载 SMBv1
✅ 启用 SMB 签名
✅ 敏感数据共享启用加密
✅ 对文件服务器使用强密码
✅ 审计不安全的客户端
✅ 如果使用 SMB over QUIC,利用其 TLS 1.3 天然加密

8.2 性能清单

✅ 需要大文件传输 → 启用 SMB 压缩
✅ 服务器有万兆网卡 → 确保使用 SMB 3.0+(自动启用多通道)
✅ 低延迟要求 → 使用 RDMA 网卡启用 SMB 直通
✅ 跨互联网访问 → 使用 SMB over QUIC(替代 VPN)
✅ 高密度虚拟化 → SMB + Hyper-V over SMB 方案

8.3 排错:无法访问共享怎么办?

  1. 1. 确认目标 IP 可达(ping 服务器IP
  2. 2. 确认端口 445 可通(Test-NetConnection 服务器IP -Port 445
  3. 3. 查看 SMB 事件日志:
    • • 客户端事件:应用程序和服务日志 → Microsoft → Windows → SMBClient
    • • 服务器事件:应用程序和服务日志 → Microsoft → Windows → SMBServer
  4. 4. 检查防火墙规则
  5. 5. 检查共享权限和 NTFS 权限(两者都要允许)

9. 总结

SMB 从最初简单的文件共享协议,发展成了 Windows 存储生态的基石。理解 SMB 是管理 Windows 网络的基础——不管你是系统管理员、开发者还是 IT 运维人员,都会在某个时刻用到它。

记住这四句话就够了:

  1. 1. SMB 就是 Windows 网络文件共享的"语言",通过 TCP 445 端口通信
  2. 2. 版本越高越安全,SMB 3.1.1 是当前主流,SMBv1 应该被淘汰
  3. 3. 安全三件套:签名(防篡改)+ 加密(防窥探)+ 认证(防冒用)
  4. 4. 性能三件套:多通道(聚合带宽)+ 压缩(省带宽)+ 直通(零拷贝)


打赏

本文链接:https://www.kinber.cn/post/6580.html 转载需授权!

分享到:


推荐本站淘宝优惠价购买喜欢的宝贝:

image.png

 您阅读本篇文章共花了: 

群贤毕至

访客