要查windows防火墙拦截记录,需启用pfirewall.log获取基础连接行为(ip、端口、协议、动作),并结合事件id 5157定位被拦程序路径与规则名,再通过频次统计、异常模式识别及策略核查开展审计。
要查 windows 防火墙拦截了哪些连接,以及做进一步审计分析,关键不是“有没有日志”,而是“用对哪一类日志”和“怎么读出有效信息”。系统本身不默认记录详细拦截行为,必须主动启用对应机制,且不同方法覆盖的粒度和用途明显不同。
启用 pfirewall.log 查看基础连接行为
这是最直接反映“谁连谁、被放行还是被拦”的文本日志,适合排查具体应用连不上网、某 IP 无法访问等问题。它记录源/目标 IP、端口、协议、时间、动作(ALLOW / DROP)等字段,但不包含进程路径或规则名。
- 打开 wf.msc → 右键“高级安全 Windows 防火墙(本地)” → “属性”
- 依次切换“域”“专用”“公用”三个配置文件,在每个的“日志”区域点“自定义”
- 勾选“记录被丢弃的数据包”和“记录成功的连接”,路径设为 C:\Windows\System32\LogFiles\Firewall\pfirewall.log,最大大小建议 ≥4096 KB
- 保存后等待几分钟,用记事本或 Notepad++ 打开日志,按时间或 IP 快速筛选
用事件查看器查 ID 5157 定位被拦的具体程序
当你要知道“是哪个.exe 被拦了”“用了哪条防火墙规则”时,这个方法更精准。它来自 Windows 筛选平台(WFP),无需提前开启日志,只要系统启用了安全审核策略(默认多数版本已启用)就能看到。
- 进入“计算机管理” → “事件查看器” → “Windows 日志” → “安全”
- 右键“安全”日志 → “筛选当前日志”,在“事件ID”框中输入 5157
- 结果中双击任一事件 → 切到“详细信息”选项卡 → 查看 ApplicationPath(被拦程序路径)、SourceAddress、DestinationPort、FilterName(触发的规则名)
结合日志做简单审计与异常识别
单看一条日志意义有限,真正用于审计,需要观察趋势和模式。比如:同一 IP 频繁尝试不同端口(扫描迹象)、某个内部程序突然大量外连陌生地址(可疑行为)、某时段集中出现 DROP 记录(可能策略误配)。
- 用 Excel 或 Log Parser 工具导入 pfirewall.log,按 SourceIP + DestinationPort 统计频次
- 对比 5157 事件中 ApplicationPath 是否属于预期范围(如非系统目录下的未知 .exe)
- 检查日志中是否出现大量来自公网 IP 的入站 DROP,同时无对应 ALLOW —— 可能正遭受探测
- 若发现某条规则反复触发拦截,可回 wf.msc 中确认该规则是否仍必要,避免过度宽松或误禁
补充说明:日志不是万能,需配合其他信息
pfirewall.log 和 5157 事件都只反映“防火墙做了什么决定”,不体现“为什么做这个决定”的完整上下文(比如是否受组策略覆盖、是否被第三方安全软件干预)。若审计要求更高,建议同步检查:
- 组策略对象(GPO)中“Windows 防火墙:日志设置”是否被集中管控
- 系统安全策略中“审核策略→对象访问”是否启用(影响 5157 是否生成)
- 第三方杀毒或EDR工具是否接管了网络过滤,导致 Windows 防火墙日志不全











