🌐 从零搭建 WSUS 隔离网络:完整实战指南(内网离线补丁分发)
当你的内部网络与互联网物理隔离,但又需要定期为 Windows 服务器和客户端打补丁时,WSUS 的"导出-导入"模式是最佳选择。本文将带你一步步搭建一套完整的企业级 WSUS 隔离更新环境,包含域控制器、内外 WSUS 服务器、以及客户端配置。
📌 写在前面
- 适用场景:政企内网、涉密网络、生产专网等无法直接访问互联网的环境。
- 最终效果 :
- 互联网 WSUS 从微软同步更新,为 DMZ 区客户端服务。
- 内部 WSUS 离线运行,通过 U 盘从互联网 WSUS 导入补丁,为内网域客户端服务。
- 准备条件 :
- 三台 Windows Server 2022 虚拟机(或物理机)。
- 一台 Windows 10/11 客户端用于测试。
- 一个 U 盘(≥64GB,用于传输补丁数据)。
- 基础网络知识(IP、防火墙、AD域)。
🗺️ 网络拓扑与 IP 规划
| 角色 | IP 地址 | 操作系统 | 域成员 |
|---|---|---|---|
| Active Directory 域控制器 | 192.168.171.131 | Windows Server 2022 | 是 |
| 互联网 WSUS(DMZ) | 192.168.142.129 | Windows Server 2022 | 否 |
| 内部 WSUS(LAN) | 192.168.171.132 | Windows Server 2022 | 是 |
| 内部测试客户端 | 192.168.171.100 | Windows 10/11 | 是 |
| Internet 测试客户端 | 192.168.142.50 | Windows 10/11 | 否 |
- 网络段 :内部
192.168.171.0/24,DMZ192.168.142.0/24。 - 核心端口 :WSUS 使用 HTTP
8530;域服务使用标准端口(DNS 53、Kerberos 88、LDAP 389、SMB 445 等)。
💡 本文所有命令中的 IP 地址均按此规划,请根据实际环境替换。
1️⃣ 第一阶段:部署 Active Directory 域控制器
1.1 基础配置
- 安装 Windows Server 2022,设置计算机名(如
DC01)。 - 配置静态 IP:
192.168.171.131,子网掩码255.255.255.0,首选 DNS 设为127.0.0.1。
1.2 安装 AD DS 并提升为域控
- 打开服务器管理器 → 添加角色和功能 → 勾选 Active Directory 域服务。
- 安装完成后,点击"将此服务器提升为域控制器"。
- 选择 添加新林 ,根域名可设为
internal.local(自定义即可,不影响后续 IP 引用)。 - 设置目录服务还原密码,完成升级并重启。
1.3 创建组织单位(OU)
- 打开 Active Directory 用户和计算机 ,在域下新建
Computers、Servers两个 OU(方便后续管理)。
2️⃣ 第二阶段:部署互联网 WSUS 服务器(可联网)
2.1 基础配置
- IP:
192.168.142.129,子网掩码255.255.255.0。 - DNS 使用公网 DNS (如
8.8.8.8),不加入域,保持工作组模式。
2.2 安装 WSUS 角色
- 服务器管理器 → 添加角色和功能 → 勾选 Windows Server Update Services。
- 角色服务:WID 数据库 + WSUS 服务。
- 内容存储位置:
E:\WSUSContent(本指南全部使用 E 盘,请确保有足够空间)。
2.3 配置 WSUS(向导)
- 打开 WSUS 控制台,启动向导。
- 加入 Microsoft 更新计划:是。
- 上游服务器:从 Microsoft Update 同步。
- 语言:简体中文 + 英语(根据需要也可多选,但会影响同步量)。
- 产品:至少勾选 Windows 10、Windows 11、Windows Server 2019/2022、Microsoft Defender。
- 分类:关键更新、安全更新、定义更新、更新(推荐)。
- 同步计划:暂不设置,后续手动同步。
2.4 强制启用 TLS 1.2(必须!)
以管理员 PowerShell 执行:
powershell
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\.NETFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Wow6432Node\Microsoft\.NetFramework\v4.0.30319" -Name "SchUseStrongCrypto" -Value 1 -Type DWord
New-Item -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Force
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "DisabledByDefault" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SYSTEM\CurrentControlSet\Control\SecurityProviders\SCHANNEL\Protocols\TLS 1.2\Client" -Name "Enabled" -Value 1 -Type DWord
重启服务器。
2.5 调整 IIS 应用程序池内存
- 打开 IIS 管理器 → 应用程序池 →
WsusPool→ 高级设置。 - 将 专用内存限制 (KB) 改为
4000000(4 GB,可按需调整)。 - 回收并启动该池。
2.6 首次同步
- WSUS 控制台 → 选项 → 同步 → 点击 立即同步。
- 监控同步进度:
powershell
[void][System.Reflection.Assembly]::LoadWithPartialName("Microsoft.UpdateServices.Administration")
$wsus = [Microsoft.UpdateServices.Administration.AdminProxy]::GetUpdateServer()
$subscription = $wsus.GetSubscription()
while ($subscription.GetSynchronizationStatus() -eq "Processing") {
$progress = $subscription.GetSynchronizationProgress()
Write-Host -NoNewline ("`r同步进度: {0,3:N0}% 完成" -f (100 * $progress.ProcessedItems / $progress.TotalItems))
Start-Sleep -Seconds 10
}
Write-Host "`n同步完成!"
3️⃣ 第三阶段:部署内部 WSUS 服务器(离线,域成员)
3.1 加入域
- IP:
192.168.171.132,子网掩码255.255.255.0,首选 DNS 设为192.168.171.131。 - 右击"此电脑" → 属性 → 更改设置 → 域 → 输入域名(如
internal.local),使用域管理员加入。 - 重启后使用域管理员登录。
3.2 安装 WSUS 角色(离线模式)
- 安装 WSUS 角色,内容目录设为
E:\Updata。 - 重点 :安装完成后 不要运行配置向导,若向导自动弹出请取消。
3.3 配置为离线模式(注册表)
PowerShell 管理员执行:
powershell
Stop-Service WSUSService
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Update Services\Server\Setup" -Name "PostInstall" -Value 1 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Update Services\Server\Setup" -Name "UpstreamServerName" -Value "" -Type String
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Update Services\Server\Setup" -Name "IsReplicaServer" -Value 0 -Type DWord
Set-ItemProperty -Path "HKLM:\SOFTWARE\Microsoft\Update Services\Server\Setup" -Name "SourceServer" -Value "" -Type String
Start-Service WSUSService
3.4 重置数据库(如果之前有残留)
cmd
net stop wsusservice
del C:\Windows\WID\Data\SUSDB.mdf
del C:\Windows\WID\Data\SUSDB_log.ldf
net start wsusservice
4️⃣ 第四阶段:配置 Internet 客户端(工作组)
适用 :192.168.142.0/24 网段、不加入域的客户端。
4.1 注册表配置
以管理员身份打开 regedit,定位到 HKLM\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate(无则新建项),创建:
WUServer(REG_SZ) =http://192.168.142.129:8530WUStatusServer(REG_SZ) =http://192.168.142.129:8530UseWUServer(DWORD) =1
4.2 重启服务并上报
cmd
net stop wuauserv && net start wuauserv
wuauclt /detectnow /reportnow
验证:Get-ItemProperty -Path "HKLM:\SOFTWARE\Policies\Microsoft\Windows\WindowsUpdate"
5️⃣ 第五阶段:配置内部客户端组策略(域环境)
在域控 192.168.171.131 上操作。
- 打开 组策略管理控制台。
- 新建 GPO,命名
WSUS_Internal_Settings。 - 编辑 → 计算机配置 → 策略 → 管理模板 → Windows 组件 → Windows 更新。
- 指定 Intranet Microsoft 更新服务位置 :启用,检测服务器和统计服务器均设为
http://192.168.171.132:8530。 - 配置自动更新 :启用,选择
3 - 自动下载并通知安装。 - 将 GPO 链接到
ComputersOU。
6️⃣ 第六阶段:将内部客户端加入域
以 192.168.171.100 为例:
- 设置 DNS 为
192.168.171.131。 - 右击"此电脑" → 属性 → 更改设置 → 域 → 输入域名,用域管理员加入。
- 重启后用域账号登录,执行:
cmd
gpupdate /force
wuauclt /detectnow /reportnow
7️⃣ 第七阶段:从互联网 WSUS 导出补丁(到 U 盘)
7.1 导出元数据 (.cab)
在互联网 WSUS 服务器(192.168.142.129)以管理员 CMD 执行:
cmd
mkdir E:\WSUSExport
cd /d "C:\Program Files\Update Services\Tools"
WSUSUtil.exe export E:\WSUSExport\export_full.xml.gz E:\WSUSExport\export_full.log
等待 Export completed successfully。
7.2 导出补丁文件
cmd
robocopy E:\WSUSContent E:\WSUSExport\WSUSContent /MIR /R:2 /W:5
7.3 复制到 U 盘
将 E:\WSUSExport 整个文件夹复制到 U 盘。插入内网前务必杀毒!
8️⃣ 第八阶段:将补丁导入内部 WSUS
8.1 准备导入文件
将 U 盘插入内部 WSUS(192.168.171.132),假设 U 盘为 F:,复制到本地:
cmd
robocopy F:\WSUSExport E:\WSUSImport /MIR
8.2 停止服务并导入元数据
cmd
net stop wsusservice
cd /d "C:\Program Files\Update Services\Tools"
WSUSUtil.exe import E:\WSUSImport\export_full.xml.gz E:\WSUSImport\import.log
等待 Import completed successfully。
8.3 复制补丁文件到内容目录
cmd
robocopy E:\WSUSImport\WSUSContent E:\Updata /MIR
net start wsusservice
8.4 验证
打开内部 WSUS 控制台 → 选项 → 产品和分类 → 产品列表应包含 Windows 11 等(与互联网 WSUS 一致)。
9️⃣ 第九阶段:防火墙规则简表
边界防火墙(DMZ ↔ LAN)
| 方向 | 源/目的 | 端口 | 动作 |
|---|---|---|---|
| 出站 | 192.168.142.129 → 微软更新 | 443 | 允许 |
| 入站 | 192.168.142.0/24 → 192.168.142.129 | 8530 | 允许 |
| 拒绝 | 192.168.171.0/24 → 192.168.142.0/24 | 所有 | 拒绝 |
| 临时 | 内网管理机 → 192.168.142.129 | 445 | 允许 |
内部防火墙(服务区 ↔ 客户端)
| 服务 | 源 | 目的 | 端口 |
|---|---|---|---|
| DNS | 192.168.171.0/24 | 192.168.171.131 | 53 |
| Kerberos | 192.168.171.0/24 | 192.168.171.131 | 88 |
| LDAP | 192.168.171.0/24 | 192.168.171.131 | 389 |
| SMB | 192.168.171.0/24 | 192.168.171.131 | 445 |
| WSUS 客户端 | 192.168.171.0/24 | 192.168.171.132 | 8530 |
| WSUS 上报 | 192.168.171.132 | 192.168.171.0/24 | 8530 |
🔟 验证测试
Internet 客户端
- 检查注册表配置,运行
wuauclt /detectnow,在互联网 WSUS 控制台"计算机"中应出现该客户端。 - 审批一个更新,客户端能正常下载安装。
内部客户端
nslookup解析正常。Test-NetConnection 192.168.171.132 -Port 8530成功。gpresult /r看到 GPO 已应用。- 上报后在内部 WSUS 控制台中看到客户端,审批更新后能安装。
❗ 常见问题 & 解决
| 问题 | 原因/解决 |
|---|---|
| 互联网 WSUS 同步一直 0% | 未启用 TLS 1.2 或 IIS 内存不足 → 执行 TLS 脚本,调大 WsusPool 内存至 4GB |
| 导出失败 | E 盘空间不足 → 清理或更换更大分区 |
| Internet 客户端无法连接 WSUS | 防火墙 8530 未放行 → 添加入站规则 |
| 内部 WSUS 导入失败提示版本不匹配 | 产品/语言分类不一致 → 重置数据库后重新导入 |
| 内部 WSUS 没有 Windows 11 选项 | 数据库残留 → 删除 C:\Windows\WID\Data\SUSDB.*,重启服务,重新导入 |
| 内部客户端不上报 | 组策略未更新或防火墙阻止 → 运行 gpupdate /force,检查 8530 端口 |
📦 总结
至此,你已成功搭建了一套完整的 WSUS 隔离更新体系:
- ✅ 互联网 WSUS 正常同步微软更新。
- ✅ 内部 WSUS 通过 U 盘导入补丁,无需联网。
- ✅ 域内客户端通过组策略自动获取更新。
- ✅ DMZ 工作组客户端手动配置注册表获取更新。
后续维护提醒:
- 定期(如每月)重复 导出→导入 流程,使内网补丁库保持最新。
- 可在互联网 WSUS 上配置自动同步计划,并设置导出任务脚本(
WSUSUtil export)。 - 内网 WSUS 可定期运行服务器清理向导,删除过期更新。