对于Windows防火墙的入站连接(I)设置,有三个选项:阻止、阻止所有连接和允许。netsh advfirewall 是命令行前端工具,用来操作 Windows 高级防火墙(Windows Defender Firewall with Advanced Security,简称 WFAS),底层核心是 Windows Filtering Platform(WFP,Windows 筛选平台)
使用组策略配置防火墙规则 - Windows Security | Microsoft Learn
netsh ? 显示当前上下文的全部命令列表
netsh add 在项目列表上添加一个配置项目
netsh advfirewall 切换到高级 Windows 防火墙上下文,管理高级防火墙策略、规则
netsh branchcache 切换到分支缓存(BranchCache)上下文,配置局域网内容缓存加速
netsh bridge 切换到网桥上下文,管理 Windows 网络桥接
netsh delete 在项目列表上删除一个配置项目
netsh dhcpclient 切换到 DHCP 客户端上下文,管理本机 DHCP 客户端参数
netsh dnsclient 切换到 DNS 客户端上下文,管理 DNS 缓存、DNS 解析相关配置
netsh dump 导出当前上下文全部配置为可执行脚本
netsh exec 运行外部脚本文件,批量执行 netsh 命令
netsh firewall 旧版防火墙上下文(兼容旧系统,推荐使用 advfirewall)
netsh help 显示当前上下文命令帮助列表
netsh http 切换到 HTTP.sys 内核 HTTP 服务上下文,配置内核 HTTP 监听、SSL 绑定
netsh interface 切换到网络接口上下文,管理网卡 IP、网关、子网掩码、路由(高频使用)
netsh ipsec 切换到 IPSec 上下文,管理 IP 安全策略、VPN 安全隧道
netsh ipsecdsprotection 切换到 IPSec Ds 保护上下文,域隔离安全相关配置
netsh lan 切换到有线局域网上下文,管理有线网卡 802.1X 认证
netsh namespace 切换到命名空间上下文,管理 DNS 命名空间解析策略
netsh netio 切换到网络 IO 上下文,调整网络 IO 性能参数
netsh nlm 切换到网络位置感知(NLM)上下文,管理网络位置、网络类别(公用 / 专用)
netsh ras 切换到远程访问 RAS 上下文,管理 VPN、拨号远程访问
netsh rpc 切换到 RPC 网络策略上下文,RPC 网络侦听、端口配置
netsh set 更新、修改各类配置设置netsh show查看、展示各类配置与状态信息
netsh trace 切换到网络追踪上下文,一键开启网络抓包、诊断追踪
netsh wcn 切换到 Windows 网络配置上下文,WCN 简易网络配置
netsh wfp 切换到 Windows 筛选平台 WFP 上下文,底层网络数据包过滤框架
netsh winhttp 切换到 WinHTTP 上下文,配置系统全局 HTTP 代理
netsh winsock 切换到 Winsock 上下文,重置 Winsock 目录修复网络套接字异常
netsh wlan 切换到无线局域网上下文,管理 WiFi 网卡、SSID、无线配置文件
netsh advfirewall /?
netsh advfirewall ? 查看 netsh advfirewall 上下文下所有可用子命令列表,快速浏览该模块支持的全部操作,相当于命令行的简易索引。
netsh advfirewall consec 进入连接安全规则(Connection Security)上下文,用于管理 IPsec 连接安全策略,配置主机到主机、站点到站点的 IPsec 加密、身份验证规则。
netsh advfirewall dump 将当前高级防火墙完整配置输出为文本脚本,可直接保存,用于备份防火墙全套策略,输出内容为可执行 netsh 脚本。
netsh advfirewall export 将高级防火墙所有策略导出为.wfw 格式二进制文件,用于防火墙完整配置备份,可在同版本 Windows 系统中导入恢复。
netsh advfirewall firewall 进入防火墙规则管理上下文,用于新增、删除、修改、查询入站 / 出站端口、程序自定义防火墙访问规则。
netsh advfirewall help 显示 netsh advfirewall 模块的帮助说明文档,介绍模块用途、语法说明与使用示例。
netsh advfirewall import 导入.wfw 格式防火墙备份文件,恢复整套防火墙策略,覆盖当前本地防火墙配置。
netsh advfirewall mainmode 进入 IPsec 主模式管理上下文,配置 IPsec 协商主模式的加密算法、密钥交换、身份验证参数。
netsh advfirewall monitor 进入防火墙监控上下文,实时查看 IPsec 安全关联、活动连接、策略运行状态,用于 IPsec 隧道实时排错。
netsh advfirewall reset 将 Windows 高级防火墙重置为系统出厂默认配置,清空所有自定义规则、IPsec 策略,谨慎使用。
netsh advfirewall set 防火墙配置修改根入口,用于设置配置文件、全局参数,后面可接续 allprofiles /domainprofile 等子项进行参数修改。
netsh advfirewall show 防火墙查询根入口,用于读取防火墙各项配置,后面接续 allprofiles /global 等子项查看各类策略与状态。
以下子上下文可用:
netsh advfirewall consec 进入连接安全规则(Connection Security)上下文,用于管理 IPsec 连接安全策略,配置主机到主机、站点到站点 IPsec 策略,定义流量加密、身份验证、完整性校验规则,控制两台主机之间通信是否启用 IPsec 保护。
netsh advfirewall firewall 进入防火墙规则管理上下文,专门管理入站、出站防火墙 ACL 规则,可添加、删除、修改、查询基于程序、端口、协议、IP 地址的访问放行 / 阻止规则,是日常端口放行、程序防火墙策略配置的核心子命令。
netsh advfirewall mainmode 进入 IPsec主模式配置上下文,用于配置 IPsec 密钥交换主模式参数,包含密钥交换算法、加密套件、预共享密钥、身份验证方式,控制 IPsec 隧道协商前期的密钥协商行为。
netsh advfirewall monitor 进入防火墙监控上下文,用于实时查看 IPsec 安全关联 SA、活动 IPsec 协商会话、策略匹配状态,多用于 IPsec 隧道连通性故障排查,查看当前生效的 IPsec 连接。
要查看命令的帮助,请键入命令,然后键入一个空格,然后键入 ?。
netsh advfirewall set allprofiles 对域、专用、公用全部三个防火墙配置文件批量设置参数,可统一修改防火墙启用状态、入站默认行为、出站默认行为、日志、通知等选项,一次性作用于三套配置文件。
netsh advfirewall set currentprofile 修改当前主机正在生效的防火墙配置文件参数,由网络位置感知服务识别当前网络类型,仅对当前激活的 profile 生效,用于临时调整本机当前网络对应的防火墙策略。
netsh advfirewall set domainprofile 单独设置域网络配置文件参数,主机接入 AD 域环境时加载该配置;可修改域配置下防火墙开关、出入站默认策略、日志、弹窗通知等域环境专属防火墙选项。
netsh advfirewall set global 设置防火墙全局系统参数,不属于任意单一网络配置文件,全局生效;可配置 IPsec 策略、防火墙日志路径、远程管理、对等身份验证、安全关联等底层公共参数。
netsh advfirewall set privateprofile 单独设置专用(私人)网络配置文件参数,适用家庭、企业内部可信局域网;可修改该配置下防火墙启用状态、入站 / 出站默认动作、日志与通知弹窗等。
netsh advfirewall set publicprofile 单独设置公用网络配置文件参数,适用于公网、公共 WiFi 等不可信网络(默认策略最严格);修改该配置下防火墙开关、出入站默认策略、日志、通知等安全选项。
netsh advfirewall show allprofiles 一次性展示域、专用、公用三个防火墙配置文件的全部信息,包含各配置文件的防火墙启用状态、入站默认动作、出站默认动作、日志设置、单播响应、多播广播响应等完整参数。
netsh advfirewall show currentprofile 展示当前主机生效的防火墙配置文件信息,由网络位置感知服务判定当前网络类型,输出当前激活配置的防火墙开关、出入站默认策略等运行时参数。
netsh advfirewall show domainprofile 单独查看域网络配置文件,当主机接入 Active Directory 域环境时加载此配置,包含域配置文件的防火墙开关、入站 / 出站默认策略、日志、通知等全部相关设置。
netsh advfirewall show global 查询高级防火墙全局公用参数,不属于单个网络配置文件,包含 IPsec 默认设置、防火墙日志全局路径、远程管理设置、对等身份验证、安全关联等系统级全局选项。
netsh advfirewall show privateprofile 单独查看专用(私人)网络配置文件,用于家庭、企业内部可信局域网,输出该配置下防火墙启用状态、出入站默认策略、日志与弹窗通知等参数。
netsh advfirewall show publicprofile 单独查看公用网络配置文件,适用于互联网、公共 WiFi 等不可信外部网络,该配置默认安全策略最严格,输出防火墙开关、出入站策略、日志等完整配置。
netsh advfirewall show store 查看防火墙策略存储库信息,识别策略存放位置,分为本地注册表存储或者 Active Directory 域存储,判断防火墙策略读取来源,区分本地策略与域下发 GPO 策略。
netsh advfirewall
netsh advfirewall 是命令行前端工具,用来操作 Windows 高级防火墙(Windows Defender Firewall with Advanced Security,简称 WFAS),底层核心是 Windows Filtering Platform(WFP,Windows 筛选平台)。
注意:
advfirewall包含两大块:防火墙出入站规则 + IPsec 连接安全规则(IKE / 主模式),二者都基于 WFP。
一、整体架构解构
netsh.exe (advfirewall 上下文)
↓ [RPC / Win32 API]
WFAS 管理服务 → wfapi.dll
↓
WFP 用户态API (fwpuclnt.dll)
↓
WFP 内核驱动 → fwpkclnt.sys
↓
TCP/IP 协议栈 (tcpip.sys) / 网络栈
- netsh.exe:只是交互式命令外壳,
advfirewall是 netsh 的插件 DLL:advfirewall.dll- netsh 加载
advfirewall.dll,解析你输入的show / add / set / consec / mainmode子命令 - netsh本身不做包过滤、不做 IPsec 加密,仅做参数解析、调用 WFAS 管理 API
- netsh 加载
- WFAS(Windows Defender Firewall 高级安全):WFP 之上的策略管理层,把人类可读的防火墙 / IPsec 规则翻译成 WFP 过滤层策略
- WFP(Windows Filtering Platform):内核包过滤框架,真正执行数据包拦截、允许、丢弃、IPsec 加密解密
- IPsec/IKE 组件:属于 WFP 配套,IKE 协商由
ipsecdrv.sys+ikeext.dll实现,对应consec(连接安全)、mainmode(主模式 IKE)
二、关键依赖文件清单
| 文件 | 角色 |
|---|---|
| netsh.exe | Netsh 主程序,命令行宿主 |
| advfirewall.dll | netsh advfirewall 插件,解析 advfirewall 子命令 |
| wfapi.dll | WFAS 高级防火墙用户态 API 库,防火墙策略管理接口 |
| fwpuclnt.dll | WFP 用户态客户端 API,和内核 WFP 交互 |
| fwpkclnt.sys | WFP 内核核心驱动,包过滤引擎 |
| ipsecdrv.sys | IPsec 内核驱动,ESP/AH 加密、SA 安全关联管理 |
| ikeext.dll | IKE 协商扩展(IKEv1/IKEv2,主模式 / 快速模式) |
| tcpip.sys | TCP/IP 协议栈,WFP 挂载在协议栈各层 |
| mpssvc.dll | Windows Defender Firewall 服务(MpsSvc),服务宿主 svchost.exe |
服务:MpsSvc(Windows Defender Firewall) 绝大多数
netsh advfirewall的增删改策略,最终会提交给 MpsSvc 服务,由服务写入 WFP 策略存储。 停止 MpsSvc → 防火墙策略不再加载,但WFP 内核驱动仍然运行,已加载的过滤策略继续生效,只是无法修改策略。
三、调用链路(以 netsh advfirewall firewall add rule 举例)
- 用户执行命令
netsh advfirewall firewall add rule ... - netsh.exe 加载
advfirewall.dll,解析命令参数(端口、协议、动作、配置文件、程序路径) - advfirewall.dll 调用
wfapi.dll的 WFAS API,把规则提交给 MpsSvc(svchost) - MpsSvc 校验规则合法性,将 WFAS 规则编译转换为 WFP 过滤规则
- MpsSvc 通过
fwpuclnt.dll调用 WFP 用户态接口,把策略下发到内核fwpkclnt.sys fwpkclnt.sys在网络栈各个WFP 过滤层注册过滤器:- 入站:
FWPM_LAYER_INBOUND_TRANSPORT_V4 - 出站:
FWPM_LAYER_OUTBOUND_TRANSPORT_V4
- 入站:
- 数据包经过 tcpip.sys 时,触发 WFP 过滤器,执行允许 / 阻止动作。
IPsec 链路(
consec / mainmode)额外分支: 规则下发后,WFP 触发 IKE 协商 →ikeext.dll做 IKE 主模式 / 快速模式协商 → 协商成功后,内核ipsecdrv.sys创建 IPsec SA,对数据包 ESP/AH 加解密。
四、逻辑链路分层(WFP 过滤层,理解边界核心)
WFP 不是单一钩子,是分层钩子,netsh advfirewall 规则挂载在传输层:
- 应用层 socket(ws2_32.dll)
- TCP/IP 传输层(tcpip.sys) ← WFAS 防火墙规则在这里生效(端口 / 程序规则)
- 网络层 ← IPsec ESP/AH 加密在这里处理
- 链路层
区分两个完全独立规则体系(很多人混淆)
netsh advfirewall firewall:出入站包允许 / 阻止(普通防火墙规则,传输层)netsh advfirewall consec / mainmode:IPsec 连接安全规则(协商加密,对流量做加密,不是放行端口)
五、配套链(配套组件 / 存储 / 日志)
1. 策略持久化存储
防火墙策略保存在注册表: HKLM\SYSTEM\CurrentControlSet\Services\MpsSvc\Parameters\FirewallPolicy
netsh advfirewall export xxx.wfw:导出注册表内策略为 wfw 文件import:导入 wfw,覆盖注册表策略,MpsSvc 重载策略
2. 日志配套
- 防火墙日志:
%systemroot%\system32\logfiles\firewall\pfirewall.log - 配置:
netsh advfirewall set allprofiles logging - IPsec 事件:事件查看器 → 安全事件 / IKE 事件日志
3. 配套工具链
netsh advfirewall:命令行管理- WFAS MMC:
wf.msc(图形界面,底层调用同一套 WFAS API) wfpstate.exe:查看 WFP 内核过滤器、SA,底层调试 WFPsc query mpssvc:防火墙服务状态- PowerShell
New-NetFirewallRule:PowerShell cmdlet,同样调用 wfapi.dll,和 netsh advfirewall 同源
六、边界 & 限制(重要边界)
✅ netsh advfirewall 能干什么
- 管理 WFAS 策略(域 / 专用 / 公用三套配置文件)
- 添加 / 删除端口、程序、服务出入站规则
- 配置 IPsec 连接安全、IKE 主模式算法、认证方式(预共享密钥 / 证书 / Kerberos)
- 导出导入 wfw 策略、重置防火墙、查看 IPsec SA、监控 IPsec 协商状态
❌ 边界限制(不能做的,超出能力)
- 不能直接操作原始 WFP 底层过滤器:netsh advfirewall 只能操作WFAS 抽象规则;如果第三方软件直接调用 WFP 原生 API 添加过滤器,
netsh advfirewall show看不到这些底层过滤器,只能用wfpstate.exe查看。 - netsh advfirewall 不是内核组件:MpsSvc 停止后,已经加载的 WFP 过滤策略继续生效,无法临时关闭内核包过滤。
- IPsec 边界:
consec/mainmode只管理 IKE 协商策略;ESP/AH 内核加密由 ipsecdrv.sys 完成,advfirewall 不做加密运算。 - 不支持 L2TP/IPsec 内核之外的 VPN;只管理 Windows 内置 IPsec。
- WFP 是全局的:第三方安全软件(EDR、杀毒)也会挂载 WFP 过滤器;过滤器优先级由 WFP 权重决定,防火墙规则可能被第三方 WFP 过滤器覆盖。
- 规则只作用于TCP/UDP/ICMP等网络层 / 传输层流量;不能过滤应用层协议内容(如 HTTP 关键词,这是代理 / IPS 能力,不是 WFP)。
netsh advfirewall reset:只清空 WFAS 策略,不会删除第三方直接注入 WFP 的底层过滤器。
七、容易踩坑的依赖关系
- MpsSvc 服务依赖:依赖
BFE(Base Filtering Engine,基础筛选引擎,WFP 核心服务)BFE 服务(Base Filtering Engine)是 WFP 核心!BFE 无法启动,防火墙和 IPsec 全部失效。 依赖链:MpsSvc → BFE → WFP 内核驱动 fwpkclnt.sys
- IPsec 依赖:IPsec SA 创建依赖 BFE + MpsSvc + ipsecdrv.sys + ikeext.dll
- 配置文件隔离:域 / 专用 / 公用三个配置文件互相独立,网卡切换网络位置自动切换生效配置文件。
八、一句话总结
netsh advfirewall = 用户态命令行管理入口,封装 WFAS 高层 API;真正的包过滤、IPsec 加密是WFP 内核框架 (fwpkclnt.sys + ipsecdrv.sys);MpsSvc 服务负责把人类可读防火墙规则编译、下发到 WFP 内核。advfirewall 只管理 WFAS 体系下的规则,不直接操控原生 WFP 底层过滤器。
PS C:\WINDOWS\system32> netsh advfirewall
下列指令有效:
此上下文中的命令:
netsh advfirewall ? 显示 advfirewall 上下文下所有可用子命令帮助,等同于 help
netsh advfirewall consec 操作连接安全规则(IPsec 策略),配置 IPsec 加密、身份验证规则,管理机器间加密通信策略
netsh advfirewall dump 导出当前高级防火墙完整配置脚本,可保存用于备份、批量恢复防火墙策略
netsh advfirewall export 将防火墙完整策略导出为 `.wfw` 文件,适合跨机器迁移防火墙配置
netsh advfirewall firewall 操作出入站防火墙规则(最常用),添加 / 删除 / 修改端口、程序、协议放行 / 阻止规则
netsh advfirewall help 展示 advfirewall 模块全部帮助信息,列出所有子命令,和 `?` 作用一致
netsh advfirewall import 导入 `.wfw` 防火墙策略文件,覆盖当前防火墙配置,谨慎操作
netsh advfirewall mainmode IPsec 主模式策略配置,协商 IPsec 密钥交换、加密算法、身份验证方式
netsh advfirewall monitor 防火墙实时监控,查看活动连接安全规则、IPsec SA 安全关联、当前活动连接
netsh advfirewall reset 重置高级防火墙,删除所有自定义规则,恢复防火墙到系统默认状态;管理员权限,谨慎执行
netsh advfirewall set 设置防火墙全局参数:域 / 专用 / 公用配置文件开关、默认操作、日志路径、日志大小等
netsh advfirewall show 查询防火墙配置,查看各配置文件状态、规则、IPsec 策略、日志设置
下列的子上下文可用:
netsh advfirewall consec 操作连接安全规则(IPsec 策略),配置 IPsec 加密、身份验证规则,管理机器间加密通信策略
netsh advfirewall firewall 操作出入站防火墙规则(最常用),添加 / 删除 / 修改端口、程序、协议放行 / 阻止规则
netsh advfirewall mainmode IPsec 主模式策略配置,协商 IPsec 密钥交换、加密算法、身份验证方式
netsh advfirewall monitor 防火墙实时监控,查看活动连接安全规则、IPsec SA 安全关联、当前活动连接
若需要命令的更多帮助信息,请键入命令,接着是空格,后面跟 ?。
PS C:\WINDOWS\system32> netsh advfirewall consec help
下列指令有效:
此上下文中的命令:
netsh advfirewall consec ? 显示 consec(连接安全)上下文下所有可用子命令帮助,等价于 help
netsh advfirewall consec add 创建IPsec 连接安全规则,定义两端什么时候触发 IPsec 加密、认证方式、流量保护模式;用于协商 IKE SA,对流量实施 IPsec 保护,不是普通端口放行
netsh advfirewall consec delete 删除指定 IPsec 连接安全规则,移除对应的 IPsec 流量保护策略;匹配规则名称 / 配置文件 / 类型进行删除
netsh advfirewall consec dump 导出当前所有连接安全规则的脚本,可重定向保存,用于备份、批量重建 IPsec consec 规则
netsh advfirewall consec help 展示 consec 模块完整帮助文档,列出全部子命令,和 `?` 作用一致
netsh advfirewall consec set 修改已存在的 IPsec 连接安全规则,更新保护模式、端点、认证、配置文件等参数;不能新建规则
netsh advfirewall consec show 查询 IPsec 连接安全规则,支持按名称、配置文件、类型筛选,加 verbose 输出完整算法、端点、认证详情
若需要命令的更多帮助信息,请键入命令,接着是空格,后面跟 ?。
PS C:\WINDOWS\system32> netsh advfirewall dump help
用法: netsh advfirewall dump
netsh advfirewall dump 输出完整的 netsh advfirewall 脚本,包含防火墙出入站规则、consec 连接安全规则、mainmode 主模式 IPsec 策略、全局与各配置文件参数;输出是可直接执行的 netsh 命令文本,用于策略备份、批量还原,管理员权限执行。
说明:
创建一个包含当前配置的脚本文件。如果保存到文件,此脚本可以用来还原更改的配置设置。
PS C:\WINDOWS\system32> netsh advfirewall export help
用法: netsh advfirewall export <path\filename>
注释:
- 将当前策略导出到指定文件。
示例:
netsh advfirewall export "c:\advfirewallpolicy.pol"
PS C:\WINDOWS\system32> netsh advfirewall firewall help
下列指令有效:
此上下文中的命令:
netsh advfirewall firewall ? 显示 firewall 上下文下所有可用子命令帮助,等同于 help
netsh advfirewall firewall add 新建出入站防火墙规则,用于放行 / 阻止程序、端口、协议流量;支持指定方向、动作、远程 / 本地 IP、服务、配置文件等,是日常端口放行最常用命令
netsh advfirewall firewall delete 删除已存在的出入站防火墙规则,可按规则名称、配置文件筛选删除
netsh advfirewall firewall dump 仅导出出入站防火墙规则的 netsh 脚本文本(不含 IPsec consec/mainmode 策略),可重定向保存用于备份、批量重建普通防火墙规则
netsh advfirewall firewall help 展示 firewall 模块全部帮助信息,列出所有子命令,和 `?` 作用一致
netsh advfirewall firewall set 修改已存在的出入站防火墙规则,更新启用状态、动作、端口、IP、描述等参数,不可新建规则
netsh advfirewall firewall show 查询出入站防火墙规则,支持按名称、配置文件筛选,加 verbose 输出完整详情,查看端口 / 程序放行策略
若需要命令的更多帮助信息,请键入命令,接着是空格,后面跟 ?。
PS C:\WINDOWS\system32> netsh advfirewall import help
用法: netsh advfirewall import <path\filename>
netsh advfirewall import 导入`.wfw`防火墙策略文件,**覆盖本机全部 WFAS 防火墙 + IPsec 策略**;导入文件由`netsh advfirewall export`生成,管理员权限执行。
注释:
- 从指定文件导入策略。
示例:
netsh advfirewall import "c:\newpolicy.pol"
PS C:\WINDOWS\system32> netsh advfirewall mainmode help
下列指令有效:
此上下文中的命令:
netsh advfirewall mainmode ? 展示 mainmode 上下文下所有子命令帮助,等价于 help
netsh advfirewall mainmode add 新建 IPsec 主模式 (IKEv1 第一阶段) 规则,定义 IKE 密钥交换算法、密钥生存期、身份认证方式、协商端点;用于 IPsec 主模式 SA 协商,不能直接控制数据包放行
netsh advfirewall mainmode delete 删除指定 IPsec 主模式规则,按名称、配置文件筛选删除;删除后不会立刻断开已存在的 IPsec SA,等待 SA 生命周期到期
netsh advfirewall mainmode dump 导出全部主模式规则为 netsh 脚本文本,可保存用于备份、批量重建主模式 IKE 策略;仅包含 mainmode 规则,不含 consec、普通防火墙规则
netsh advfirewall mainmode help 展示 mainmode 模块完整帮助信息,列出全部子命令,和 `?` 功能一致
netsh advfirewall mainmode set 修改已存在的主模式规则,更新加密套件、密钥生存期、认证方式、启用状态;不能新建规则
netsh advfirewall mainmode show 查询 IPsec 主模式规则,支持按名称、配置文件、static/dynamic 类型筛选,增加 verbose 输出完整算法与端点详情
若需要命令的更多帮助信息,请键入命令,接着是空格,后面跟 ?。
PS C:\WINDOWS\system32> netsh advfirewall monitor help
下列指令有效:
此上下文中的命令:
netsh advfirewall monitor ? 显示 monitor 上下文下所有可用子命令帮助,等同于 help
netsh advfirewall monitor delete 删除活动的 IPsec 安全关联 (SA)、快速模式或主模式协商会话;用于强制断开已建立的 IPsec 隧道,触发重新 IKE 协商
netsh advfirewall monitor dump 导出当前防火墙 / IPsec 实时监控会话信息为 netsh 脚本文本,多用于留存当前 IPsec SA、活动连接快照
netsh advfirewall monitor help 展示 monitor 模块完整帮助信息,列出全部子命令,和 `?` 作用一致
netsh advfirewall monitor show 实时查看 IPsec 运行状态:活动安全关联 SA、主模式 / 快速模式协商信息、端点、加密算法;用来排查 IPsec 隧道建立、协商异常,管理员权限执行
若需要命令的更多帮助信息,请键入命令,接着是空格,后面跟 ?。
PS C:\WINDOWS\system32> netsh advfirewall mainmode set help
下列指令有效:
此上下文中的命令:
netsh advfirewall mainmode set rule 修改已存在的 IPsec 主模式规则;仅更新已有规则参数,不能创建新规则。依靠`new`关键字分割匹配条件与待修改属性,管理员权限执行。
PS C:\WINDOWS\system32> netsh advfirewall mainmode set rule help
用法:
netsh advfirewall mainmode set rule name=<String>
[profile=public|private|domain|any[,...]]
[type=dynamic|static (default=static)]
new
[name=<string>]
[mmsecmethods= dhgroup1|dhgroup2|dhgroup14|dhgroup24|ecdhp256|
ecdhp384:3des|des|aes128|aes192|aes256-md5|sha1|sha256|
sha384[,...]|default]
[mmforcedh=yes|no (default=no)]
[mmkeylifetime=<num>min,<num>sess]
[description=<string>]
[enable=yes|no]
[profile=public|private|domain|any[,...]]
[endpoint1=any|localsubnet|dns|dhcp|wins|defaultgateway
<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>]
[endpoint2=any|localsubnet|dns|dhcp|wins|defaultgateway|
<IPv4 address>|<IPv6 address>|<subnet>|<range>|<list>]
[auth1=computerkerb|computercert|computercertecdsap256|
computercertecdsap384|computerpsk|computerntlm|anonymous[,...]]
[auth1psk=<string>]
[auth1kerbproxyfqdn=<fully-qualified dns name>]
[auth1ca="<CA Name> [certmapping:yes|no] [excludecaname:yes|no]
[catype:root|intermediate (default=root)]
[certhash:<Hex hash string, with no spaces or leading 0x>]
[followrenewal:yes|no (default=no)] [certeku:<EKU, EKU, ...>]
[certname:<CertName>] [certnametype:<SubjectAltDNS|
SubjectAltEmail|SubjectCN|SubjectOU|SubjectO|SubjectDC>]
[certcriteriatype:<Selection|Validation|Both (default=both)>]
| ..."]
[auth1healthcert=yes|no (default=no)]
[auth1ecdsap256ca="<CA Name> [certmapping:yes|no]
[excludecaname:yes|no]
[catype:root|intermediate (default=root)]
[certhash:<Hex hash string, with no spaces or leading 0x>]
[followrenewal:yes|no (default=no)] [certeku:<EKU, EKU, ...>]
[certname:<CertName>] [certnametype:<SubjectAltDNS|
SubjectAltEmail|SubjectCN|SubjectOU|SubjectO|SubjectDC>]
[certcriteriatype:<Selection|Validation|Both (default=both)>]
| ..."]
[auth1ecdsap256healthcert=yes|no (default=no)]
[auth1ecdsap384ca="<CA Name> [certmapping:yes|no]
[excludecaname:yes|no]
[catype:root|intermediate (default=root)]
[certhash:<Hex hash string, with no spaces or leading 0x>]
[followrenewal:yes|no (default=no)] [certeku:<EKU, EKU, ...>]
[certname:<CertName>] [certnametype:<SubjectAltDNS|
SubjectAltEmail|SubjectCN|SubjectOU|SubjectO|SubjectDC>]
[certcriteriatype:<Selection|Validation|Both (default=both)>]
| ..."]
[auth1ecdsap384healthcert=yes|no (default=no)]
[profile= any|current|domain|private|public[,...]]
备注:
-为已标识的规则设置新的参数值。如果规则不存在,则该命令失败。若要创建规则,请使用添加命令。
-会更新规则中 new 关键字后的值。如果没有值,或缺少关键字 new,则不进行任何更改。
-如果多个规则与条件匹配,将更新所有匹配的规则。
-规则名称应该唯一且不能为 "all"。
-Auth1 可以是用逗号分隔的选项列表。无法为 auth1 同时指定Computerpsk 和 computerntlm 方法。
-不建议使用 DES、MD5 和 DHGroup1。提供这些加密算法只是为了向后兼容。
--最小主模式 keylifetime 为 mmkeylifetime=1min。最大主模式 mmkeylifetime= 2880min.会话的最小数量 = 0 个会话。最大数量 = 2,147,483,647 个会话。
-mmsecmethods 关键字默认值将策略设置为:dhgroup2-aes128-sha1,dhgroup2-3des-sha1
-Certhash 指定证书的指纹或哈希。
-Followrenewal 指定是否自动跟随证书中的可续订链接。仅适用于证书部分(需要 certhash)。
-Certeku 指定要在证书中匹配的用逗号分隔的 EKU OID 列表。
-Certname 指定要匹配证书名称的字符串(需要 certnametype)。
-Certnametype 指定要匹配的 certname 的证书字段(需要 certname)。
-Certcriteriatype 指定当选择本地证书、验证对等证书或两者都执行时是否对证书采取操作。
示例:
更改名为 test 的规则的 mmescmethods、description和 keylifetime
Netsh advfirewall mainmode set rule name="test"new description="Mainmode for RATH2"Mmsecmethods=dhgroup2:3des-sha256,ecdhp384:3des-sha384 auth1=computerntlm mmkeylifetime=2min profile=domain
PS C:\WINDOWS\system32> netsh advfirewall consec show rule help
用法:netsh advfirewall consec show rule name=<string>
[profile=public|private|domain|any[,...]]
[type=dynamic|static (default=static)]
[verbose]
注释:
- 显示按名称识别的所有规则实例,也可按配置文件和类型识别。
示例:
显示所有规则:
netsh advfirewall consec show rule name=all
显示所有动态规则:
netsh advfirewall consec show rule name=all type=dynamic
PS C:\WINDOWS\system32> netsh advfirewall reset help
用法: netsh advfirewall reset [export <path\filename>]
注释:
- 将高级安全 Windows Defender 防火墙策略还原为默认策略。也可以将当前活动策略导出到指定文件中。
- 在组策略对象中,该命令将所有设置返回到未配置状态并且删除所有连接安全规则和防火墙规则。
示例:
备份当前策略,并将其还原为全新策略:
netsh advfirewall reset export "c:\backuppolicy.wfw"
netsh advfirewall reset export "c:\backuppolicy.wfw"该命令不是单条合法命令,是两条独立操作,不能合并写;`reset` 和 `export` 是 advfirewall 下两个独立子命令。
正确用法是先导出备份,再重置防火墙策略:
1. `netsh advfirewall export "c:\backuppolicy.wfw"`:导出当前全部防火墙 + IPsec 策略到 wfw 备份文件
2. `netsh advfirewall reset`:重置高级防火墙,删除所有自定义规则,恢复系统默认防火墙策略
PS C:\WINDOWS\system32> netsh advfirewall set help
下列指令有效:
此上下文中的命令:
netsh advfirewall set allprofiles 一次性对域、专用、公用三套配置文件批量设置相同参数,例如防火墙开关、默认入站 / 出站行为、日志配置;修改同时作用于全部三个配置文件
netsh advfirewall set currentprofile 仅修改当前网卡正在生效的防火墙配置文件(域 / 专用 / 公用),不改动另外两套配置,网络位置切换后该策略不再生效
netsh advfirewall set domainprofile 单独配置域配置文件,网卡接入域网络时启用;域环境专用策略,常用于域内 IPsec、防火墙规则默认动作
netsh advfirewall set global 设置防火墙全局参数(不属于单个配置文件),如 IPsec SA 生存期、IPsec 默认密钥交换、CRL 证书吊销检查、防火墙远程管理等全局选项
netsh advfirewall set privateprofile 单独配置专用(私有)配置文件,内网 / 家庭信任网络,一般默认放行更多内部流量
netsh advfirewall set publicprofile 单独配置公用配置文件,公共不可信网络;默认策略最严格,建议默认阻止入站连接
PS C:\WINDOWS\system32> netsh advfirewall show help
下列指令有效:
此上下文中的命令:
netsh advfirewall show allprofiles 一次性输出域、专用、公用三套防火墙配置文件完整状态:防火墙开关、默认出入站动作、日志设置、IPsec 参数等
netsh advfirewall show currentprofile 查看当前网卡正在使用的防火墙配置文件(域 / 专用 / 公用),以及该配置文件的策略状态,快速确认当前生效策略
netsh advfirewall show domainprofile 单独查看域配置文件策略,域环境网卡接入域网络时自动启用这套策略
netsh advfirewall show global 查看防火墙全局参数,不属于单个配置文件,如 IPsec 默认值、安全关联、全局日志、版本信息
netsh advfirewall show privateprofile 单独查看专用(私有)配置文件策略,家庭 / 内网信任网络使用此配置
netsh advfirewall show publicprofile 单独查看公用配置文件策略,公共 Wi-Fi、不受信任网络,默认策略最严格
netsh advfirewall show store查看防火墙策略存储位置,区分本地存储 / 组策略存储;判断当前策略是本地配置还是由域 GPO 下发(GPO 策略优先级高于本地)
PS C:\WINDOWS\system32>
PS C:\WINDOWS\system32> netsh wfp help
下列指令有效:
此上下文中的命令:
netsh wfp ? 显示 wfp 上下文内所有可用子命令的帮助列表,等价于 netsh wfp help
netsh wfp capture WFP 流量捕获,可启动 / 停止 WFP 会话捕获,抓取内核 WFP 过滤事件、数据包信息;用于调试 WFP 过滤器、查看包被哪条 WFP 规则丢弃 / 允许,管理员权限执行
netsh wfp dump 导出当前 WFP 全部策略配置脚本,可重定向输出保存,用于备份 WFP 过滤器、提供程序、层配置
netsh wfp help 展示 wfp 模块完整帮助信息,列出全部子命令,作用同 `?`
netsh wfp set 设置 WFP 相关参数,例如配置捕获选项、修改 WFP 全局参数、设置会话相关配置
netsh wfp show 查询 WFP 状态与配置;可查看 WFP 过滤层、过滤器、提供程序、会话、捕获状态等底层信息,可排查底层 WFP 规则(包含 advfirewall 看不到的第三方 WFP 过滤器)
若需要命令的更多帮助信息,请键入命令,接着是空格,后面跟 ?。
PS C:\WINDOWS\system32> netsh wfp capture help
下列指令有效:
此上下文中的命令:
netsh wfp capture start 启动 WFP 捕获会话,记录 WFP 内核过滤事件(数据包、过滤器匹配、允许 / 丢弃动作);输出为 ETL 日志文件;管理员权限执行,可附加 file = 路径自定义保存文件
netsh wfp capture status 查看当前 WFP 捕获会话状态,判断捕获是否正在运行、捕获文件路径、已收集数据大小
netsh wfp capture stop 停止正在进行的 WFP 捕获会话,关闭 ETL 日志写入;捕获停止后才能解析 ETL 文件
PS C:\WINDOWS\system32> netsh wfp dump help
用法: netsh wfp dump
说明:
创建一个包含当前配置的脚本文件。如果保存到文件,此脚本可以用来还原更改的配置设置。
PS C:\WINDOWS\system32> netsh wfp set help
下列指令有效:
此上下文中的命令:
netsh wfp set options 设置 WFP 全局选项,用于启用 / 禁用 WFP 的调试、日志、内置功能开关;管理员权限执行,修改即时生效,部分选项重启后保留。
PS C:\WINDOWS\system32> netsh wfp show help
下列指令有效:
此上下文中的命令:
netsh wfp show appid 查看 WFP 中应用 ID 映射关系;WFP 使用 AppID 标识进程,用于基于进程的过滤规则,可排查进程匹配类过滤器
netsh wfp show boottimepolicy 查看开机阶段加载的 WFP 策略(Boot-time Policy),系统启动早期就生效的底层过滤器,排查开机即生效的过滤规则
netsh wfp show filters 列出所有 WFP 底层过滤器(重点高频命令),包含 WFAS 防火墙、IPsec、第三方 EDR / 安全软件注入的全部 WFP 过滤器;可看到过滤器 GUID、层、动作、权重、条件
netsh wfp show ikeevents 查看 IKE 协商事件(IPsec 主 / 快速模式协商日志),排查 IPsec IKE 协商失败、SA 建立异常
netsh wfp show netevents 查看 WFP 网络事件,包含数据包命中过滤器、丢弃 / 允许事件,适合快速定位丢包原因
netsh wfp show options 查看 WFP 全局选项状态,对应`netsh wfp set options`,查看 trace、audit、dynamicdiscovery 开关
netsh wfp show security 查看 WFP 安全相关策略与安全描述符,管控谁有权限修改 WFP 策略,用于权限审计
netsh wfp show state 查看 WFP 当前运行状态,包含活动层、提供程序、会话、已加载策略概要,WFP 整体健康检查
netsh wfp show sysports 查看 WFP 管理的系统保留端口集合,系统内核预留端口,用于排查端口占用冲突

Windows 高级防火墙「添加 / 删除列」对话框 拆解|底层原理 / 依赖文件 / 依赖关系 / 配套链 / 逻辑链路 / 边界
界面来源:
wf.msc(Windows Defender 高级安全防火墙管理单元),此弹窗用于自定义防火墙规则列表的显示字段,用来展示入站 / 出站防火墙规则的元数据。
一、底层原理
- 组件身份:属于 MMC(Microsoft Management Console)管理单元的视图列自定义功能,不是防火墙内核驱动组件,只是 GUI 列表视图的 UI 配置层。
- MMC 管理单元
wf.msc底层读取Windows Defender 防火墙策略存储,把防火墙规则的所有可用属性封装成列定义。 - 「可用列」= 规则对象全部属性集合;「显示列」= 当前视图加载并渲染到列表的属性子集。
- MMC 管理单元
- 持久化逻辑
- 用户勾选 / 调整列顺序 → MMC 将视图布局配置(哪些列显示、顺序、列宽)保存到用户注册表配置(仅当前登录用户,不是防火墙策略本身)。
- ⚠️重点区分:列显示设置只是 UI 视图偏好,不修改防火墙策略、不修改过滤规则本身;仅仅控制界面展示哪些字段,不会改变防火墙内核过滤行为。
- 数据来源:所有列(本地端口、远程端口、程序、协议等)的原始数据,来自
mpssvc防火墙服务维护的策略对象。UI 只是读取展示,列自定义不改动策略。 - UI 交互逻辑:
- 添加 (D)->:把左侧可用属性,加入右侧视图渲染列表
- <- 删除 (R):从视图移除字段,属性本身还保存在防火墙规则里,只是界面不显示
- 上移 / 下移:调整列表显示的字段先后顺序
- 还原默认值 (S):重置视图列配置为 wf.msc 出厂默认布局(注册表视图配置重置,策略不变)
二、依赖文件
| 文件 | 作用 |
|---|---|
wf.msc |
Windows 高级防火墙 MMC 管理单元主文件,XML 描述 MMC 快照 |
hnetcfg.dll |
网络防火墙配置 COM 组件,读取 / 枚举防火墙规则属性(核心) |
mpoapi.dll |
Windows 防火墙策略 API,读取防火墙规则对象的所有属性字段(本地端口、远程地址、协议等) |
mmc.exe |
MMC 控制台主进程,承载这个弹窗对话框、列表视图、列管理 UI |
mmcndmgr.dll |
MMC 通用管理 UI,提供「添加 / 删除列」通用对话框组件 |
kernel32.dll / user32.dll / comctl32.dll |
Windows 通用控件库,ListView 列表控件、窗口、按钮绘制,列表列管理原生控件 |
mpssvc.dll |
Windows Defender 防火墙服务(MpsSvc),内核防火墙策略的数据源,所有规则属性的最终来源 |
advapi32.dll |
读写当前用户注册表,保存视图列布局偏好 |
wfas.msc配套 DLL |
防火墙 MMC 扩展,提供规则属性映射为列名称的元数据 |
三、依赖关系
- 进程依赖:弹窗运行在
mmc.exe进程内,wf.msc 作为 MMC 的管理单元插件加载。关闭 mmc.exe,该 UI 销毁。 - 服务依赖(MpsSvc) 必须保证
Windows Defender Firewall服务(MpsSvc)正在运行,否则 hnetcfg.dll 无法读取防火墙规则,列无法加载出数据。MpsSvc 是内核过滤策略的数据源。 - 注册表存储依赖 列布局(显示哪些列、顺序、宽度)存储在当前用户注册表路径:
HKCU\Software\Microsoft\MMC\SnapIns\...对应 wf.msc 的视图配置仅当前登录用户生效;切换其他 Windows 用户,列布局会重置。
- COM 组件依赖
hnetcfg.dll提供 COM 对象INetFwPolicy2,枚举所有防火墙规则,并暴露规则属性(本地端口、远程地址、程序路径等),MMC 管理单元把这些属性映射为 UI 里的 “列”。 - 权限依赖 查看防火墙规则列表需要管理员权限;普通用户打开 wf.msc,只能查看部分规则,部分属性列会空白。修改防火墙策略需要管理员提升权限;仅仅调整显示列不需要修改防火墙策略权限。
四、配套链(配套组件、协议、内核驱动)
用户态配套组件
mmc.exe:MMC 控制台框架,承载所有管理单元 UIMpsSvc(Windows Defender Firewall 服务):用户态服务,管理防火墙策略库,和内核驱动通信hnetcfg.dll:COM API 层,上层应用读写防火墙策略的标准接口
内核配套组件(不参与 UI,但为列数据提供底层规则)
wfwfp.sysWindows 过滤平台 WFP 内核驱动(Windows Filtering Platform),Windows 防火墙底层内核引擎;所有入站 / 出站包过滤逻辑在这里执行。
UI 看到的 “本地端口、远程地址、协议” 这些列,本质就是 WFP 过滤层的筛选器描述符。
配套工具
netsh advfirewall:命令行查看 / 修改防火墙规则,和 wf.msc 读取同一套 MpsSvc 策略Get-NetFirewallRulePowerShell 命令,读取防火墙规则属性,和 UI 列的数据源完全一致
五、逻辑链路(完整时序:打开添加 / 删除列弹窗)
- 管理员执行
wf.msc→mmc.exe启动,加载防火墙管理单元 DLL。 - MMC 单元调用
hnetcfg.dll的 INetFwPolicy2 COM 接口,连接 MpsSvc 防火墙服务。 - MpsSvc 读取 WFP 策略库,枚举全部防火墙规则,提取规则所有可用属性列表(本地端口、分段、服务、远程端口等,也就是左侧【可用列】)。
- 用户右键防火墙规则列表 → 选择【添加 / 删除列】,MMC 加载内置通用列管理对话框(图中弹窗)。
- 读取当前用户注册表中保存的视图配置,自动填充右侧【显示列】(当前界面渲染的字段)。
- 用户执行添加 / 删除 / 上移下移操作 → 修改内存内视图定义;点击【确定】:
- 将新的列布局写入当前用户注册表(仅保存 UI 视图偏好,完全不修改 MpsSvc 防火墙策略,不改动 WFP 内核过滤规则)
- 主列表视图刷新,按照新的列集合、顺序渲染防火墙规则列表。
- 【还原默认值】:删除注册表中保存的 wf.msc 视图配置,恢复 MMC 管理单元出厂默认列布局。
关键区分:
- 防火墙策略:保存在系统配置,影响内核数据包过滤,对所有用户生效
- MMC视图布局:保存在 HKCU 当前用户注册表,仅控制界面显示,不影响网络流量
六、边界约束(边界、限制、坑点)
1. 功能边界
- ❗调整列 ≠ 修改防火墙规则:添加 “本地端口” 列只是在界面展示端口信息,不能通过这个弹窗修改端口 / 允许 / 阻止策略;只能修改视图。
- 可用列是规则对象全部属性,有些列(授权的计算机、期望本地主体)仅高级 IPsec / 安全规则才会填充,普通端口防火墙规则这些字段是空。
2. 持久化边界
- 列布局是用户级配置(HKCU),不是计算机级策略。换 Windows 用户登录,布局丢失,需要重新配置。
- 重装系统 / 删除 MMC 注册表项,视图布局全部重置,防火墙策略本身不受影响。
3. 数据读取边界
- 如果 MpsSvc 防火墙服务停止,wf.msc 无法读取规则属性,列表为空,列无法加载。
- 部分列(PolicyAppId、应用程序包)仅适用于 UWP / 微软商店应用的防火墙规则,传统桌面程序规则此字段为空。
4. 安全边界
- 修改列视图不需要管理员权限,但查看防火墙完整规则属性,需要管理员权限;低权限用户打开 wf.msc,部分属性列会空白隐藏。
- 此 UI 仅为管理视图,无法绕过 WFP 内核防火墙过滤;UI 只是查看器,不能修改内核过滤规则。修改实际防火墙放行 / 阻止规则,需要管理员权限。
5. 常见误区边界
❌误区:添加 “本地端口” 列 = 启用端口过滤 ✅真相:只是界面多一列用来查看规则里已经配置的端口,不会新增、修改防火墙放行策略。
❌误区:还原默认值 = 重置防火墙规则 ✅真相:【还原默认值】只重置 MMC 列表 UI 列布局,不会重置 Windows 防火墙策略;防火墙放行 / 阻止规则保持不变。
❌误区:列配置对所有用户生效 ✅真相:视图配置保存在当前登录用户的注册表,别的用户打开 wf.msc 还是默认布局。

Windows 高级防火墙「新建连接安全规则向导」拆解|底层原理 / 依赖文件 / 依赖关系 / 配套链 / 逻辑链路 / 边界
界面来源:
wf.msc(Windows Defender 高级安全防火墙),连接安全规则 = IPsec 策略配置向导,区别于普通入站 / 出站防火墙过滤规则。 核心一句话:普通防火墙规则决定是否允许流量通过;连接安全规则(IPsec)决定流量是否加密、两端计算机是否做身份验证。
一、底层原理
- 本质:这个向导是IPsec 策略配置 GUI,底层基于 Windows Filtering Platform (WFP) + IPsec 内核驱动,用来定义两台主机之间 IP 层的身份验证、加密、密钥协商策略。
页面底部提示原文:连接安全规则只指定身份验证发生的时间和方式,但这些规则不允许连接。若要允许连接,请创建入站或出站规则。 翻译:IPsec 连接安全规则不做包放行 / 阻断;放行与否,仍然依靠普通入站 / 出站防火墙规则。
- 5 种规则类型底层定义
类型 底层 IPsec 逻辑 隔离 (I) 默认强制身份验证;域 / 健康状态判定,不符合身份则 IPsec 协商失败,无法建立加密会话(典型:域隔离、服务器隔离) 免除身份验证 (A) 豁免列表,指定的对端主机跳过 IPsec 身份验证,不触发 IKE 协商 服务器到服务器 (S) 点对点 IPsec,两台 / 两组服务器之间的流量必须进行 IPsec 验证加密(服务器间加密隧道,非远程用户 VPN) 隧道 (T) IPsec 隧道模式(Tunnel Mode),封装整个 IP 数据包,常用于站点到站点 VPN(和 IKEv2 VPN 共用 IPsec 栈) 自定义 (C) 手动自由组合 IKE 协商、身份验证、流量端点、模式(传输 / 隧道) - 协商流程:IKE(Internet Key Exchange)协议协商密钥 → 建立 SA 安全关联 → ESP/AH 封装数据包。
- 传输模式:仅 IP 载荷加密(主机到主机);隧道模式:整包封装,新增外层 IP 头(站点 VPN)。
二、依赖文件
| 文件 | 功能 |
|---|---|
wf.msc |
MMC 管理单元快照,加载防火墙 + IPsec 管理插件 |
mmc.exe |
MMC 控制台主进程,承载向导对话框 UI |
hnetcfg.dll |
COM 组件 INetFwPolicy2,读写防火墙与 IPsec 策略 |
ipsecsrv.dll |
IPsec 策略管理 COM 接口,向导配置写入 IPsec 策略存储 |
mpoapi.dll |
防火墙策略 API,统一管理 WFP 筛选器与 IPsec 策略 |
ipsecdll.dll |
用户态 IPsec 辅助库,IKE 策略解析 |
mpssvc.dll |
MpsSvc Windows Defender 防火墙服务,接收策略并下发到内核 WFP |
tcpip.sys |
TCP/IP 协议栈内核驱动 |
wfp.sys / wfwfp.sys |
Windows 过滤平台内核驱动,WFP 筛选引擎 |
ipsec.sys |
IPsec 内核驱动,ESP/AH 数据包封装、校验、加密解密、SA 管理(核心内核组件) |
ikeext.dll |
IKE 密钥交换扩展,IKEv1/IKEv2 协商逻辑 |
comctl32.dll / user32.dll |
向导窗口、单选框、页面导航 UI 控件 |
三、依赖关系
- 进程依赖 向导运行在
mmc.exe进程,wf.msc 作为 MMC Snap-in 插件加载。关闭 mmc.exe,向导直接销毁。 - 服务依赖
MpsSvc(Windows Defender Firewall)必须运行:接收向导配置,将 IPsec 策略下发内核 WFP/ipsec.sys。IKEEXT(IKE 和 IPsec 密钥模块)服务:负责 IKE 协商、SA 管理;IKEEXT 停止,IPsec 完全失效。
- 权限依赖 必须管理员权限。IPsec 策略属于计算机级安全策略,普通用户无法创建 / 修改连接安全规则。
- 存储依赖 策略保存到计算机本地策略库(不是 HKCU 用户注册表),对本机所有用户生效;域环境可通过组策略推送 IPsec 策略,优先级高于本地策略。
- 网络协议依赖 IPsec 依赖 UDP 500(IKE)、UDP4500(NAT-T),ESP 协议号 50,AH 协议号 51;如果防火墙阻断这些协议 / 端口,IPsec 协商失败。
四、配套链(配套组件、协议、工具)
内核配套组件
ipsec.sys:内核 IPsec 引擎,ESP/AH 加解密、完整性校验、安全关联 SAwfwfp.sys:WFP 平台,IPsec 规则作为 WFP 的层筛选器,拦截匹配流量触发 IKE 协商
用户态配套服务
- MpsSvc:防火墙策略管理
- IKEEXT:IKE 密钥交换、SA 生命周期管理、NAT-T 处理
协议配套
- IKEv1 / IKEv2:密钥协商协议
- ESP(封装安全载荷):加密 + 完整性校验(主流)
- AH(认证头):仅完整性,无加密,现已极少使用
- NAT-T:NAT 穿越,UDP4500 封装 IPsec 流量
配套管理工具
netsh advfirewall consec命令行:管理连接安全规则(和 wf.msc 向导操作同一套 IPsec 策略)- PowerShell
New-NetIPsecRule:IPsec 规则创建 wf.msc普通入站 / 出站规则:放行流量的基础,IPsec 仅负责验证加密
五、逻辑链路(完整时序:新建连接安全规则向导)
- 管理员打开
wf.msc,定位【连接安全规则】→【新建规则】,启动向导。 - 第一步【规则类型】页面(截图页面),选择隔离 / 免除 / 服务器到服务器 / 隧道 / 自定义。
- 依次向后填写:要求(身份验证请求时机)→身份验证方法(证书 / 预共享密钥 / NTLM/Kerberos)→配置文件(域 / 专用 / 公用)→名称。
- 点击【完成】:向导调用
ipsecsrv.dll/hnetcfg.dllCOM 接口,写入本机计算机级 IPsec 策略。 - MpsSvc 服务检测策略变更,将 IPsec 策略编译为 WFP 筛选器,下发到内核
wfwfp.sys+ipsec.sys。 - 当网络数据包匹配策略定义的流量端点:
- 触发 IKEEXT 服务,发起 IKE 密钥协商;
- 协商成功,内核 ipsec.sys 创建 SA 安全关联;后续流量走 ESP 加密封装;
- 协商失败,则连接建立失败(前提:入站 / 出站防火墙已经允许该 IP 流量)。
核心时序区分:
- 普通防火墙规则:先判断【是否允许数据包进入】
- 连接安全 (IPsec) 规则:当数据包允许通过后,判断是否必须 IPsec 身份验证与加密
六、边界约束(边界、限制、坑点)
1. 功能边界(最容易踩坑)
- ✅IPsec 连接安全规则:控制身份验证、加密、密钥协商
- ❌不能放行 / 阻断网络流量。即使 IPsec 策略配置正确,如果没有对应的入站 / 出站防火墙允许规则,流量依然会被丢弃(页面提示重点)。
- 隔离模式:仅身份验证,不是网络访问隔离防火墙阻断;验证失败则 IPsec 协商失败,流量无法加密传输,但底层 IP 连通性本身是否允许,仍然由普通防火墙规则控制。
2. 模式边界
- 服务器到服务器:传输模式 IPsec,主机到主机,不修改 IP 头;
- 隧道模式:隧道模式 IPsec,站点到站点 VPN,封装整个 IP 包;≠Windows 原生 IKEv2 远程访问 VPN。
3. 协商边界
- IKE 协商流量(UDP500/4500)本身不受该 IPsec 规则加密保护,需要普通防火墙放行 UDP500/4500。
- NAT 环境下依赖 NAT-T(UDP4500),NAT 设备会影响 IPsec SA 协商。
4. 策略优先级边界
- 域组策略推送的 IPsec 连接安全规则 > 本地 wf.msc 创建的本地规则。
- 多条 IPsec 规则按流量匹配特异性优先级,更精确的 IP 网段规则优先匹配。
5. 安全边界
- 身份验证方法强度:预共享密钥安全性弱;企业域环境推荐 Kerberos、计算机证书认证。
- IPsec 只保护IP 层数据包,不会保护应用层内容;加密在网络层,应用本身无需改动。
6. 常见误区边界
❌误区:新建连接安全规则 = 开放端口允许通信 ✅真相:连接安全规则只要求加密验证;端口放行必须单独建立入站 / 出站防火墙规则。
❌误区:隔离规则会直接阻断 IP 数据包 ✅真相:隔离规则只要求必须 IPsec 身份验证;协商失败,加密会话无法建立;底层 IP 包是否允许通行,由普通防火墙规则控制。
❌误区:隧道模式 = 远程用户 VPN ✅真相:向导里的隧道类型是站点到站点 IPsec 隧道,不是用户远程接入 VPN。

Windows 高级防火墙「新建出站规则向导」拆解|底层原理 / 依赖文件 / 依赖关系 / 配套链 / 逻辑链路 / 边界
界面来源:
wf.mscWindows Defender 高级安全防火墙,出站规则:控制本机程序向外发起的网络连接(本机→外部),属于 WFP 数据包过滤规则,和上一张截图的 IPsec【连接安全规则】是两套独立机制。
一、底层原理
- 核心底层:基于 Windows Filtering Platform(WFP,Windows 过滤平台)内核框架。出站规则在内核层对本机发起外发的数据包进行匹配,执行允许 / 阻止 / 仅安全连接操作。
区分:出站 = 本机进程作为连接发起方向外发包;入站 = 外部主机主动连入本机。
- 4 种规则类型底层逻辑
选项 底层匹配逻辑 程序 (P) 按进程完整 EXE 路径匹配流量。只要该程序进程发出网络包,命中这条规则;不绑定固定端口,进程换端口也会匹配。 端口 (O) 按TCP/UDP 本地 / 远程端口匹配流量,不绑定程序;任何进程使用该端口发包都会命中。 预定义 (E) Windows 内置预制规则集合(如文件共享、播放到设备、远程桌面),一次性加载配套端口、程序、服务组合,封装好的 WFP 筛选器。 自定义 (C) 全维度自由匹配:可同时组合程序、端口、协议、IP 地址、服务、接口类型等多条件。 - 匹配逻辑:WFP 栈在数据包离开本机网卡前,遍历所有出站筛选器;最精确匹配规则优先,命中即执行动作,不再继续匹配后续规则。
默认行为:Windows 防火墙默认阻止未被明确允许的出站流量(部分版本默认允许,取决于系统 / 组策略基线)。
二、依赖文件
| 文件 | 功能 |
|---|---|
wf.msc |
MMC 管理单元快照,防火墙管理插件 |
mmc.exe |
MMC 控制台主进程,承载向导窗口 UI |
hnetcfg.dll |
COM 组件INetFwPolicy2,读写防火墙策略(核心) |
mpoapi.dll |
防火墙策略 API,用于增删改 WFP 防火墙筛选器 |
mpssvc.dll |
MpsSvc(Windows Defender Firewall 服务),接收 GUI 配置,下发策略到内核 WFP |
wfwfp.sys |
WFP 内核过滤驱动,数据包内核拦截、规则匹配、放行 / 丢弃决策(核心内核组件) |
tcpip.sys |
Windows TCP/IP 内核协议栈,数据包路由、封装 |
comctl32.dll / user32.dll |
向导窗口、单选框、页面导航 UI 控件 |
fwpolicy.dll |
防火墙策略解析、预定义规则加载模块(预定义选项依赖此文件) |
三、依赖关系
- 进程依赖 向导运行在
mmc.exe进程内,wf.msc 作为 MMC Snap-in 插件加载,关闭 mmc.exe,向导销毁。 - 服务依赖
MpsSvc防火墙服务必须处于运行状态;服务停止时,无法新增 / 修改规则,内核 WFP 筛选器失效。 - 权限依赖 必须管理员权限。出站防火墙规则属于计算机级策略,普通用户无法创建、修改;仅能查看。
- 存储依赖 策略保存在计算机本地策略库(不是 HKCU 用户注册表),本机所有用户生效;域环境中,组策略下发的防火墙规则优先级 > 本地 wf.msc 创建规则。
- COM 依赖
hnetcfg.dll提供 COM 接口,向导通过这个接口把页面配置,转换成 WFP 筛选器策略,提交给 MpsSvc。
四、配套链(配套组件、协议、工具)
内核组件
wfwfp.sysWFP 平台:在内核网络栈的多个层插入筛选钩子,捕获出站 IP 数据包。tcpip.sysTCP/IP 协议栈:提供 IP、TCP、UDP 数据包。
用户态服务
- MpsSvc:防火墙策略管理,负责把 GUI 配置下发内核、规则生命周期管理。
配套管理工具
netsh advfirewall firewall:命令行创建 / 管理入站、出站规则,和 wf.msc 操作同一套策略。- PowerShell
New-NetFirewallRule:脚本批量创建出站规则,自动化流水线。 - 连接安全规则(IPsec):独立组件。出站规则决定流量是否放行;IPsec 规则决定放行后是否加密验证,二者配合使用。
五、逻辑链路(完整时序:新建出站规则向导)
- 管理员打开
wf.msc,选择【出站规则】→【新建规则】,启动向导,进入截图【规则类型】页面。 - 选择规则类型(程序 / 端口 / 预定义 / 自定义),点下一步,依次填写后续页面:
- 程序页:填写 EXE 路径;端口页:填写 TCP/UDP 端口;
- 操作:允许连接 / 阻止连接 / 仅允许安全连接;
- 配置文件:域 / 专用 / 公用(规则在哪种网络配置文件下生效);
- 名称、描述。
- 点击【完成】:向导调用
hnetcfg.dllCOM 接口,提交新规则配置。 MpsSvc接收配置,编译转换为 WFP 内核筛选器,注入wfwfp.sys。- 当本机程序向外发包:
- 数据包经过 tcpip.sys 协议栈,到达 WFP 过滤层;
- WFP 内核匹配所有出站筛选器;命中规则,执行允许 / 丢弃;
- 若配置了「仅允许安全连接」,会联动 IPsec 连接安全规则,要求 IPsec 身份验证加密。
六、边界约束(边界、限制、坑点)
1. 功能边界
- 出站规则匹配源为本机的外发数据包,不会处理外部主动进入本机的流量(入站规则负责)。
- 【程序规则】是按进程 EXE 路径匹配:程序升级、EXE 更换路径 / 重命名,原有规则失效。
- 【端口规则】按端口匹配:只要进程使用该端口外发,就命中规则,不区分是什么程序。
- 规则仅对 IP 层数据包过滤,不能对应用层协议做深度解析(深度包检测需要 WFP 流层或者 EDR 组件)。
2. 匹配优先级边界
- 规则特异性越高优先级越高:精确 IP + 程序 + 端口 > 程序规则 > 端口规则 > 默认策略。
- 多条规则可同时存在,数据包命中第一条匹配规则即停止后续判断。
3. 配置文件边界(域 / 专用 / 公用)
规则仅在勾选的网络配置文件下生效。例如仅勾选【专用】,公用网络下该出站规则直接不生效。
4. 和 IPsec 连接安全规则的边界(重点区分,承接上一张截图)
- 出站规则:决定数据包能不能通过(允许 / 丢弃)
- 连接安全 IPsec 规则:流量放行之后,是否强制 IPsec 身份验证和加密
「仅允许安全连接」是二者联动:允许流量的前提是 IPsec 协商成功。
5. 安全边界
- 恶意程序替换 EXE 路径,可绕过基于【程序路径】的防火墙出站规则。
- 预定义规则是微软预设模板,会一次性添加多条配套筛选器,需要审核里面开放的端口范围。
6. 常见误区边界
❌误区:出站规则控制外部主机访问本机的连接 ✅真相:出站规则是本机向外发起连接;外部访问本机,由【入站规则】控制。
❌误区:程序防火墙规则,只要程序同名就生效 ✅真相:匹配完整文件路径,移动 exe 到别的目录,规则失效。
❌误区:新建出站规则 = 自动启用 IPsec 加密 ✅真相:默认不加密;加密需要额外配置【连接安全规则】,或选择操作里的【仅允许安全连接】。


Windows 高级防火墙「新建连接安全规则向导 - 隧道类型页」拆解|底层原理 / 依赖文件 / 依赖关系 / 配套链 / 逻辑链路 / 边界
界面来源:
wf.msc,IPsec 隧道模式配置页面(连接安全规则→隧道类型),用于站点到站点 (S2S) IPsec 隧道,不是 Windows 远程访问 IKEv2 用户 VPN。 IPsec 隧道模式:将整个原始 IP 数据包作为载荷,新增外层 IP 头,加密封装后传输;和传输模式(仅加密上层载荷,保留原 IP 头)有本质区别。
一、底层原理
- 核心底层:基于 WFP +
ipsec.sys内核 IPsec 隧道引擎,定义 IPsec 隧道的两个隧道终结点(外层 IP),以及需要被隧道封装保护的内网流量(内层 IP)。 - 3 种隧道类型底层定义
隧道类型 底层 IPsec 隧道逻辑 自定义配置 (U) 两端都可指定隧道终结点与受保护的内网子网;双向站点到站点 S2S 隧道,最通用,适用于总部 <-> 分支两个网关之间。两端网关都运行 IPsec。 客户端到网关 (C) 本机作为隧道客户端终结点,远端是固定网关;本机内网流量封装后发往远端网关。典型:单主机接入站点网关。 网关到客户端 (G) 本机作为网关侧隧道终结点,等待远端客户端主机建立隧道;远端客户端发起隧道连接到本机网关。 - 「是否要免除此隧道的受 IPsec 保护的连接」选项底层逻辑
- 是 (Y):IPsec 短路 / 豁免。如果匹配流量已经被另一条 IPsec 连接安全规则(传输模式 / 其他隧道)保护,则不再封装进当前隧道,避免IPsec 嵌套加密(隧道套隧道)。
- 否 (O):强制隧道封装。所有匹配该规则的流量,全部送入本 IPsec 隧道,哪怕流量已经被其他 IPsec 规则保护,允许嵌套 ESP 封装。截图当前选中【否】。
嵌套 IPsec 会增加 CPU 开销、MTU 问题,生产环境一般不推荐。
二、依赖文件
| 文件 | 功能 |
|---|---|
wf.msc |
MMC 防火墙管理单元快照 |
mmc.exe |
MMC 控制台主进程,承载向导 UI 对话框 |
hnetcfg.dll |
COM 接口INetFwPolicy2,IPsec 策略读写 |
ipsecsrv.dll |
IPsec 策略管理 COM 组件,隧道终结点、子网映射配置解析 |
ipsecdll.dll |
用户态 IPsec 辅助库,隧道策略预校验 |
mpssvc.dll |
MpsSvc 防火墙服务,接收策略并下发至 WFP |
ikeext.dll |
IKE 扩展,IKEv1/IKEv2 协商、SA 安全关联、NAT-T 处理 |
wfwfp.sys |
WFP 内核过滤平台,匹配流量,触发隧道封装逻辑 |
ipsec.sys |
IPsec 内核驱动(核心):ESP/AH 封装、隧道模式数据包加解密、SA 生命周期管理、外层 IP 头封装 |
tcpip.sys |
TCP/IP 内核协议栈,IP 路由、数据包分片、MTU 处理 |
comctl32.dll / user32.dll |
UI 控件,单选框、页面导航 |
三、依赖关系
- 进程依赖 向导运行在
mmc.exe进程,wf.msc 作为 MMC Snap-in 插件。关闭 mmc.exe,向导 UI 销毁,已经保存的 IPsec 隧道策略不受影响。 - 服务依赖
MpsSvc(Windows Defender Firewall):必须运行,负责策略下发。IKEEXT(IKE 和 IPsec 密钥模块):核心依赖。IKEEXT 停止,IPsec 隧道无法协商 SA,隧道完全失效。
- 权限依赖 必须管理员权限,隧道 IPsec 规则属于计算机级安全策略;普通用户无法创建修改。
- 网络协议依赖 IPsec 隧道协商依赖:UDP 500(IKE 主模式)、UDP 4500(NAT-T,NAT 穿越);ESP 协议号 50。本地出站防火墙必须放行 UDP500/UDP4500,否则隧道协商失败。
- 存储依赖 策略保存在本机计算机级策略库,本机所有网卡 / 用户生效;域环境下组策略 IPsec 规则优先级 > 本地 wf.msc 隧道规则。
四、配套链(配套组件、协议、工具)
内核组件
ipsec.sys:隧道 ESP 封装、加解密,内层 / 外层 IP 头处理wfwfp.sys:WFP 筛选器,匹配需要进入隧道的内网流量tcpip.sys:路由表,决定数据包走隧道虚拟接口还是物理网卡
用户态服务
- MpsSvc:策略管理、WFP 筛选器部署
- IKEEXT:IKE 协商、SA 管理、NAT-T、密钥轮换
配套协议
- IKEv1 / IKEv2:密钥协商,建立 IPsec SA 安全关联
- ESP(封装安全载荷):隧道模式加密 + 完整性校验(AH 基本弃用)
- NAT-T:NAT 环境 UDP4500 封装 IPsec 流量,穿越 NAT 网关
配套管理工具
netsh advfirewall consec:命令行管理 IPsec 隧道连接安全规则- PowerShell
New-NetIPsecRule:脚本批量部署 S2S 隧道 netsh trace/wpr:IPsec 协商、隧道数据包抓包诊断
⚠️区分:此页面的 IPsec 隧道 ≠ Windows 远程访问(RRAS/IKEv2 远程用户 VPN)。RRAS VPN 会创建虚拟适配器;IPsec 站点到站点隧道不生成独立虚拟网卡,在内核 WFP 层直接封装转发。
五、逻辑链路(完整时序)
- 在 wf.msc 新建【连接安全规则】,规则类型选择【隧道 (T)】,进入截图【隧道类型】页面。
- 选择隧道模式(自定义 / 客户端到网关 / 网关到客户端),选择 IPsec 嵌套豁免选项,点击下一步。
- 后续页面依次配置:隧道两端终结点 IP、身份验证方法(证书 / 预共享密钥 / Kerberos)、配置文件、名称。
- 完成向导 → 调用
ipsecsrv.dll/hnetcfg.dllCOM 接口写入 IPsec 隧道策略。 - MpsSvc 将策略编译为 WFP 筛选器,下发内核
wfwfp.sys+ipsec.sys。 - 当本机发出匹配受保护内网网段的数据包:
- WFP 捕获数据包,匹配隧道规则;
- IKEEXT 发起 IKE 协商,和远端隧道网关建立 IPsec SA;
- 协商成功:
ipsec.sys把原始 IP 包作为载荷,新增外层 IP 头,ESP 加密,通过物理网卡发往远端隧道终结点; - 远端网关接收,解密剥离外层 IP 头,恢复原始内网数据包并路由转发。
六、边界约束(边界、限制、坑点)
1. 隧道模式边界
- IPsec 隧道模式:封装整个 IP 包;传输模式仅封装传输层载荷。不要混淆。
- 自定义配置 = 双向 S2S 站点到站点隧道,两端网关都需要配置对称匹配的 IPsec 隧道策略,两端的终结点、保护子网、IKE 参数必须一致,否则协商失败。
- 客户端到网关 / 网关到客户端:单向隧道,用于单主机 <-> 站点网关场景。
2. IPsec 嵌套选项边界
- 选择【是】:防止 IPsec 嵌套;当流量已经被其他 IPsec 保护,跳过本隧道。适合多层 IPsec 策略共存场景。
- 选择【否】:强制全部匹配流量进入隧道,允许 ESP 嵌套 ESP,容易带来 MTU 分片、性能衰减、排错困难。截图当前选中此选项。
3. 路由边界
IPsec 隧道依赖系统路由:必须在本机添加静态路由,目标内网网段下一跳指向隧道远端终结点,流量才会匹配隧道规则。没有对应路由,流量不会进入隧道封装。
4. MTU 边界
隧道封装增加 ESP + 外层 IP 包头开销,会降低有效 MTU。容易出现大数据包分片、黑洞丢包(能 ping 小包,大 TCP 连接断连)。需要调整 PMTUD。
5. 和防火墙规则边界(重点)
IPsec 隧道连接安全规则只做加密封装、身份验证,不做数据包放行。 仍然需要出站 / 入站防火墙规则放行 IKE(UDP500/4500)和隧道 ESP 流量;否则协商或转发被阻断。
6. 常见误区边界
❌误区:这个隧道 = Windows 客户端远程接入 VPN ✅真相:这是站点到站点 S2S IPsec 隧道,不是用户远程 VPN;远程用户 VPN 需要 RRAS 角色,二者底层实现不同。
❌误区:配置隧道规则就自动添加路由 ✅真相:IPsec 隧道规则不会自动添加路由,必须手动添加静态路由指向远端内网网段。
❌误区:IPsec 隧道会生成虚拟网卡 ✅真相:wf.msc 里的 IPsec S2S 隧道是内核 WFP 层隧道,不会创建独立虚拟网卡,和 RRAS/IKEv2 远程 VPN 不一样。

Windows 高级防火墙「新建连接安全规则向导 - 隧道终结点」拆解|底层原理 / 依赖文件 / 依赖关系 / 配套链 / 逻辑链路 / 边界
界面来源:
wf.msc连接安全 IPsec 隧道向导的隧道终结点配置页。 核心概念区分:
- 终结点 1 中的计算机:受保护的内网网段(内层 IP,需要被加密的业务流量)
- 本地隧道终结点:本机网关的公网 / 外层 IP(IPsec 封装后数据包的源外层 IP)
- 远程隧道终结点:对端网关的公网 / 外层 IP(IPsec 封装后数据包的目的外层 IP)
一、底层原理
- 底层模型:IPsec 隧道模式存在两套 IP 地址空间
- 内层 IP(原始 IP 载荷):业务原始数据包,就是【终结点 1 中的计算机】定义的内网地址段;匹配该网段的流量才会被送入隧道封装。
- 外层 IP(隧道头 IP):IPsec 封装之后新增的 IP 头,源 IP = 本地隧道终结点,目的 IP = 远程隧道终结点;这一对外层 IP 是两个网关之间互联网路由可达的 IP。
- 内核匹配逻辑(
wfwfp.sys+ipsec.sys)- WFP 在内核网络栈捕获本机发出的 IP 包;
- 判断原始数据包源 / 目的 IP 是否匹配【终结点 1 中的计算机】网段;
- 命中后,
ipsec.sys执行 ESP 封装,新增外层 IP 头:源 IP 填【本地隧道终结点】,目的 IP 填【远程隧道终结点】; - 封装后的数据包走物理网卡路由发送给远端网关;远端网关解包,还原内层原始 IP 包,再转发到对端内网。
- 复选框「根据 “高级安全 Windows Defender 防火墙属性” 的 “IPsec 设置” 选项卡上指定的设置来应用 IPsec 隧道授权」
- 勾选:启用IPsec 隧道授权。IKE 协商成功之后,额外校验远端计算机账户 / 健康状态,不是只要密钥协商成功就允许隧道流量。常用于域隔离、NAP / 网络访问保护场景;
- 不勾选:仅校验 IKE 身份验证(证书 / 预共享密钥 / Kerberos),协商成功即可直接转发隧道流量。
二、依赖文件
| 文件 | 功能 |
|---|---|
wf.msc |
MMC 防火墙管理单元快照 |
mmc.exe |
MMC 控制台主进程,承载向导 UI |
hnetcfg.dll |
COM 接口INetFwPolicy2,IPsec 策略持久化写入 |
ipsecsrv.dll |
IPsec 策略管理 COM 组件,解析隧道终结点、内外网网段映射关系 |
ipsecdll.dll |
用户态 IPsec 辅助库,IP 地址段合法性校验 |
mpssvc.dll |
MpsSvc 防火墙服务,策略下发至 WFP 内核 |
ikeext.dll |
IKE 扩展,基于远程隧道终结点 IP 发起 IKE 协商、SA 管理、NAT-T |
wfwfp.sys |
WFP 内核平台,匹配内层 IP 网段,触发隧道封装动作 |
ipsec.sys |
IPsec 内核驱动,ESP 封装 / 解封装、内外层 IP 头组装、完整性校验、加解密 |
tcpip.sys |
TCP/IP 内核协议栈,外层 IP 数据包路由、分片、PMTUD |
comctl32.dll / user32.dll |
UI 控件、列表、输入框、页面导航 |
三、依赖关系
- 进程依赖 向导 UI 运行在
mmc.exe,关闭 mmc 不影响已经保存的 IPsec 隧道内核策略。 - 服务依赖
MpsSvc:必须运行,负责把隧道终结点网段配置编译为 WFP 筛选器;IKEEXT:核心依赖,使用远程隧道终结点 IP作为 IKE 协商的对端地址,发起 UDP500/4500 协商。IKEEXT 停止,隧道 SA 无法建立。
- 权限依赖 管理员权限,隧道规则属于计算机级安全策略,普通用户不可编辑。
- 网络依赖
- 本机必须路由可达远程隧道终结点外层 IP;
- 本机出站防火墙放行 UDP500 (IKE 主模式)、UDP4500 (NAT-T);
- 两端网关的隧道终结点参数必须对称配置,否则 IKE 协商失败。
- 存储依赖 策略保存在本地计算机策略库;域环境下组策略 IPsec 规则优先级高于本地 wf.msc 配置。
四、配套链(配套组件、协议、工具)
内核组件
ipsec.sys:ESP 封装,组装外层 IP 头,剥离外层包头、解密wfwfp.sys:WFP 筛选器,匹配内层业务网段tcpip.sys:路由查找,判断外层 IP 转发路径
用户态服务
- MpsSvc:策略管理、WFP 筛选器部署
- IKEEXT:IKE 协商、SA 生命周期、NAT 穿越处理
配套协议
- IKEv1/IKEv2:密钥协商,使用远程隧道终结点 IP作为协商对等体地址
- ESP:隧道加密与完整性校验
- NAT-T:UDP4500 封装,解决 NAT 环境下 IPsec 穿透问题
配套管理工具
netsh advfirewall consec:命令行配置隧道终结点、网段- PowerShell
New-NetIPsecRule:脚本批量部署 S2S 隧道 netsh ipsec dynamic show sa:查看 IPsec 安全关联,确认隧道终结点协商状态
五、逻辑链路(完整时序)
- 向导进入【隧道终结点】页面:
- 填写终结点 1 中的计算机:本机侧受保护内网网段(内层 IP);
- 填写本地隧道终结点 IPv4/IPv6:本机网关外层公网 IP;
- 填写远程隧道终结点 IPv4/IPv6:对端网关外层公网 IP;
- 按需勾选 IPsec 隧道授权;点下一步。
- 完成向导全部页面,保存规则;
ipsecsrv.dll将网段、终结点信息写入 IPsec 策略库。 - MpsSvc 编译策略,将内层 IP 网段匹配规则下发 WFP 内核
wfwfp.sys。 - 当本机内网主机发出匹配【终结点 1 网段】的数据包:
- WFP 捕获原始 IP 包,命中隧道规则;
- IKEEXT 检查是否存在可用 SA;无 SA 则向远程隧道终结点 IP发起 IKE 协商;
- IKE 协商成功,内核
ipsec.sys封装 ESP 载荷,新增外层 IP 头(源 = 本地隧道终结点,目的 = 远程隧道终结点); - 封装后的数据包经 tcpip.sys 路由,通过物理网卡发给远端网关;
- 远端网关接收,
ipsec.sys解密剥离外层 IP 头,还原内层原始 IP 包,转发到远端内网。
六、边界约束(边界、限制、坑点)
1. IP 地址空间边界(最容易混淆)
- 终结点网段(内层)≠隧道终结点外层 IP;内外两套 IP 互相独立;
- 内层网段是业务私网,外层隧道终结点一般为公网 IP;
- 仅匹配【终结点 1 中的计算机】网段的流量才会进入隧道;不匹配的流量直接走普通路由,不会封装。
2. 对称配置边界
站点到站点 IPsec 隧道两端网关配置必须镜像对称:A 端本地隧道终结点 = B 端远程隧道终结点;A 端远程隧道终结点 = B 端本地隧道终结点;两端保护的内网网段也要反向对应,否则协商成功也无法转发流量。
3. 路由边界
仅配置隧道终结点不会自动添加路由。必须手动添加静态路由:目标为远端内网网段,下一跳指向远程隧道终结点 IP。没有路由,流量不会触发隧道封装。
4. 隧道授权边界
勾选 IPsec 隧道授权后,IKE 协商成功只是基础;还需要通过计算机身份 / 健康校验,否则隧道流量依然会被丢弃,适合企业域环境强安全管控;普通 S2S 站点互联一般不勾选。
5. MTU 边界
ESP + 外层 IP 头带来额外包头开销,封装后 MTU 变小,容易产生大数据包分片、PMTU 黑洞(小包通、大包断连),需要针对性调整。
6. 和普通防火墙规则边界
隧道终结点 IPsec 规则只做加密封装,不会放行 IKE 协商流量;必须单独创建出站防火墙规则放行 UDP500/UDP4500。
7. 常见误区边界
❌误区:终结点 1 中的计算机填写本地网关公网 IP ✅真相:终结点 1 是需要保护的内网业务网段(内层 IP),不是外层隧道 IP。
❌误区:填写隧道终结点 IP 后自动生成路由 ✅真相:路由必须手动添加,IPsec 隧道规则不自动注入路由表。
❌误区:远程隧道终结点可以填域名 ✅真相:此向导页面只支持填写 IP 地址,不支持域名,域名解析不在 IPsec 内核隧道匹配阶段处理。
|
对于Windows防火墙的入站连接(I)设置,有三个选项:阻止、阻止所有连接和允许。下面是它们之间的区别和影响:
选择Windows防火墙入站连接的设置取决于对安全性和灵活性的需求。阻止所有连接提供了最高级别的安全性,但可能会影响必要的网络通信。允许所有连接提供了最大的灵活性,但可能会增加安全风险。阻止和阻止所有连接之间提供了中间地带,可以在安全性和灵活性之间进行权衡。 |
|
防火墙的作用不仅在于阻止外部恶意流量进入网络,还在于监控和控制内部流量,防止内部系统被攻击者利用。因此,攻击者在面对有效配置的防火墙时,需要更加谨慎和精密地规划其渗透攻击策略,同时可能需要具备一定的渗透测试技能和对防火墙规则的了解,以绕过防火墙进行渗透。 |
|
如何使用VPN或隧道来隐藏真实IP地址或绕过网络边界控制需要掌握一些基本概念和技能。以下是一些相关的学习内容和技术:
以上是学习如何使用VPN或隧道来隐藏真实IP地址或绕过网络边界控制的一些基本内容和技术。要注意,在学习和使用这些技术时,需要遵守当地法律和规定,以及尊重网络服务提供商的使用政策和条款。 |
|
通过以上措施的综合应用,防火墙可以有效地增强对VPN、代理服务器、Tor网络以及隧道技术的防御能力,帮助组织保护其网络安全和数据资产。 防火墙可以通过配置适当的规则和策略,帮助防御针对VPN、代理服务器、Tor网络以及隧道技术的攻击。然而,要想做到完全有效的防御,还需要综合考虑其他安全措施,如入侵检测系统(IDS)、入侵防御系统(IPS)、安全信息和事件管理(SIEM)等。 |

浙公网安备 33010602011771号