SMB over QUIC:在 Windows Server 2025 上通过 Internet 挂载文件共享,无需 VPN
基于 QUIC 的 SMB是 Windows Server 2025 上提供的一项新功能,允许您配置通过 Internet 对 Windows 文件共享的安全访问,而无需使用 VPN(之前仅在 Windows Server 2022 Azure 版本中提供)。过去,远程访问 SMB 文件服务器需要部署额外的 VPN 或 RDS 解决方案。现在,借助 QUIC 上的 SMB,您可以直接从不受信任的公共网络安全地访问文件服务器。
主要特点基于 QUIC 的 SMB协议是:
- SMB 服务器和用户之间的连接受到保护带证书的 TLS 1.3 加密。用户身份验证发生在安全 TLS 隧道内。
- UDP/443用于代替传统的 SMB 端口 TCP/445。
- QUIC 是一种现代传输协议,可提供改进的性能并抵抗不良网络通道。它还包括新的压缩算法。
- 通过 QUIC 客户端访问控制,您可以使用证书限制客户端对文件服务器的访问。
- SMB 3.1.1 在 TLS 隧道内使用。
SMB over QUIC 通常被称为中小企业VPN因为它允许远程用户通过 Internet 安全地访问公司文件服务器,而无需额外的 VPN。
让我们看看如何通过 SMB over QUIC 共享 Windows Server 2025 文件服务器上的文件夹,并使用证书身份验证从客户端提供对其的安全访问。 Windows Admin Center (WAC) 和 PowerShell 可用于通过 QUIC 配置 SMB。
首先,在 Windows Server 2025 上配置具有 SMB over QUIC 支持的文件服务器。尽管首选 Active Directory 域,但可以针对具有本地用户帐户的工作组方案配置 QUIC 上的 SMB。
您需要一个 SSL 证书,其中包含文件服务器的 FQDN主题备用名称 (SAN)。您可以使用来自外部证书颁发机构的证书,包括 Let's Encrypt 证书、来自内部 CA 的证书或自签名证书,这是可以接受的,但不建议使用。证书的增强型密钥用法 (EKU) 字段必须包含用于服务器认证。
在此示例中,我将使用服务器上有自签名证书的场景。为文件服务器的 FQDN 生成自签名证书。
$todaydate = Get-Date
$add3year = $todaydate.AddYears(3)
New-SelfSignedCertificate -dnsname mfs01.woshub.com -notafter $add3year -CertStoreLocation cert:\LocalMachine\My
通过指纹选择证书:
$cert=Get-ChildItem -Path "Cert:\LocalMachine\My" | Where-Object Thumbprint -eq D4CB32344D21EB9E38168EA04540DBE509BBD650
将证书分配给 QUIC SMB 服务器。
New-SmbServerCertificateMapping -Name mfs01.woshub.com -Thumbprint $cert.Thumbprint -StoreName My


为文件服务器启用 SMB over QUIC 支持。
Set-SmbServerConfiguration -EnableSMBQUIC $true
验证 SMB 服务器正在侦听 UDP 端口 443。
netstat -a | Select-String 443


要允许通过 SMB QUIC 访问文件共享,必须在 Windows Defender 防火墙中启用适当的规则:
Get-NetFirewallRule -DisplayName "File and Printer Sharing (SMB-QUIC-In)"|select name,enabled,profile
默认情况下,会向域配置文件授予 SMB QUIC 访问权限,但会拒绝专用和公共网络配置文件类型(根据您的环境启用所需的规则)。


请注意,连接到共享文件夹时,SMB 客户端会尝试使用标准 TCP 端口 445。如果该端口不可用,客户端将切换到 QUIC。因此,建议配置服务器的防火墙规则,限制外部客户端通过标准端口 445 访问 SMB。
接下来,在客户端计算机上通过 QUIC 配置与 SMB 共享文件夹的连接(支持以下操作系统作为客户端:Windows 11、Windows Server 2025 和具有 Samba 版本 4.23 或更高版本的 Linux。但是,Windows 10 不支持 QUIC 协议。
检查 Windows 11 客户端上是否启用了 SMB over QUIC 支持:
Get-SmbClientConfiguration | select EnableSMBQUIC


客户端计算机必须信任文件服务器上安装的证书。使用企业 CA 时,您可以分发 CA 的根证书和中间证书,并将它们添加到客户端设备上的受信任证书存储中(可以通过 GPO 部署证书)。如果您使用自签名证书,则需要将其导入客户端的受信任证书存储中。
现在,您可以使用 New-SmbMapping PowerShell cmdlet 从文件服务器映射共享文件夹:
New-SmbMapping -LocalPath W: -RemotePath \\mfs01.woshub.com\Docs -TransportType QUIC
或者使用 net use 命令:
net use W: \\mfs01.woshub.com\Docs /TRANSPORT:QUIC


要确保使用 QIUC 传输来连接共享文件夹,请检查客户端上的事件查看器日志中的事件 ID30832(事件查看器 -> 应用程序和服务日志 -> Microsoft -> Windows -> SMBClient -> 连接)。
The initial connection to the share was established. Share name: \xxxxx Server address: xxxxxxx:443 Session ID: 0x1900014000079 Tree ID: 0xD Transport type: Quic Signing used: true


如果您看到事件 ID30803在日志中,这很可能意味着客户端上没有安装服务器证书,或者客户端不信任它。
Failed to establish a network connection. Error: The QUIC connection encountered a bad certificate during TLS.


您可以使用客户端访问控制仅当客户端拥有必要的证书时才允许通过 QUIC 协议访问服务器共享的规则。为与文件服务器的连接启用强制 SMB 客户端证书身份验证。
Set-SmbServerCertificateMapping -Name mfs01.woshub.com -RequireClientAuthentication $true
让我们在客户端计算机上创建一个有效期为三个月的自签名证书。
$clientCert = New-SelfSignedCertificate -DnsName mfs01.woshub.com -CertStoreLocation "Cert:\LocalMachine\My" -NotAfter (Get-Date).AddMonths(3) -KeyAlgorithm "RSA" -KeyLength "2048"
在客户端设备上绑定此证书,以便在连接到企业文件服务器时使用:
New-SmbClientCertificateMapping -Namespace mfs01.woshub.com -Thumbprint $clientCert.Thumbprint -Store My
获取客户端证书的 SHA-256 哈希值。
$clientCert.GetCertHashString("SHA256")


允许来自具有 QUIC 共享(通过其 SHA-256 哈希)的 SMB 服务器上的此证书的客户端的连接。
Grant-SmbClientAccessToServer -Name mfs01.woshub.com -IdentifierType SHA256 -Identifier "B05E517D9FCA15BE3A38D95AA97A87003F55D524FE67DB7D7E81BB99B5C1D50B"


列出文件服务器上的所有客户端访问控制规则:
Get-SmbClientAccessToServer -Name mfs01.woshub.com
或者,您可以允许来自具有特定发布者(以 X.500 格式指定)的证书的所有客户端的连接。此 CA 的根证书和中间证书必须受到 SMB 服务器的信任:
Grant-SmbClientAccessToServer -Name mfs01.woshub.com -IdentifierType ISSUER -Identifier "<subject name>"
启用证书身份验证事件审核(应用程序和服务日志\Microsoft\Windows\SMBServer\Audit):
Set-SmbServerConfiguration -AuditClientCertificateAccess $true
因此,只有具有批准证书的客户端才能连接到您的 SMB 文件服务器。
通过 QUIC 上的 SMB,所有 SMB 流量(包括身份验证)均完全加密。如果域控制器无法进行客户端身份验证,则将使用 NTLMv2 身份验证而不是 Kerberos 身份验证。这种加密可以保护 NTLM 身份验证免遭攻击者拦截或获取,从而确保即使在使用 NTLM 时,凭证和身份验证过程在加密的 QUIC 通道内仍然受到保护。
要使客户端能够使用 Kerberos 进行身份验证,请在文件服务器上部署 KDC 代理。此代理通过 HTTPS 将 Kerberos 请求从外部客户端转发到域控制器(查看帖子SMB over QUIC:配置 KDC 代理)。
相比 QUIC 协议,SMB 的一个缺点是它不支持旧版 SMB 客户端,包括 Windows 10 及更早版本以及 4.23 之前的 Samba 版本。
