首页/安全/安全加固速查/netsh 防火墙规则增删查
防火墙与访问控制50 条

netsh 防火墙规则增删查

netsh advfirewall firewall 是 Windows 防火墙规则的传统命令行入口,适合脚本化批量下发,记住 add/delete/show 三段式。

安全加固速查安全更新于 2026-10-13

netsh 防火墙入口

netsh advfirewall firewall 是 Windows 防火墙规则的传统命令行入口,适合脚本化批量下发。它的命令结构固定为 add、delete、show 三段式,规则名是后续查询与删除的唯一凭据,因此命名规则要在下发之前就统一好。

基本信息

适用平台Windows(Server 2008 及以上与客户端系统)
命令族netsh advfirewall firewall
风险等级中
基线要求每条放行规则有业务归属
关键参数dir、action、protocol、localport、remoteip

典型使用场景

  • 批量下发统一的入站放行规则
  • 脚本化部署时配置服务器防火墙
  • 排查某条规则是否存在及完整参数
  • 清理历史遗留的临时规则
  • 统计规则条数,发现计划外新增

增删查

增删查
netsh advfirewall firewall add rule name="Allow HTTPS 443" dir=in action=allow protocol=TCP localport=443 remoteip=10.0.0.0/8   # 只放行内网段的 443
netsh advfirewall firewall show rule name="Allow HTTPS 443" verbose   # 查看该规则的完整参数
netsh advfirewall firewall delete rule name="Allow HTTPS 443"        # 按规则名删除
netsh advfirewall firewall show rule name=all | findstr /i "Rule Name" | find /c /v ""   # 统计规则条数
netsh advfirewall firewall show rule name=all dir=in | findstr /i "Allow"   # 列出所有入站放行规则

参数读法

参数含义注意点
name规则名称删除与查询的唯一凭据,命名要统一
dir规则方向in 为入站,out 为出站
action匹配后的动作allow 放行,block 阻止
localport本地端口精确到端口而不是范围
remoteip允许的来源地址不写等于任意来源
remoteip 是收敛来源的关键:不带 remoteip 的放行规则默认对全网开放,等于把端口摊给所有地址。
规则名重复会生成多条功能相同的规则:命名时带上端口与用途,删除时按 name 精确匹配。
netsh 的参数对大小写不敏感,但拼写必须完整:把 action 拼错会静默生成无效规则,命令执行不报错却没有任何实际效果。
netsh 与 PowerShell 的 New-NetFirewallRule 是两套接口但底层是同一份规则集:团队里约定只用其中一种,排障时就不容易出现命令结果对不上的情况。
批量下发前先在测试机验证规则效果:写错方向或端口会直接切断远程管理通道,只保留远程连接方式的服务器尤其要注意。

易错点

  • 放行规则不带 remoteip,等于对全网开放,来源收敛等于没做
  • 规则名重复生成多条同功能规则,排查时看不清楚到底有几条生效
  • 参数拼写错误静默生成无效规则,命令执行成功却没有任何效果
  • 用 PowerShell 的 New-NetFirewallRule 与 netsh 混合维护,两处规则难以对齐
  • 只加规则不记录业务归属,后续盘点时没人能说清这条规则为什么存在

数据来源与参考

  • Microsoft Learn:netsh advfirewall firewall 命令
  • Windows 安全基线实践

相关工具

​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌