Windows Server 防火墙默认不记录丢包日志,需通过高级安全设置启用安全日志并配置“记录被丢弃的数据包”和“记录成功连接”,指定日志路径与大小;日志含Action、Protocol、SrcPort/DstPort、Rule、Direction等字段,结合“访问原因”审计和PowerShell命令可精准定位拦截规则与根本原因。
windows server 默认不记录防火墙丢包的详细日志,必须手动启用“安全日志”并配置日志级别,才能看到哪些连接被允许或阻止、具体因何规则拦截、源ip和目标端口等关键信息。
开启 Windows 防火墙安全日志
防火墙日志默认关闭,需通过组策略或高级安全设置启用:
- 打开“高级安全 Windows 防火墙” → 右侧点击“属性” → 切换到“监视”选项卡,确认“显示安全连接”已启用(非必需但有助于排查)
- 回到左侧“Windows 防火墙属性”,分别对“域配置文件”“专用配置文件”“公用配置文件”逐个设置:
→ 在“日志”区域点击“自定义” → 勾选“记录被丢弃的数据包”和“记录成功连接”
→ 设置日志路径(如 C:\Windows\System32\LogFiles\Firewall\pfirewall.log)和最大日志大小(建议 ≥ 4096 KB) - 保存后,系统会立即开始写入日志;若日志文件未生成,可重启“Windows Firewall”服务或运行 netsh advfirewall set allprofiles logging droppedconnections enable
解读日志内容定位拦截原因
日志是纯文本格式,每行包含时间、动作(ALLOW/ DROP)、协议、源/目标IP与端口、规则名称等字段。重点关注以下几列:
- Action:值为 DROP 表示被拦截;ALLOW 表示放行
- Protocol:TCP/UDP/ICMP,结合端口判断是否为预期服务(如 TCP 443 是 HTTPS)
- SrcPort/DstPort:目标端口能快速识别被拦的是哪个服务(如 DstPort=6379 很可能是 Redis)
- Rule:显示触发的具体规则名,例如 “Block outbound Redis” 或系统默认规则 “@FirewallAPI.dll,-32752”
- Direction:IN 表示入站,OUT 表示出站 —— 多数程序联网问题属于 OUT 方向拦截
结合“访问原因”报告查根本原因
Windows Server 2012 R2 及更新版本支持审计事件中的“访问原因”字段,它能说明某条连接为何被拒绝,比如:
- “规则匹配:出站阻止规则‘禁止第三方更新’”
- “无匹配规则,默认阻止”
- “用户账户无网络访问权限”(提示可能涉及服务账户权限问题)
要启用该功能,需在组策略中配置:
计算机配置 → Windows 设置 → 安全设置 → 高级审核策略配置 → 系统审核策略 → 对象访问 → 启用“审核防火墙连接”并设为“成功和失败”。
辅助验证:用 PowerShell 快速确认规则状态
光看日志还不够,需同步检查规则是否存在、是否启用、是否优先级冲突:
- 列出所有出站阻止规则:Get-NetFirewallRule -Direction Outbound -Action Block | Where-Object Enabled -eq True
- 查看某规则详情(如规则名为 BlockRedis):Get-NetFirewallRule -Name BlockRedis | Get-NetFirewallApplicationFilter
- 临时禁用某规则测试连通性:Set-NetFirewallRule -Name BlockRedis -Enabled False(测试完记得恢复)


















