分支机构的用户经常抱怨打开总部文件服务器上的大文件很慢,本质原因只有一个:每次访问都要跨越广域网传输完整数据。BranchCache 是 Windows Server 内置的一项内容缓存技术,专门用来缓解这类带宽压力。它有两种工作模式:托管缓存模式需要在分支部署一台专用服务器作为缓存节点,而分布式缓存模式则完全不需要额外硬件,客户端之间直接共享彼此缓存的内容,部署成本几乎为零。本文重点介绍分布式缓存模式的原理与完整配置流程。

分布式缓存模式的工作原理
分布式缓存模式的核心思想是“谁下载过,谁就是缓存源”。当分支办公室的第一台客户端从总部内容服务器下载某个文件时,客户端会将文件内容以数据块的形式缓存到本地磁盘,同时记录内容元数据。当同一子网内的第二台客户端请求相同文件时,它会先向局域网内其他启用了 BranchCache 的主机发起广播请求,如果有主机持有该内容,就直接从局域网取回数据,完全不再占用广域网链路。
需要特别注意的是,分布式缓存只在同一个 IPv4 子网内生效,客户端之间通过 WS-Discovery 协议互相发现,默认使用 UDP 端口 3702 和 TCP 端口 80(HTTP 传输模式)。数据块在传输前会经过 SHA-256 哈希校验,客户端拿到内容后会验证哈希值,防止缓存内容被篡改,安全性有一定保障。
与托管缓存模式相比,分布式模式胜在零硬件投入,适合小型分支;缺点是缓存的可用性依赖客户端在线状态,如果第一台下载文件的电脑关机了,其他机器就无法从局域网获取缓存。中大型分支建议优先考虑托管缓存模式。
内容服务器端的配置步骤
分布式缓存模式需要在总部的文件服务器上启用 BranchCache 功能。以 Windows Server 2019 为例,打开服务器管理器,依次选择“添加角色和功能”、“功能”,勾选 BranchCache,完成安装。安装后还需启用 Windows 防火墙的 BranchCache 内容服务器规则,可以用 PowerShell 快速完成:
Install-WindowsFeature BranchCache Enable-NetFirewallRule -DisplayGroup "BranchCache 内容服务器(使用 HTTP)" # 查看功能状态 Get-WindowsFeature BranchCache
接着还要在文件服务层面启用哈希生成。打开组策略管理控制台,找到对应内容服务器的 OU,编辑路径“计算机配置\策略\管理模板\网络\LAN 服务器上的哈希发布”,将其设置为“允许哈希发布”。如果服务器上托管了多个共享,还需要在“设置所有共享文件夹的哈希发布”策略中统一开启,或者针对单个共享文件夹在高级属性里手动勾选 BranchCache。
对于 Web 服务器场景,IIS 站点也支持 BranchCache,只需确保站点启用了 HTTP 协议并放行了防火墙规则即可,原理与文件服务器一致。
客户端启用分布式缓存模式
客户端配置主要通过组策略下发。在域控制器上打开组策略管理,创建一条绑定到分支客户端 OU 的策略,编辑路径为“计算机配置\策略\管理模板\网络\BranchCache”。关键策略项有三个:启用“启用 BranchCache”、启用“设置 BranchCache 分布式缓存模式”,以及可选的“配置 BranchCache 分布式缓存模式所占用的磁盘空间百分比”(默认为总磁盘的 5%)。
客户端本地放行防火墙规则同样必不可少,可用如下命令:
Enable-NetFirewallRule -DisplayGroup "BranchCache - 对等项(使用 HTTP)" Enable-NetFirewallRule -DisplayGroup "BranchCache - 对等项(使用 WSD)" # 查看当前 BranchCache 状态 Get-BCStatus # 查看本地缓存统计 Get-BCDataCache
如果不想用组策略,客户端也可以直接执行 Enable-BCDistributed 命令启用分布式模式,效果等同。配置完成后执行 netsh branchcache show status all,确认“分布式缓存模式:已启用”且服务 BranchCache(对应进程 PeerDistSvc)处于运行状态。
常见问题排查
部署后如果发现广域网流量没有下降,第一步检查客户端与服务器的模式是否匹配:分布式模式要求客户端之间处于同一子网,跨 VLAN 的分支要确认路由和 WS-Discovery 广播是否可达,必要时改用托管缓存模式。第二步检查防火墙,UDP 3702 被拦截是最常见的故障原因,客户端之间根本无法互相发现。
其次确认内容服务器确实在发布哈希。可以在客户端访问一次大文件后,用 Get-BCClientConfiguration 查看配置,再用性能监视器添加 BranchCache 相关计数器(如“已检索的内容字节数”)观察缓存命中率。如果命中数长期为零,多半是服务器端哈希发布策略没有生效,重新刷新组策略(gpupdate /force)并重启文件服务器上的 Server 服务即可。
最后提醒一点,缓存的默认保存位置为 C:\Windows\ServiceProfiles\NetworkService\AppData\Local\PeerDistRepub,排查磁盘占用问题时可以从这个目录入手。整个分布式缓存部署不需要任何额外授权费用,只要客户端是 Windows 10/11 企业版或教育版、服务器端为 Windows Server 2012 R2 及以上版本即可投入使用,是小型分支优化广域网访问最经济的方案之一。
BranchCache分布式缓存Windows Server修改时间:2026-09-10 19:26:33