为什么 Windows 防火墙会阻止我的应用?
应用无法联网?可能是 Windows 防火墙在作怪。按步骤诊断并修复。
先检查防火墙是否开启,并查看是否有规则阻止了你的应用。
快速开始
当某个应用无法访问网络,但其他应用正常时,Windows 防火墙很可能是原因。本指南带你从命令行检查防火墙状态、为应用端口创建允许规则,并验证规则是否生效。
症状
?特定应用无法连接互联网或接收传入连接,但浏览器等其他应用正常。
检查防火墙状态和已有规则
先确认是不是防火墙的问题。查询所有配置文件(域、专用、公用)的防火墙状态,并列出已有规则。如果防火墙是关闭的,那问题不在防火墙。如果开启,看看有没有规则可能阻止了你的应用。这一步能帮你判断是否需要继续修复。
查询 Defender 防火墙在各个配置文件(域/专用/公用)下是否开启,并列出现有规则——不用打开图形界面。
命令
$ netsh advfirewall show allprofiles state为应用的端口创建入站允许规则
如果防火墙开启且没有允许规则,就为你的应用使用的端口创建一条入站允许规则。注意选择正确的协议(TCP/UDP)和端口号。规则创建后,应用应该就能接收连接了。
用一条 PowerShell cmdlet 为 TCP/UDP 端口创建入站放行规则,之后也能干净地删除。
命令
$ New-NetFirewallRule -DisplayName "Allow HTTP 8080" -Direction Inbound -Protocol TCP -LocalPort 8080 -Action Allow▾ 撤销
撤销
$ Remove-NetFirewallRule -DisplayName "Allow HTTP 8080"验证新规则已保存并备份防火墙策略
导出当前防火墙策略到文件。这样做有两个目的:确认新规则已经生效,同时留一份备份,万一出问题可以恢复。打开导出的文件,搜索你添加的规则名称,确保它在里面。如果找不到,说明规则没有正确应用。
用 netsh advfirewall export 把所有防火墙规则和配置文件设置快照到单个 .wfw 文件,再用 import 完整还原。
命令
$ netsh advfirewall export "C:\backup\firewall-policy.wfw"▾ 撤销
撤销
$ netsh advfirewall import "C:\backup\firewall-policy.wfw"!修改防火墙规则可能影响系统安全。在操作前建议先导出当前策略作为备份。如果重置防火墙,所有自定义规则都会丢失。
如何确认已解决
应用恢复正常联网,或者导出的防火墙策略文件中包含你添加的规则。
一键全部撤销
上面每一条命令都可以撤销。按此顺序执行即可全部还原。
一键全部撤销
$ netsh advfirewall import "C:\backup\firewall-policy.wfw"
Remove-NetFirewallRule -DisplayName "Allow HTTP 8080"执行前请先确认——部分步骤之间可能并非相互独立。
来源
- Netsh - Windows CMD依据: SS64 documents the netsh advfirewall contexts: show allprofiles state and firewall show rule name=all for inspecting rules and profile states.
- New-NetFirewallRule | Microsoft Learn依据: Microsoft documents New-NetFirewallRule with parameters -Direction, -Protocol, -LocalPort and -Action to create an inbound allow rule.
最后验证: 2026-09-22