要让Windows防火墙记录被丢弃的入站报文,需在“高级安全Windows Defender防火墙”中为域、专用、公用三个配置文件分别启用“记录被丢弃的数据包”,设置日志路径为%systemroot%\System32\LogFiles\Firewall\pfirewall.log、大小≥8192KB,并赋予SYSTEM和Administrators完全控制权限,重启mpssvc服务后通过telnet测试并检查日志中DROP字段及事件ID 5157验证。
要让 windows 防火墙记录被丢弃的入站报文(即拦截的外部连接请求),核心是启用“记录被丢弃的数据包”并确保日志路径可写、大小足够、配置覆盖全部网络类型。这不是默认开启的功能,必须手动激活,否则所有拦截行为都无声无息。
在高级安全控制台中逐项启用日志
这是最直接、最可控的方式,适用于单机排查:
- 按 Win + R,输入 wf.msc 回车,打开“高级安全 Windows Defender 防火墙”
- 左键点击顶层节点“高级安全 Windows 防火墙(本地)”,右键选“属性”
- 依次切换到域配置文件、专用配置文件、公用配置文件三个选项卡
- 每个选项卡下点“日志”区域的“自定义”按钮
- 务必勾选记录被丢弃的数据包(这是排查攻击的关键);可选勾“记录成功的连接”用于比对基线
- 日志路径建议用默认值:%systemroot%\System32\LogFiles\Firewall\pfirewall.log(即 C:\Windows\System32\LogFiles\Firewall\pfirewall.log)
- 日志最大大小设为8192 KB 或更高,避免高频扫描下日志被快速覆盖
- 每配完一个配置文件,点“确定”保存;三个都要配,缺一不可
确认日志权限与实际写入状态
即使界面显示已启用,日志也可能因权限问题静默失败:
- 手动创建目录 C:\Windows\System32\LogFiles\Firewall\(若不存在)
- 右键该文件夹 → “属性” → “安全” → “编辑” → 添加 SYSTEM 和 Administrators 组,并赋予完全控制权限
- 重启防火墙服务:以管理员身份运行命令提示符,执行 net stop mpssvc && net start mpssvc
- 触发一次测试拦截(如用另一台机器 telnet 你的 IP 未开放端口),等待 1–2 分钟后检查日志文件是否更新、大小是否增长
快速验证日志内容是否有效
打开 pfirewall.log 后,每条合法记录应包含至少以下字段(用空格分隔):
- 日期 时间(如 2026-05-08 14:22:03)
- 动作(DROP 表示被拦截,这是你要找的关键标识)
- 协议(TCP/UDP)
- 源IP 和 目的IP
- 源端口 和 目的端口
- 其他如方向(SEND/RECEIVE)、规则名等
若看到大量 DROP 行且源IP集中、端口异常(如全扫 135、445、3389),基本可判定为扫描或探测行为。
补充:用事件查看器交叉验证拦截详情
Windows 还会通过内核筛选平台(WFP)生成结构化安全事件,比文本日志更详细:
- 打开“事件查看器” → “Windows 日志” → “安全”
- 右键“筛选当前日志”,填入事件 ID:5157
- 每条 5157 事件明确标注“连接已被阻止”,含应用程序路径、源IP、目标端口、协议、筛选器名称
- 特别注意 ApplicationPath 字段为空或为系统进程(如 svchost.exe)的情况——这往往代表是针对端口的原始网络层攻击,而非某具体程序被拦


















