Windows 防火牆圖形介面操作繁瑣,netsh 命令列工具提供強大、可腳本化、遠程管理的配置能力。本文整理 netsh firewall (舊版、Win7/Server 2008 仍支援) 與 netsh advfirewall (新版、Vista+ 推薦) 核心指令,助您精準掌控防火牆。
Win+R cmd (管理員) → 輸入 netsh 進入互動模式,或直接在 CMD 後接指令 (如 netsh advfirewall show allprofiles)。
| 指令 | 功能 |
|---|---|
netsh firewall show config | 顯示完整防火牆配置 (啟用狀態、例外、通知、日誌、ICMP、服務、連接埠) |
netsh firewall show allowedprogram | 顯示允許的程式清單 |
netsh firewall show portopening | 顯示開放的連接埠清單 |
netsh firewall show service | 顯示允許的服務清單 |
netsh firewall show icmpsetting | 顯示 ICMP 設定 |
netsh firewall show logging | 顯示日誌設定 |
netsh firewall show opmode | 顯示操作模式 (啟用/停用/通知) |
netsh firewall show state | 顯示當前狀態 (作用中連線、已啟用規則) |
netsh firewall show currentprofile | 顯示當前設定檔 (網域/私人/公用) |
| 指令 | 功能 | 範例 |
|---|---|---|
netsh firewall set allowedprogram | 新增/修改允許程式 | netsh firewall set allowedprogram "C:\App\server.exe" "MyServer" ENABLE ALL |
netsh firewall set portopening | 新增/修改開放連接埠 | netsh firewall set portopening TCP 8080 "WebServer" ENABLE ALL |
netsh firewall set service | 新增/修改允許服務 | netsh firewall set service REMOTEADMIN ENABLE ALL |
netsh firewall set icmpsetting | 設定 ICMP 類型允許/封鎖 | netsh firewall set icmpsetting 8 ENABLE ALL (允許 Echo Request) |
netsh firewall set logging | 設定日誌 (路徑、大小、記錄丟棄/成功連線) | netsh firewall set logging "C:\Logs\fw.log" 4096 ENABLE |
netsh firewall set notifications | 啟用/停用通知 | netsh firewall set notifications ENABLE |
netsh firewall set opmode | 設定操作模式 | netsh firewall set opmode ENABLE / DISABLE |
結構: netsh advfirewall > set/ show > global / currentprofile / allprofiles / domainprofile / privateprofile / publicprofile / rule / mainmode / quickmode / consec
# 新增輸入規則允許 TCP 8080
netsh advfirewall firewall add rule name="Allow TCP 8080" dir=in action=allow protocol=TCP localport=8080 profile=any
# 新增輸出規則阻擋特定程式
netsh advfirewall firewall add rule name="Block BadApp Out" dir=out action=block program="C:\Bad\bad.exe" profile=any
# 依名稱啟用/停用/刪除規則
netsh advfirewall firewall set rule name="Allow TCP 8080" new enable=yes/no
netsh advfirewall firewall delete rule name="Allow TCP 8080"
# 顯示所有規則
netsh advfirewall firewall show rule name=all
netsh advfirewall firewall show rule name="Allow TCP 8080" verbose
# 顯示所有設定檔狀態
netsh advfirewall show allprofiles
# 設定公用設定檔預設封鎖輸入/允許輸出
netsh advfirewall set publicprofile firewallpolicy blockinbound,allowoutbound
# 關閉防火牆 (不建議)
netsh advfirewall set allprofiles state off
# 開啟防火牆
netsh advfirewall set allprofiles state on
# 匯出完整原則至檔案
netsh advfirewall export "C:\Backup\fw_policy.wfw"
# 匯入原則 (覆蓋現有)
netsh advfirewall import "C:\Backup\fw_policy.wfw"
add rule,群組原則/SCCM/Ansible 推送執行。winrs -r:Server01 netsh advfirewall ... 或 PowerShell Remoting Invoke-Command 執行 netsh。netsh advfirewall show rule name=all dir=in action=block 快速找出封鎖特定連線的規則。netsh advfirewall firewall add rule name="Temp 3306" dir=in action=allow protocol=TCP localport=3306 profile=any,測試完 delete rule。netsh firewall 但**功能受限 (不支援多設定檔獨立規則、無法針對特定介面/邊界類型、無法管理 IPSec/連線安全性規則)**。netsh advfirewall**,功能完整、語法一致、支援所有新特性。NetSecurity 模組 (New-NetFirewallRule, Get-NetFirewallRule) 為更現代化、物件導向的替代方案,建議並行學習。掌握 netsh 防火牆指令,讓防火牆配置從「點點點」進化為「碼碼碼」,實現基礎設施即代碼。
Win7 64位 旗艦版執行遊戲提示遺失 msvcp120.dll?下載 DLL 檔放入 SysWOW64 並註冊、安裝 VC++ 2013 解決
製作正版 Windows 8/8.1 USB 安裝隨身碟完整教學:UltraISO 寫入 ISO、UEFI/BIOS 開機、安裝流程、驅動與激活
Win8 音訊服務未執行怎麼辦?重新啟動 Windows Audio 服務解決
Win7 剛裝好就不斷「正在配置更新」?關閉自動更新/改為手動檢查徹底靜音
Win10 如何進入安全模式?BAT 命令列啟用傳統 F8 選單法(需 USB 開機媒體)