開始前先了解
使用已確認可用的管理員及獨立主控台, 先記錄原始規則. 本篇建立的是獨立示範 HTTP 規則, 不修改遠端桌面的端口或登入限制.
本次服務是 Windows Server 2022 上的測試網站, 來源 192.168.50.20 為另一部測試電腦. 正式環境請換成客戶端經過 NAT 後的來源位址與應用程式實際端口, 不照抄私人 IP.
先核對主機目前使用的網路設定檔. 範例為 Public, 並保持預設輸入封鎖. 不關閉整個防火牆, 也不額外建立全來源的明確封鎖規則; 明確封鎖可能優先擋住允許規則.
本系列使用 Windows Server 2022 Datacenter 繁體中文真實操作畫面. 帳號, 網路設定, 磁碟與示範數值請換成自己的環境; 選項名稱可能因版本與語言不同而異.
01先確認服務本機可用
以系統管理員開啟 Windows PowerShell. 先查實際端口是否處於 Listen, 再以 localhost 讀取服務內容. 若沒有監聽或本機已失敗, 先修正程式設定, 開防火牆不會讓未啟動的服務自動出現.
本次 TCP 8080 已監聽, 本機 HTTP 回應為 200 並有預期測試內容. HTTPS 或其他協定請用對應工具驗證, 不把所有端口當成 HTTP.
Get-NetTCPConnection -LocalPort 8080 -State Listen
Invoke-WebRequest http://localhost:8080 -UseBasicParsing
放大圖片
02建立指定來源的允許規則
以下指令只建立一條 TCP 輸入允許規則. 執行前換成您的實際端口, 已驗證來源與適用設定檔. 規則名稱要唯一, 方便之後查核與停用.
LocalPort 是主機上服務的端口, RemoteAddress 是允許連入的來源. 若應用需要 UDP, 應另外評估並建立對應規則, 不因為 TCP 成功便推論 UDP 也已放行.
New-NetFirewallRule -Name 'Tutorial-IIS-8080' `
-DisplayName 'Tutorial-IIS-8080' -Direction Inbound `
-Action Allow -Protocol TCP -LocalPort 8080 `
-RemoteAddress 192.168.50.20 -Profile Public
Get-NetFirewallRule -Name 'Tutorial-IIS-8080'
Get-NetFirewallRule -Name 'Tutorial-IIS-8080' | Get-NetFirewallPortFilter
Get-NetFirewallRule -Name 'Tutorial-IIS-8080' | Get-NetFirewallAddressFilter
放大圖片
03從管理視窗核對來源範圍
執行 wf.msc 開啟 具有進階安全性的 Windows Defender 防火牆. 選左側 輸入規則, 找到剛建立的名稱, 開啟 內容.
在 通訊協定及連接埠 核對 TCP 與 8080, 在 領域 核對遠端 IP 僅列出指定來源, 再於 進階 核對適用設定檔. 同時檢查是否還有同用途的任意來源允許規則, 因為新增狹窄規則不會自動覆蓋既有寬鬆允許.
放大圖片
04從另一部電腦建立全新連線
在允許來源的電腦開啟瀏覽器, 輸入實際主機 IP 與服務端口. 本次以 http://192.168.50.31:8080/ 取得預期網站內容, 不是在主機本機用 localhost 測試.
若仍失敗, 依序查服務綁定位址, Windows 防火牆設定檔, 客戶端實際來源及服務端其他網路規則. 新連線與已存在的連線要分開判斷, 也不要把 TCP 可達等同帳號或應用功能已通過驗證.
放大圖片
05不用時停用規則並再次驗證
示範結束後, 在規則清單選取該規則並按 停用規則, 或執行下方指令. 先停用比直接刪除更便於核對原設定, 正式服務則依維護需求決定是否保留啟用.
本次停用後, 另一部電腦重新建立 HTTP 連線逾時, 而遠端桌面管理通道仍可用. 若停用後仍能連入, 檢查其他重疊允許規則與既有連線, 不直接關閉整個防火牆.
Disable-NetFirewallRule -Name 'Tutorial-IIS-8080'
Get-NetFirewallRule -Name 'Tutorial-IIS-8080' |
Format-Table DisplayName,Enabled,Direction,Action
放大圖片
完成後如何確認
本次實際建立單一來源 TCP 8080 允許規則, 從另一部電腦取得 HTTP 200 與預期內容, 再停用該規則並驗證新連線逾時. 未變更遠端桌面規則.
正式環境仍須依應用程式需求與網路配置調整. 開放服務端口不代表已完成 HTTPS, 身分驗證或應用程式安全設定.
常見問題
為什麼只新增白名單, 其他來源仍能連入?
可能已有同用途的寬鬆允許規則. 核對全部生效規則與設定檔, 新增狹窄允許不會自動取代舊規則. 不用全來源明確封鎖來蓋過白名單.
瀏覽器無法開啟, 是防火牆一定有問題嗎?
不是. 先確認服務本機監聽與內容, 再查來源, 設定檔及其他網路層規則. 服務沒有啟動或只綁定 localhost 也可能造成外部失敗.