防火墙规则怎么加
给 Windows 防火墙放行端口,本质是在入站方向新增一条允许规则。命令行有两种写法:传统的 netsh 适合在任何版本上直接执行,PowerShell 的规则命令则把参数拆成明确的对象属性,更适合写进脚本与批量下发。开放端口前先想清楚三件事:给哪个端口、允许哪个来源网段、只对哪个配置文件生效。把来源限制成具体网段而不是全网,是这类操作里最容易被忽略、后果又最直接的一点。
基本信息
| 适用平台 | Windows Server 2008 及以上、Windows 7 及以上 |
|---|---|
| netsh 语法 | netsh advfirewall firewall add rule name=名称 dir=in action=allow protocol=TCP localport=端口 remoteip=范围 |
| PowerShell 语法 | New-NetFirewallRule -DisplayName 名称 -Direction Inbound -Protocol TCP -LocalPort 端口 -Action Allow |
| 查看规则 | netsh advfirewall firewall show rule name=名称;或按显示名查询规则对象 |
| 删除规则 | netsh advfirewall firewall delete rule name=名称;PowerShell 侧按显示名删除 |
| 权限 | 所有增删改操作都需要管理员权限 |
典型使用场景
- 新部署服务后开放业务端口,让客户端能够访问
- 仅对管理网段放行远程管理端口,避免全互联网暴露
- 临时排障:先放行验证问题是否出在防火墙,排完立即回收规则
- 批量下发:把同一条规则应用到多台主机,保证配置一致
- 导出与核对:列出规则清单,做基线比对或变更审计
- 删除遗留规则,避免长期存在无人认领的放行条目
常用示例
常用示例
:: 开放 80 端口,仅放行内网网段(CMD,需管理员)
netsh advfirewall firewall add rule name="Web 80" dir=in action=allow protocol=TCP localport=80 remoteip=10.0.0.0/8
:: 查看这条规则的详情
netsh advfirewall firewall show rule name="Web 80"
:: 按端口筛选已有入站允许规则
netsh advfirewall firewall show rule name=all dir=in | findstr /i "80"
:: 删除规则
netsh advfirewall firewall delete rule name="Web 80"
:: 关闭某条规则而不是删除
netsh advfirewall firewall set rule name="Web 80" new enable=noPowerShell 等价写法
PowerShell 等价写法
# 新增入站规则,限定来源网段
New-NetFirewallRule -DisplayName 'Web 80' -Direction Inbound -Protocol TCP -LocalPort 80 -Action Allow -RemoteAddress 10.0.0.0/8
# 只对指定配置文件生效
New-NetFirewallRule -DisplayName 'App 8443' -Direction Inbound -Protocol TCP -LocalPort 8443 -Action Allow -Profile Domain
# 查看规则
Get-NetFirewallRule -DisplayName 'Web 80' | Get-NetFirewallPortFilter
# 临时禁用与启用
Disable-NetFirewallRule -DisplayName 'Web 80'
Enable-NetFirewallRule -DisplayName 'Web 80'
# 删除规则
Remove-NetFirewallRule -DisplayName 'Web 80'参数要点
| 参数 | 含义 | 建议 |
|---|---|---|
| dir 与 -Direction | 规则方向,入站用 in 或 Inbound | 业务端口一般只需入站 |
| action 与 -Action | 允许还是阻止 | 排障时先允许,验证完再回收 |
| protocol | 协议类型 | 按实际服务选,别一律放开 |
| localport 与 -LocalPort | 本机端口 | 支持范围与逗号分隔的多值 |
| remoteip 与 -RemoteAddress | 来源地址范围 | 不写等于对来源无限制,生产环境必须限定 |
| profile 与 -Profile | 生效的网络配置文件 | 服务器一般只需域配置 |
不写来源限制等于对所有来源放行,公网可达的端口会立刻进入被扫描名单。生产环境应把来源限定在业务网段或跳板机地址,验证完成后及时删除临时规则。
规则名重复会生成多条同名条目,现象是删除一次之后端口仍然通。清理前先用查询命令确认同名规则的数量,再逐条处理。