从零搭建 WSUS 隔离网络:完整实战指南(内网离线补丁分发)

🌐 从零搭建 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,DMZ 192.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 并提升为域控

  1. 打开服务器管理器 → 添加角色和功能 → 勾选 Active Directory 域服务。
  2. 安装完成后,点击"将此服务器提升为域控制器"。
  3. 选择 添加新林 ,根域名可设为 internal.local(自定义即可,不影响后续 IP 引用)。
  4. 设置目录服务还原密码,完成升级并重启。

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(向导)

  1. 打开 WSUS 控制台,启动向导。
  2. 加入 Microsoft 更新计划:是。
  3. 上游服务器:从 Microsoft Update 同步。
  4. 语言:简体中文 + 英语(根据需要也可多选,但会影响同步量)。
  5. 产品:至少勾选 Windows 10、Windows 11、Windows Server 2019/2022、Microsoft Defender。
  6. 分类:关键更新、安全更新、定义更新、更新(推荐)。
  7. 同步计划:暂不设置,后续手动同步。

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:8530
  • WUStatusServer (REG_SZ) = http://192.168.142.129:8530
  • UseWUServer (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 上操作。

  1. 打开 组策略管理控制台。
  2. 新建 GPO,命名 WSUS_Internal_Settings。
  3. 编辑 → 计算机配置 → 策略 → 管理模板 → Windows 组件 → Windows 更新。
  4. 指定 Intranet Microsoft 更新服务位置 :启用,检测服务器和统计服务器均设为 http://192.168.171.132:8530。
  5. 配置自动更新 :启用,选择 3 - 自动下载并通知安装。
  6. 将 GPO 链接到 Computers OU。

6️⃣ 第六阶段:将内部客户端加入域

以 192.168.171.100 为例:

  1. 设置 DNS 为 192.168.171.131。
  2. 右击"此电脑" → 属性 → 更改设置 → 域 → 输入域名,用域管理员加入。
  3. 重启后用域账号登录,执行:
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 可定期运行服务器清理向导,删除过期更新。
相关推荐
阳光九叶草LXGZXJ14 小时前
达梦数据库-报错-15-列【XXX】长度超出定义
linux·运维·数据库·sql·学习
黄大刀16 小时前
DataPulse一款开箱即用的SCADA(四)-历史记录
运维·scada·动环
怎么没有名字注册了啊18 小时前
Qt开发:MessageBox怎么调出标题栏那个问号按钮?
windows
归秋14218 小时前
2026 企业 AI 办公工具选型指南:从评估框架到产品适配
大数据·运维·人工智能
Android系统攻城狮18 小时前
Linux Gstreamer深度解析之gst_audio_encoder_set_frame_max调用流程与实战(六十一)
android·linux·运维·音视频·gstreamer音视频·音视频进阶·gstreamer音视频进阶
李子红了时19 小时前
EncFS MP中文版汉化下载(免费文件加密工具)
windows·安全
辻弋20119 小时前
五年前的旅行视频糊成马赛克?Video2X用Real-ESRGAN逐帧重建细节,但只支持Windows、集显用户建议直接放弃
服务器·数据库·windows·游戏引擎·电脑
会飞的土拨鼠呀19 小时前
Windows 系统关闭虚拟内存文件pagefile.sys
windows
硅基手札19 小时前
【Linux内核专栏 14】网络协议栈
linux·运维·网络协议
传奇开心果编程21 小时前
【Compose Multiplatform 跨端开发学与练】第7课 平台适配与互操作
android·windows·学习·ui·ios·kotlin·composer