如何通过命令行快速开启或关闭计算机防火墙?
- 内容介绍
- 文章标签
- 相关推荐
使用者常见痛点
在日常使用中。很多使用者会遇到以下困扰:
- 找不到防火墙开关入口——每次都要打开控制面板或设置,耗时又繁琐。
- 远程管理服务器时只能依赖图形界面——在没有 GUI 的环境下几乎无从下手。
- 忘记以管理员身份执行命令——导致命令执行失败,却不知道原因。
- 频繁切换防火墙状态却不想每次都点击几步——效率低下尤其在排查网络问题时更是如此。怎么说呢,
前置准备这方面。获取管理员权限
所有涉及防火墙的 netsh advfirewall 或 PowerShell 命令都需要以管理员身份运行。
- 右键点击开始菜单 → 选择 “Windows 终端” 或 “命令提示符”。
- 确认弹出的窗口标题中出现 “Administrator”。
一键开启防火墙
基本命令
netsh advfirewall set allprofiles state on
# 或者 PowerShell
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
验证是否成功开启
# 查看三个配置文件的状态
netsh advfirewall show allprofiles
# PowerShell
Get-NetFirewallProfile | Format-Table Name,Enabled
一键关闭防火墙
netsh advfirewall set allprofiles state off
# 或者 PowerShell
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
验证是否成功关闭
# 查看三个配置文件的状态
netsh advfirewall show allprofiles
# PowerShell
Get-NetFirewallProfile | Format-Table Name,Enabled
快速查看当前防火墙状态
# Netsh
netsh advfirewall show allprofiles
# PowerShell
.Enabled
常用高级操作的观点是。规则管理
列出所有已添加的规则
# Netsh
netsh advfirewall firewall show rule name=all
# PowerShell
Get-NetFirewallRule | Format-Table -AutoSize Name,DisplayName,Enabled,Direction,Action
添加自定义规则
# Netsh 示例
netsh advfirewall firewall add rule name="Allow SSH" dir=in action=allow protocol=TCP localport=22
# PowerShell 示例
New-NetFirewallRule -DisplayName "Allow SSH" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
删除已有规则
# Netsh 删除方式1:按名称删除
netsh advfirewall firewall delete rule name="Allow SSH"
# PowerShell 删除方式1:按显示名称删除
Remove-NetFirewallRule -DisplayName "Allow SSH"
常见问题 FAQ
* 问:关闭防火墙后程序会不会立刻变得不安全?*
注意:关闭防火墙会立即取消对入站流量的默认拦截。 只在确实需要临时开放端口或排查网络故障时使用,完成后务必立即恢复。
* 问:修改规则后是否需要重启电脑?*
No。大多数规则修改都会即时生效,无需重启。其实,如果使用的是旧版 wfw.exe /rmmod 之类的服务。则可通过"netsh advfirewall reset" 强制刷新。
* 问:如何让防火墙在程序启动时自动开启?*
只要确保所有配置文件均为 “on”,程序启动后会自动加载对应策略;如果曾手动关闭过单个配置文件,请 执行“一键开启”命令。
* 问:在没有图形界面的服务器上怎么办?*
可以使用上述 .bat/.ps1 脚本 批量执行,适用于远程登录或自动化部署。
掌握这些简短而高效的命令行技巧后你再也不必在繁琐的 GUI 界面里兜圈子。轻点回车就可以完成防火墙的开关、状态查询还有规则管理,让程序安全与运维效率同步提高!
使用者常见痛点
在日常使用中。很多使用者会遇到以下困扰:
- 找不到防火墙开关入口——每次都要打开控制面板或设置,耗时又繁琐。
- 远程管理服务器时只能依赖图形界面——在没有 GUI 的环境下几乎无从下手。
- 忘记以管理员身份执行命令——导致命令执行失败,却不知道原因。
- 频繁切换防火墙状态却不想每次都点击几步——效率低下尤其在排查网络问题时更是如此。怎么说呢,
前置准备这方面。获取管理员权限
所有涉及防火墙的 netsh advfirewall 或 PowerShell 命令都需要以管理员身份运行。
- 右键点击开始菜单 → 选择 “Windows 终端” 或 “命令提示符”。
- 确认弹出的窗口标题中出现 “Administrator”。
一键开启防火墙
基本命令
netsh advfirewall set allprofiles state on
# 或者 PowerShell
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled True
验证是否成功开启
# 查看三个配置文件的状态
netsh advfirewall show allprofiles
# PowerShell
Get-NetFirewallProfile | Format-Table Name,Enabled
一键关闭防火墙
netsh advfirewall set allprofiles state off
# 或者 PowerShell
Set-NetFirewallProfile -Profile Domain,Public,Private -Enabled False
验证是否成功关闭
# 查看三个配置文件的状态
netsh advfirewall show allprofiles
# PowerShell
Get-NetFirewallProfile | Format-Table Name,Enabled
快速查看当前防火墙状态
# Netsh
netsh advfirewall show allprofiles
# PowerShell
.Enabled
常用高级操作的观点是。规则管理
列出所有已添加的规则
# Netsh
netsh advfirewall firewall show rule name=all
# PowerShell
Get-NetFirewallRule | Format-Table -AutoSize Name,DisplayName,Enabled,Direction,Action
添加自定义规则
# Netsh 示例
netsh advfirewall firewall add rule name="Allow SSH" dir=in action=allow protocol=TCP localport=22
# PowerShell 示例
New-NetFirewallRule -DisplayName "Allow SSH" -Direction Inbound -Protocol TCP -LocalPort 22 -Action Allow
删除已有规则
# Netsh 删除方式1:按名称删除
netsh advfirewall firewall delete rule name="Allow SSH"
# PowerShell 删除方式1:按显示名称删除
Remove-NetFirewallRule -DisplayName "Allow SSH"
常见问题 FAQ
* 问:关闭防火墙后程序会不会立刻变得不安全?*
注意:关闭防火墙会立即取消对入站流量的默认拦截。 只在确实需要临时开放端口或排查网络故障时使用,完成后务必立即恢复。
* 问:修改规则后是否需要重启电脑?*
No。大多数规则修改都会即时生效,无需重启。其实,如果使用的是旧版 wfw.exe /rmmod 之类的服务。则可通过"netsh advfirewall reset" 强制刷新。
* 问:如何让防火墙在程序启动时自动开启?*
只要确保所有配置文件均为 “on”,程序启动后会自动加载对应策略;如果曾手动关闭过单个配置文件,请 执行“一键开启”命令。
* 问:在没有图形界面的服务器上怎么办?*
可以使用上述 .bat/.ps1 脚本 批量执行,适用于远程登录或自动化部署。
掌握这些简短而高效的命令行技巧后你再也不必在繁琐的 GUI 界面里兜圈子。轻点回车就可以完成防火墙的开关、状态查询还有规则管理,让程序安全与运维效率同步提高!

