
简介这份面向信息安全研究人员与网络安全专业学生的IPsec实验文档围绕Windows虚拟机间基于预共享密钥的身份认证与安全通信展开可用于理解IPsec协议机制、策略配置、加密算法选择及数据包分析。文档共1个docx文件压缩包约1.17MB完整记录实验目的、VMware与Wireshark环境准备、Host_A与Host_B的IP安全策略创建、预共享密钥设置、筛选器与安全措施配置以及连通性验证和抓包结果分析。内容涵盖AH与ESP头部识别、主模式安全关联查看、策略指派后“Negotiating IP Security”现象排查等关键环节便于读者对照复现实验并掌握从配置到验证的完整思路。已有178人学习适合需要夯实IPsec基础、提升网络安全实验与协议分析能力的读者参考。1. 第一次在一台 Windows 虚拟机上做基于预共享密钥的 IPsec 实验最容易出错的地方并不是策略写错真正容易出错的地方是只配了一台机器就急着去 ping。Host_A 指派策略的那一刻原本通的链路立刻变成Negotiating IP Securityping 挂在那里不回包看起来像配置失败其实只是对端还没有任何能应答的 IPsec 策略。这套环境本身很常见VMware Workstation 里两台仅主机模式的 Windows 虚拟机配一个 Wireshark就能把 IPsec 从主模式协商到 AH、ESP 头部完整看一遍。做不好的代价也很直接要么两端卡在协商阶段互相等待要么抓包只看到一堆 ISAKMP 报文却永远等不到 ESP。适合正在学网络安全、需要亲手把预共享密钥配置跑通、并且能对着抓包读懂协议字段的人。2. 环境准备VMware Workstation 里两台 Windows 虚拟机的网络模式与基线验证环境这一步看起来只是装系统、改 IP实际上它决定了后面能不能抓到干净的包。我见过太多次策略配得一字不差结果抓包接口选错、两台机器根本不在同一个虚拟网段排查方向从一开始就偏了。这一章把机器规格、网络模式、初始连通性三件事一次做定后面才有可对照的基线。2.1 虚拟机规格与快照先把回滚手段准备好两台虚拟机的配置不需要高但要一致。IPsec 策略是按机器本地存储的两边硬件规格差异太大会让排查时分不清是配置问题还是环境问题。我的习惯是装好一台克隆出第二台再改计算机名和 IP比装两遍省时间也不容易漏掉某个网络组件。项目Host_AHost_B说明操作系统Windows 10 专业版或 Windows Server 2016 及以上同左需要保留「IP 安全策略在本地计算机」管理单元的版本vCPU / 内存2 核 / 4 GB2 核 / 4 GB跑策略管理和抓包足够磁盘60 GB60 GB单磁盘即可网络适配器1 个仅主机模式1 个仅主机模式不要再加第二块网卡IPv4 地址192.168.100.10/24192.168.100.20/24静态同网段默认网关留空留空仅主机网络不出网计算机名HOSTAHOSTB便于在监视器里区分 SA这里有个版本差异需要提前说明较新的 Windows 客户端版本已经把这个经典入口挪到了「高级安全 Windows Defender 防火墙 → 连接安全规则」下面界面逻辑完全不同。如果打开secpol.msc找不到「IP 安全策略」节点先确认系统版本不要浪费时间在错误的界面上点。快照策略值得单独强调。系统装完、VMware Tools 装好、IP 配好打一个名为clean的快照之后每完成一大步策略配置再打一个。IPsec 策略一旦指派筛选器设错的时候在界面上删不干净是常有的事回滚快照比一项项删省事得多这也是我做这类实验时唯一愿意多花五分钟的地方。2.2 仅主机模式NAT 会让 AH 直接失效桥接会引入无关流量网络模式这三个选项很多人随手选 NAT因为平时上网方便。但这个实验里 NAT 是明确不能用的。NAT 模式下虚拟机的源地址在离开虚拟网络时会被改写而 AH 保护的恰恰是整个 IP 头包括源和目的地址地址一旦被改接收端校验必然失败即使协商阶段能过AH 也跑不出结果。仅主机模式走的是独立的虚拟网段两台机器直接二层可达没有中间设备改写头部这是硬性要求不是个人偏好。模式虚拟网段两台虚拟机互通是否改写 IP 头本实验适用桥接物理局域网能但混入大量无关流量否不推荐抓包噪声大NATVMnet8取决于虚拟 NAT 设置是不可用AH 校验失败仅主机VMnet1能端到端直连否推荐在 VMware Workstation 里切换的方式是关机状态下进入「编辑虚拟机设置 → 硬件 → 网络适配器 → 仅主机模式」两台都改。改完开机先确认地址落在 VMnet1 的网段上不要凭记忆。# 查看所有网卡与地址确认仅主机网卡存在且网段正确 Get-NetAdapter | Format-Table Name, InterfaceDescription, Status ipconfig /all第一条命令列出网卡名和状态第二条看详细地址分配。重点确认适配器描述里带VMnet1字样的那块以及它拿到的 IPv4 地址是不是 192.168.100.x。如果拿到的是 169.254 开头的地址说明 DHCP 没分发或者手动配错了先解决这个再往下走。接着把地址固定下来不要依赖 VMware 的 DHCP否则重启后地址变了两边的策略和抓包记录全对不上。# 以 Host_A 为例把仅主机网卡设成静态地址 New-NetIPAddress -InterfaceAlias Ethernet0 -IPAddress 192.168.100.10 -PrefixLength 24 # 仅主机网络不出网网关留空DNS 指向本机避免解析超时拖慢命令 Set-DnsClientServerAddress -InterfaceAlias Ethernet0 -ServerAddresses 127.0.0.1-InterfaceAlias的名字要和Get-NetAdapter输出的一致不同系统上可能叫「以太网」或者「Ethernet0」。-PrefixLength 24对应 255.255.255.0。不写-DefaultGateway是有意的留空之后主机不会尝试把流量往不存在的网关送抓包时也不会出现多余的路由查询报文。Host_B 上把地址换成 192.168.100.20 再执行一次。2.3 初始状态验证ping 通之前先放行 ICMP两台机器的地址配好之后第一件事是验证基线通信。这里有一个几乎人人都会遇到的干扰项Windows 防火墙默认拦截 IPv4 的 ICMP 回显请求入站所以直接 ping 不通并不代表网络有问题。我第一次做的时候在这上面耗了半小时反复检查虚拟网络设置最后发现是防火墙。# 两台机器都执行放行 ICMPv4 回显请求入站 New-NetFirewallRule -DisplayName Lab-Allow-ICMPv4 -Protocol ICMPv4 -IcmpType 8 -Direction Inbound -Action Allow # 确认规则已生效 Get-NetFirewallRule -DisplayName Lab-Allow-ICMPv4 | Select-Object DisplayName, Enabled, Direction, Action-IcmpType 8指的是 echo request类型 8只放行请求回显应答本身是出站方向默认就允许。-Direction Inbound明确这是入站规则。命名统一加Lab-前缀是个小习惯实验做完清理的时候一条命令就能全找出来不会误删系统规则。放行后在 Host_A 上做基线测试# 先小包数确认连通再用 -t 持续观察方便同时开抓包 ping 192.168.100.20 -n 4 ping 192.168.100.20 -t-n 4发四个包就停适合快速判断。-t是一直发按 CtrlC 结束这个模式在后面验证 IPsec 生效时非常有用因为第一包往往触发协商会超时持续流才能看到后面的包是否恢复。基线阶段要求四个包全通、延迟稳定在 1 ms 以内如果出现丢包先解决物理层和防火墙问题不要带着问题往下配策略。同时在 Host_A 上打开 Wireshark接口选 VMnet1不是「以太网」也不是物理网卡显示过滤器填icmp确认能看到成对的 request 和 reply源目地址正好是 192.168.100.10 和 192.168.100.20。这一步是整个实验的参照点后面所有加密流量的对比都以它为准。2.4 配置前先检查并清理可能存在的旧策略如果这台虚拟机以前做过类似实验或者是从别人的模板克隆来的本地策略存储里可能残留已经指派的旧策略。这种情况下的现象非常迷惑你新建的策略还没指派流量就已经被加密了抓包看到 ESP 却找不到来源。打开secpol.msc展开「IP 安全策略在本地计算机」看右侧列表里有没有非系统自带的条目以及「策略已指派」列有没有显示「是」。有的话先右键取消指派再删除。系统自带的「客户端仅响应」「服务器请求安全」这几条默认策略不要动它们是指派状态为「否」的模板。清理完之后重启一次策略代理服务让内存里的策略缓存和存储对齐# 重启策略代理清掉可能残留的运行时状态 Restart-Service PolicyAgent -Force Get-Service PolicyAgent, IKEEXT | Select-Object Name, Status, StartType-Force会连带停掉依赖它的服务实验环境里无所谓。第二条命令确认 PolicyAgent 和 IKEEXT 都是 Running这两个服务的分工在下一章会详细说此处只要它们活着就行。到这里环境就算立住了两台机器同网段、静态地址、ICMP 双向通、抓包能看到干净的基线流量可以进入策略配置。3. 管理单元装载在 MMC 里把 IP 安全策略管理和监视器加载出来很多人打开secpol.msc只看到「IP 安全策略在本地计算机」找不到「IP 安全监视器」就以为系统版本不支持。其实监视器不是默认装载的它需要通过 MMC 手动添加。这一步不难但它是后面所有排错的基础没有监视器你只能靠 ping 通不通来猜而 SA 到底建没建、用的是哪种身份验证方式全靠这个界面看。3.1 MMC 只是个空控制台两个管理单元各管一件事mmc打开的是一个空的 Microsoft 管理控制台本身不带任何功能所有能力都来自挂进去的管理单元。这个设计的好处是可以把常用的几个工具拼成一个自定义控制台文件双击直达坏处是第一次用的人会对着空白界面发呆。本实验需要装两个单元职责完全不同管理单元作用等价入口本实验用途IP 安全策略管理在本地计算机创建、编辑、指派 IPsec 策略secpol.msc中的同名节点配置预共享密钥、筛选器、安全措施IP 安全监视器实时查看主模式/快速模式安全关联无独立入口验证 SA 是否建立、查看认证方式注意两个单元的作用域都选「本地计算机」不要选「域」或者「另一台计算机」。实验机器不在域里选错作用域会打开一个空列表或者连不上目标机器报错。这也是克隆虚拟机时容易埋下的问题机器名改了但域信息残留管理单元会尝试去连一个不存在的主机。具体操作路径是WinR输入mmc回车在空控制台里点「文件 → 添加/删除管理单元」在左侧可用列表里找到「IP 安全策略管理」点「添加」弹窗里选「本地计算机」完成再重复一次添加「IP 安全监视器」。两个都加到右侧之后点「确定」返回。此时控制台根节点下会出现两个新条目展开就能用。3.2 把控制台存成文件让两台机器的入口统一每次都要走一遍添加流程很烦而且容易漏。MMC 支持把当前的管理单元组合保存成.msc文件下次双击直接打开两台机器用同一个文件名排查时不会搞混。# 两台机器建同一个目录放控制台文件和后续的抓包结果 New-Item -ItemType Directory -Path C:\IPsecLab -Force建完目录在 MMC 里点「文件 → 另存为」路径填C:\IPsecLab\ipsec-lab.msc保存。之后两台机器都从这个文件进界面布局完全一致对着截图排查的时候省很多口舌。这里必须分清一件事.msc文件保存的是「管理单元列表和视图配置」不包含策略本身。策略存在系统的本地策略存储里和这个文件无关。所以把.msc拷到另一台机器上只能得到同样的界面不会同步任何配置。这个误解我见过不止一次有人以为拷过去就「一键复制」了两台的策略结果对端空空如也然后开始怀疑密钥。3.3 底层两个服务PolicyAgent 和 IKEEXT 的分工图形界面能点开不代表底层在干活。IPsec 依赖两个服务它们默认都是手动启动指派策略之后会被拉起但提前确认状态能省掉一轮无谓的排查。# 查看两个关键服务的状态和启动类型 Get-Service PolicyAgent, IKEEXT | Select-Object Name, DisplayName, Status, StartTypePolicyAgent是 IPsec 策略代理负责把策略从存储里读出来下发给 IPsec 驱动同时也管着审计和统计。IKEEXT是 IKE 和 AuthIP 密钥协商模块负责主模式的密钥交换。前者挂了策略根本没下发抓包看不到任何 ISAKMP后者挂了主模式起不来表现是一直停在Negotiating IP Security。这两个故障现象很像但原因完全不同所以每次排查我都先看一眼这两行状态。确认没问题之后固化成自动启动避免重启后忘了手动拉# 设成自动启动并立即拉起保证重启后策略依然生效 Set-Service PolicyAgent -StartupType Automatic Set-Service IKEEXT -StartupType Automatic Start-Service PolicyAgent Start-Service IKEEXTSet-Service改的是启动类型Start-Service是本次立即启动两条都要执行。如果启动时报依赖服务错误通常是Base Filtering EngineBFE没起来那是防火墙和 IPsec 共同依赖的底层服务先把它拉起来再试。3.4 打开审核策略为排错留下可用的证据图形界面只告诉你「通」或「不通」中间发生了什么它不说。想看到协商失败的具体原因需要打开 IPsec 相关的审核让系统把事件写进安全日志。# 打开 IPsec 驱动相关审核成功和失败都记录 auditpol /set /subcategory:IPsec Driver /success:enable /failure:enable # 回读确认配置已生效 auditpol /get /subcategory:IPsec Driver第二条命令的输出应该能看到「成功和失败」都处于启用状态。记录落在事件查看器的「Windows 日志 → 安全」里来源筛选Microsoft-Windows-Security-Auditing与 IPsec 相关的典型事件包括主模式安全关联建立与删除4650、4651和快速模式关联建立与删除5451、5452不同系统版本号段可能有细微差异按来源和关键字筛比记 ID 更稳。打开审核的代价是安全日志增长变快实验环境无所谓做完实验可以再关掉。我在虚拟机快照里保留了这个设置因为下一次改策略出问题时第一件事就是去翻日志看协商在哪一步断的没有这些事件就只能靠猜。4. 策略配置预共享密钥、筛选器列表与 AH/ESP 安全措施的完整落地前面三章都是准备工作这一章才是真正把策略建出来。界面上的向导步骤多每一步的选项都有讲究选错了不一定立刻报错而是表现成「配好了但不通」非常耗时间。下面按向导的实际顺序走一遍把每个选项为什么这么选说清楚。4.1 新建策略与默认响应规则的预共享密钥在 IP 安全策略管理单元里右键「IP 安全策略在本地计算机」选「创建 IP 安全策略」起个能区分的名字Host_A 上叫PSK-LAB-AHost_B 上叫PSK-LAB-B。名字带后缀不是为了好看两台机器的策略名一样的时候看监视器和日志容易搞混是哪一端。向导走到「默认响应规则身份验证方法」这一页选「使用此字符串保护密钥交换预共享密钥」填入密钥。这一页设置的是默认响应规则它是一条兜底规则任何没有单独指定身份验证方法的连接请求都会用这个密钥去应答。两台机器必须填完全相同的字符串。密钥本身建议用纯 ASCII、不含空格、不含中文和全角符号的固定串比如Lab-PSK-2024-A这种。预共享密钥是字节级比较首尾多一个空格、中间混一个全角字符界面上看起来一模一样协商就是过不去。我一般直接从记事本复制粘贴到两台机器不手敲。长度上不用追求复杂实验环境里它只保护两段链路之间的协商真正的强度取决于算法和密钥管理这里是教学场景够用就行。4.2 安全规则向导五个页面的选项与取舍策略建好之后会弹出「新 IP 安全策略属性」窗口在「规则」页签点「添加」进入安全规则向导。这个向导有五页关键选项逐页说明。向导页选项实验取值选择理由隧道终结点此规则不指定隧道 / 隧道终点在此 IP 地址此规则不指定隧道走传输模式主机到主机直连头部结构最直观网络类型所有网络连接 / 局域网 / 远程访问所有网络连接仅主机网络被归类为局域网全选最省事IP 筛选器列表所有 IP 通讯 / 新建自定义列表所有 IP 通讯实验初期省配置后期建议收窄筛选器操作允许 / 阻止 / 协商安全新建协商安全必须协商允许等于不加密身份验证方法证书 / Kerberos / 预共享密钥预共享密钥无域环境证书成本高「隧道终结点」这一页容易被忽略。选「此规则不指定隧道」意味着走传输模式AH 和 ESP 直接跟在原始 IP 头后面抓包时能清楚看到「IP 头 → AH → ESP → 载荷」这个层次。如果选了隧道模式整个原始包会被再包一层新 IP 头虽然更接近站点到站点场景但初学者看抓包会晕。这个实验的目的之一就是看清协议格式传输模式更合适。「IP 筛选器列表」选「所有 IP 通讯」是原文的做法实验阶段确实省事一条规则覆盖全部流量。但要清楚它的副作用两台机器之间的 SMB、RDP、甚至 VMware 的一些管理流量都会被纳入协商范围一旦对端没配好你连远程管理都进不去。熟练之后我一般改成自定义筛选器只放 ICMP 和需要观察的端口可控性高很多。4.3 筛选器操作AH(MD5) 与 ESP(SHA13DES) 的组合逻辑这一页是整个实验的核心。在「筛选器操作」页点「添加」进入筛选器操作向导。常规选项里选「协商安全」然后有一项「与不支持 IPsec 的计算机通讯」选「不与不支持 IPsec 的计算机通讯」。这个选项的意思是双向强制对端不配合协商就直接拒绝不会回退到明文。实验里必须这么选否则一端配好、一端没配的时候流量会静默走明文你以为加密了其实没有。接下来选「自定义」点「设置」进入自定义安全措施。这里要同时勾选两组算法安全措施完整性算法加密算法保护范围抓包可见字段数据和地址不加密的完整性AHMD5无IP 头 上层载荷下一头部、AH 长度、SPI、序列号、ICV数据和完整性加密ESPSHA13DES仅上层载荷SPI、序列号、IV、加密载荷、认证数据同时开 AH 和 ESP 在真实环境里很少见因为 ESP 已经能提供完整性保护再套一层 AH 属于重复劳动还会多占带宽。这里这么做纯粹是为了在一个抓包里同时看到两种头部方便对照协议格式。AH 保护范围包含 IP 头中的地址字段所以前面强调不能用 NAT原因就在这里ESP 只保护载荷IP 头保持明文这也解释了为什么 ESP 能穿过 NAT 而 AH 不能。算法上 MD5、SHA1、3DES 都属于老一代选择现在的标准做法是 SHA-256 配 AES。但经典 IPsec 策略的界面上可选项就这些教学场景下够用。需要明确的是这套组合不能照搬到生产环境算法强度不足是实打实的问题不是保守不保守的问题。配置完成后在「筛选器操作」页能看到自定义操作的摘要确认 AH 和 ESP 两组都显示了对应的算法然后选中它下一步。4.4 只保留一条规则并指派指派之后不通才是正常状态向导最后会问是否编辑属性完成后回到「新 IP 安全策略属性」窗口。这个窗口里可能已经存在规则列表除了刚建的那条之外还可能有默认响应规则。默认响应规则不用勾选它本来就会自动应答勾选了反而会多出一条重复规则。确保「规则」页签里只勾中新建的这条点确定。然后回到本地安全设置窗口右键PSK-LAB-A点「指派」。右侧「策略已指派」列变成「是」。这时候在 Host_A 上 ping Host_B会出现Negotiating IP Security或者干脆不回包这是预期行为因为 Host_B 上还没有任何策略能应答协商请求。很多人在这里就开始怀疑自己配错了反复删了重建其实只是还没配完。指派完成后可以验证策略确实被代理加载了# 重启策略代理让新指派的策略立即生效并确认服务仍然正常 Restart-Service PolicyAgent -Force Get-Service PolicyAgent, IKEEXT | Select-Object Name, Status在实验环境里重启服务是安全的最多中断几秒。生产环境要谨慎因为这会短暂影响该机器上所有 IPsec 连接。如果重启后服务起不来说明策略本身有问题比如筛选器引用了不存在的对象这时候去看事件日志会有明确报错。4.5 Host_B 的镜像配置与两端一致性核对Host_B 上重复 4.1 到 4.4 的全部步骤策略名改成PSK-LAB-B密钥字符串必须和 Host_A 完全一致。配置完成后同样指派再回到 Host_A 做连通性测试。两端的核对是这一步的重点。预共享密钥不一致是这类实验里最高频的失败原因而且现象很隐蔽主模式协商会失败但 ping 只是不通不会告诉你原因。界面上逐字对比容易漏我的做法是打开两边的策略属性把密钥字段里的内容复制到同一个文本框里比对长度和字符。如果系统上还保留着netsh ipsec上下文可以用它导出策略做文本比对比手工核对可靠# 在仍保留 netsh ipsec 上下文的系统上导出策略详情用于两端比对 netsh ipsec static show policy namePSK-LAB-A verbose这条命令会打印策略下所有规则、筛选器、筛选器操作和身份验证方法的完整信息。把两端输出贴到同一个文本文件里比对密钥、算法、筛选器范围哪一项不同一目了然。如果执行时提示找不到ipsec上下文较新系统上这个命令集已经被移除就退回界面逐项核对别在这上面纠缠。两端都指派完成后再在 Host_A 上执行持续 ping# 持续 ping 观察首包超时后是否恢复首包超时是协商触发的正常现象 ping 192.168.100.20 -t正常情况下第一包或前两包会超时因为要触发主模式和快速模式两轮协商之后恢复连通且稳定。如果一直是Negotiating IP Security进入下一章的排查流程。5. 避坑排查预共享密钥 IPsec 配置里最容易失败的五个地方这一章记录的是我在虚拟机环境里反复遇到的五类问题每条都按现象、原因、解决三段写。这些现象彼此相似但根因完全不同按顺序排查比乱试快得多。5.1 指派后持续显示 Negotiating IP Security对端配好也不通现象Host_A 指派策略后 ping 一直显示Negotiating IP Security等 Host_B 也配好指派了情况没有任何改善抓包能看到 ISAKMP 报文一去一回之后就没下文了。原因最常见的是两端预共享密钥不一致。主模式协商的第一阶段就要验证密钥不一致时协商在第二阶段前中断界面上只表现为「一直在协商」。第二种可能是 Host_B 的策略建了但没有指派右侧「策略已指派」列仍然是「否」。第三种是其中一台的默认响应规则身份验证方法被改成了 Kerberos 或证书而规则里单独设的是预共享密钥两处冲突。解决先在两端打开 IP 安全监视器看「主模式 → 安全关联」里有没有条目。完全没有条目说明协商第一步就没过重点查密钥有条目但快速模式为空说明主模式过了、第二阶段筛选器不匹配去查两端的筛选器列表是否一致。密钥核对建议复制粘贴比对不要目视。5.2 主模式 SA 建立了但快速模式一直是空的现象监视器里主模式安全关联显示正常身份验证方式写着「预共享密钥」但快速模式安全关联始终为 0ping 不通。原因第一筛选器操作里选了「不与不支持 IPsec 的计算机通讯」而两端的筛选器覆盖范围不一致一端要求所有 IP 通讯加密另一端只覆盖了部分协议导致无法匹配。第二IKE 协商用的 UDP 500 和 4500 端口被防火墙拦截主模式能过是因为本机出站放行回程被挡。第三其中一端的策略指派后没有重启策略代理加载的还是旧规则。解决先临时放行 IKE 相关端口做验证确认是这个原因再决定长期策略。打开两端策略属性逐条比对筛选器列表的源地址、目的地址、协议类型确保完全对称。改完策略后统一执行一次策略代理重启。# 临时放行 IKE 协商端口仅用于实验环境排错 New-NetFirewallRule -DisplayName Lab-Allow-IKE -Protocol UDP -LocalPort 500,4500 -Direction Inbound -Action Allow这条规则只为定位问题确认是端口拦截之后再考虑是保留还是收窄范围。-LocalPort用逗号分隔多个端口一次搞定。5.3 密钥看起来完全一样就是协商不过现象两端的密钥字段内容肉眼看上去一致长度也一样但主模式始终失败。原因预共享密钥按字节比较首尾空格、全角字符、中英文标点混用都会导致不一致。从网页或文档里复制时经常带进不可见字符尤其是行尾的空格。另一个隐蔽情况是大小写密钥是区分大小写的Lab-PSK和lab-psk是两个完全不同的值。解决把两端密钥都清空用同一个纯 ASCII 字符串重新粘贴不要手敲。字符串里不要出现空格、中文、全角标点。如果还是不通把密钥临时改成一个极短的纯字母串做排除测试通了再换回正式字符串。5.4 改过策略之后再也回不到明文删了策略也不通现象调整过几次筛选器和算法之后即使把策略取消指派、甚至删掉两台机器之间依然不通重启也不一定恢复。原因快速模式的安全关联有缓存策略变了但旧的 SA 还在有效期内流量继续走旧的安全通道。另一种情况是策略虽然删了但 IPsec 驱动层还挂着已下发的规则需要服务重启才会真正卸载。解决按顺序做三步。先在界面上右键策略「取消指派」确认「策略已指派」变成「否」再重启 PolicyAgent 服务最后如果还不通直接重启虚拟机。顺序不能反先删策略再重启否则重启后旧策略又被加载回来。# 取消指派后强制重启策略代理让驱动层卸载残留规则 Restart-Service PolicyAgent -Force Get-Service PolicyAgent | Select-Object Name, Status如果这台机器上有多个策略取消指派只影响当前这一条其他策略不受影响。确认状态是 Running 之后再测连通性。5.5 Wireshark 只看到 ESP看不到 AH 头部现象抓包能看到 ISAKMP 协商过程和后续的 ESP 数据包但完全没有 AH 头部和预期不符。原因最直接的是自定义安全措施里只勾了 ESP没勾 AH。其次是抓包接口选错选到了 VMnet8 或者物理网卡而流量实际走 VMnet1某些接口上可能只捕获到部分方向的包造成误判。还有一种情况是显示过滤器写得太窄比如只写了esp把 AH 包过滤掉了。解决回到筛选器操作的自定义设置里确认「数据和地址不加密的完整性AH」前面的勾选框是勾上的并且完整性算法选的是 MD5。抓包接口重新选一次认准适配器描述里带 VMnet1 的那一项。显示过滤器改成ah or esp or isakmp一起看不要只写一个。6. 验证收尾用 IP 安全监视器和 Wireshark 确认 IPsec 真的跑起来了配置完成、ping 恢复连通只说明链路通了不代表 IPsec 生效了。真正需要确认的是三件事主模式和快速模式两层安全关联都建立了、身份验证方式确实是预共享密钥、抓包里能同时看到 AH 和 ESP 头部。6.1 监视器里的两层 SA 与抓包里的三个协议打开C:\IPsecLab\ipsec-lab.msc展开 IP 安全监视器。在「主模式 → 安全关联」里应该能看到一条记录对端地址是 192.168.100.20身份验证方式显示「预共享密钥」同时列出加密和哈希算法。这里对应的是 IKE 第一阶段保护的是协商本身。再看「快速模式 → 安全关联」这里应该有两条或更多记录分别对应 AH SA 和 ESP SA每条都有自己的 SPI 值。SPI 是安全参数索引抓包里能直接看到这个数字用它把监视器里的记录和 Wireshark 里的包对上是最可靠的对应方法。Wireshark 侧接口选 VMnet1用下面几个过滤器分别看显示过滤器看到什么用途isakmp主模式和快速模式的协商报文确认协商流程完整走完ahAH 头部含 SPI、序列号、ICV确认完整性保护生效espESP 头部载荷已加密确认机密性保护生效icmp加密前的基线流量与加密后对比完整的顺序是先是若干条 ISAKMP 报文完成主模式再是几条完成快速模式之后才是被 AH 和 ESP 保护的数据包。ping 的请求和应答内容在 ESP 里已经看不到只能看到长度和序列号这正是加密生效的直接证据。把加密前后的两次抓包并排放对比同一条 ping 的报文长度变化比任何文字说明都直观。这套实验的完整步骤、两台机器的参数对照表和抓包结果整理成了一份可对照的实验笔记需要照着复现的话可以拿去对着做尤其是筛选器和算法那几页的取值抄错一个就会卡很久。从那以后我每次做完 IPsec 配置都强制先起一个持续 ping再去监视器里确认主模式和快速模式两层 SA 同时存在两个条件缺一个就不认为这一步做完了。这个习惯帮我省下了大量「明明配对了却不通」的时间。希望帮到你。本文还有配套的精品资源点击获取