windows服务器防火墙高级安全设置核心在于精准控制流量、按网络类型分策略、绑定服务与端口及脚本化复用;通过netsh命令可快速配置域/专用/公用网络策略、端口规则、程序与服务规则,并支持导出导入实现配置即代码。

Windows 服务器防火墙的高级安全设置,核心不在“关或开”,而在于**精准控制入站/出站流量、按网络类型区分策略、绑定服务与端口、并支持脚本化复用**。图形界面点十几次才能配一条规则,命令行一条命令就能完成,还能批量部署、远程执行、版本留存。
一、按网络配置文件精细管控
Windows 防火墙把网络分为域(Domain)、专用(Private)、公用(Public)三类配置文件,每类可独立开关、设默认策略。生产环境必须区分对待:
- 域网络:通常用于内网AD环境,可适度放行管理端口(如3389、5985)和内部服务端口
- 专用网络:如测试网段或管理VLAN,建议启用防火墙但开放必要ICMP、RDP、WinRM等规则
- 公用网络:面向互联网或访客区,应严格限制——默认阻止所有入站,仅保留极少数必需端口(如443)
查看当前各配置文件状态:
netsh advfirewall show allprofiles
二、快速创建/删除端口放行规则
开发或运维中常需临时开放某端口(如8080调试服务、1433数据库访问),命令行比图形界面快得多:
- 放行TCP 8080端口(仅限专用网络):
netsh advfirewall firewall add rule name="Allow HTTP Alt" dir=in action=allow protocol=TCP localport=8080 profile=private - 放行UDP 123(NTP时间同步)并指定远程IP范围(如仅允许192.168.10.0/24):
netsh advfirewall firewall add rule name="NTP In" dir=in action=allow protocol=UDP localport=123 remoteip=192.168.10.0/24 profile=domain,private - 删除规则(按名称):
netsh advfirewall firewall delete rule name="Allow HTTP Alt"
三、基于程序和服务的规则更安全
比起只开放端口,按程序路径或系统服务名设规则更可控、更防端口复用滥用:
- 允许IIS的w3wp.exe进程所有出站连接:
netsh advfirewall firewall add rule name="IIS Outbound" dir=out action=allow program="%SystemRoot%\System32\inetsrv\w3wp.exe" enable=yes - 仅允许SQL Server数据库引擎(MSSQLSERVER服务)监听TCP 1433,且仅响应域网络请求:
netsh advfirewall firewall add rule name="SQL Server TCP" dir=in action=allow service="MSSQLSERVER" protocol=TCP localport=1433 profile=domain
注意:服务名需与sc query返回的SERVICE_NAME一致,不是显示名称。
四、导出导入规则,实现配置即代码
服务器迁移、集群批量部署、灾备恢复时,规则不能靠人肉重配:
- 导出全部规则到文件(含注释和完整参数):
netsh advfirewall export "C:\fw-rules.wfw" - 在另一台服务器上一键导入:
netsh advfirewall import "C:\fw-rules.wfw" - 导出后可纳入Git管理,每次变更留痕;也可用PowerShell解析.wfw文本做差异比对
所有操作务必在管理员权限的CMD或PowerShell中执行,普通用户权限会提示“拒绝访问”。











