Windows XP Windows 7 Windows 2003 Windows Vista Windows 綜合教學 Linux 系統教學
Windows 10 Windows 8 Windows 2008 Windows NT Windows Server 電腦軟體教學
您现在的位置: Windows教程網 >> Windows教程 >  >> Windows 綜合教學 >> 關於 Windows

Windows 防火牆進階配置利器:netsh advfirewall / netsh firewall 指令完整速查與實戰應用

編輯:關於 Windows

Windows 防火牆圖形介面操作繁瑣,netsh 命令列工具提供強大、可腳本化、遠程管理的配置能力。本文整理 netsh firewall (舊版、Win7/Server 2008 仍支援) 與 netsh advfirewall (新版、Vista+ 推薦) 核心指令,助您精準掌控防火牆。

啟動 netsh

Win+R cmd (管理員) → 輸入 netsh 進入互動模式,或直接在 CMD 後接指令 (如 netsh advfirewall show allprofiles)。

netsh firewall (舊版、相容模式) 核心指令

查看配置

指令功能
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 (新版、物件導向、功能完整) 核心指令

結構: 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"

實戰應用場景

  • 批次部署伺服器防火牆規則: 編寫 .bat/.cmd 腳本含上百條 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。

從舊版遷移建議

  • Win7/Server 2008 R2 仍支援 netsh firewall 但**功能受限 (不支援多設定檔獨立規則、無法針對特定介面/邊界類型、無法管理 IPSec/連線安全性規則)**。
  • **全面改用 netsh advfirewall**,功能完整、語法一致、支援所有新特性。
  • PowerShell NetSecurity 模組 (New-NetFirewallRule, Get-NetFirewallRule) 為更現代化、物件導向的替代方案,建議並行學習。

掌握 netsh 防火牆指令,讓防火牆配置從「點點點」進化為「碼碼碼」,實現基礎設施即代碼。

Copyright © Windows教程網 All Rights Reserved