本机端口在 localhost 正常但其他机器连不上、需要临时开放程序或端口、撤销过期规则时使用。不要在服务器上直接关闭防火墙来“验证网络”:远程操作时先放行 RDP 或管理端口,再启用防火墙,否则会把自己锁在机器外。
wf.msc。netsh advfirewall export 备份当前策略,服务器和多规则机器尤其重要。Win+R 输入 wf.msc,在“入站规则/出站规则”右侧“新建规则”,选程序或端口,设置允许/阻止、配置文件、作用域,规则名带业务和日期便于回收。
C:\> netsh advfirewall show allprofiles
C:\> netsh advfirewall firewall show rule name=all dir=in
C:\> netsh advfirewall firewall add rule name="MyApp TCP 8443" dir=in action=allow protocol=TCP localport=8443 profile=domain,private remoteip=192.168.1.0/24
C:\> netsh advfirewall firewall delete rule name="MyApp TCP 8443"
C:\> netsh advfirewall export C:\backup\fw.wfw
C:\> netsh advfirewall import C:\backup\fw.wfw
影响范围:规则立即生效;
profile=public会把端口暴露在不可信网络。只开必要端口,优先用remoteip限制来源,并记录申请人和到期时间。
PS C:\> Get-NetFirewallRule -DisplayName "MyApp*" | Format-Table DisplayName,Enabled,Direction,Action
PS C:\> New-NetFirewallRule -DisplayName "MyApp TCP 8443" -Direction Inbound -Protocol TCP -LocalPort 8443 -Action Allow -Profile Domain,Private
PS C:\> Remove-NetFirewallRule -DisplayName "MyApp TCP 8443"
netsh advfirewall set allprofiles state off 会关闭全部防火墙,只应在隔离测试环境短时使用。
netsh advfirewall firewall show rule name="MyApp TCP 8443" 显示 Enabled: Yes。netstat -ano | findstr :8443 确认进程监听,再从另一台机器用 Test-NetConnection 或 telnet 测试。delete rule;删除前先 show rule 记录完整参数。netsh advfirewall export,回滚用 import 覆盖;导入会替换当前策略。合上页面,先回答,再展开对照。
profile 选错会有什么后果?public 会把服务暴露在不可信网络,应只开放必要配置文件并限制来源 IP。netsh advfirewall export,回滚时 netsh advfirewall import 覆盖恢复。
小程序版
微信扫码,随时查命令