問題背景:防火牆與檔案共享的「零和博弈」
Windows XP 內建的「網際網路連線防火牆」(ICF,SP2 後更名為 Windows 防火牆) 預設阻擋所有未經請求的入站連線。這雖然保護了主機安全,卻也導致區域網路內的檔案與印表機共享(SMB/CIFS)失效——因為共享服務依賴的 TCP 139/445、UDP 137/138 等連接埠被封鎖。本文提供逐步圖文教學,通過新增「服務」規則精準放行共享所需連接埠,實現「防火牆開啟、共享暢通」的雙贏。
前置準備:共享資料夾權限最小化
在調整防火牆前,請先確保共享資料夾已設定「允許存取的使用者帳號與密碼」,避免「Everyone 完整控制」造成內網橫向移動風險。建議:
- 建立專用共享帳號(如 `shareuser`),設定強密碼。
- 資料夾「安全性」頁面 → 編輯 → 新增該帳號 → 授予「讀取/寫入」必要權限。
- 「共享」頁面 → 共用此資料夾 → 權限 → 移除 Everyone,新增該帳號授予「讀取/變更」。
步驟一:開啟防火牆進階設定
- 控制台 → 網路連線 → 右鍵點選連線至網際網路的介面(或區域連線)→ 內容。
- 切換至「進階」頁籤 → 點選「設定」按鈕 → 彈出「進階設定」對話框。
- 在「服務」頁籤可見預設規則(如遠端桌面、UPnP),但缺少檔案共享規則,需手動新增。
步驟二:新增 TCP 連接埠規則(共 6 條)
點選「新增」→ 在「服務設定」對話框依序填入:
| 服務描述 | 伺服器 IP | 外部連接埠 | 內部連接埠 | 協定 |
| 檔案共享-TCP-135 | 127.0.0.1 | 135 | 135 | TCP |
| 檔案共享-TCP-136 | 127.0.0.1 | 136 | 136 | TCP |
| 檔案共享-TCP-137 | 127.0.0.1 | 137 | 137 | TCP |
| 檔案共享-TCP-138 | 127.0.0.1 | 138 | 138 | TCP |
| 檔案共享-TCP-139 | 127.0.0.1 | 139 | 139 | TCP |
| 檔案共享-TCP-445 | 127.0.0.1 | 445 | 445 | TCP |
說明:
- 「伺服器 IP」填 `127.0.0.1` 表示本機服務;若為 ICS 閘道主機轉發至內網其他電腦,請填該電腦內網 IP。
- 外部/內部連接埠相同,因共享服務不需連接埠轉換。
- 連接埠用途:135 (RPC 端點對應器)、139 (NetBIOS Session Service)、445 (SMB over TCP/IP),136/137/138 為輔助協商連接埠。
步驟三:新增 UDP 連接埠規則(共 6 條)
重複上述操作,將「協定」改選 **UDP**,連接埠號相同:
| 服務描述 | 伺服器 IP | 外部連接埠 | 內部連接埠 | 協定 |
| 檔案共享-UDP-135 | 127.0.0.1 | 135 | 135 | UDP |
| 檔案共享-UDP-136 | 127.0.0.1 | 136 | 136 | UDP |
| 檔案共享-UDP-137 | 127.0.0.1 | 137 | 137 | UDP |
| 檔案共享-UDP-138 | 127.0.0.1 | 138 | 138 | UDP |
| 檔案共享-UDP-139 | 127.0.0.1 | 139 | 139 | UDP |
| 檔案共享-UDP-445 | 127.0.0.1 | 445 | 445 | UDP |
關鍵提醒:UDP 137 (NetBIOS Name Service)、UDP 138 (NetBIOS Datagram Service) 對工作群組環境下的電腦名稱解析、瀏覽服務至關重要,缺一不可。
步驟四:驗證與故障排除
- 完成 12 條規則新增後,點選「確定」關閉所有對話框。
- 在同網段另一台電腦執行 `\\<共享主機IP>` 或 `\\<電腦名>`,應能彈出認證對話框並存取共享資料夾。
- 若仍失敗,依序檢查:
- 「網路連線」→ 區域連線 → 內容 → 「一般」頁確認「Microsoft 網路用戶端」、「檔案和印表機共享」已勾選。
- 服務 `Server` (LanmanServer)、`Workstation` (LanmanWorkstation)、`Computer Browser`、`TCP/IP NetBIOS Helper` 均為「已啟動/自動」。
- 登錄檔 `HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Lsa\ForceGuest` = 0(關閉強制來賓模式,啟用經典認證)。
- 防火牆「例外」頁是否勾選「檔案和印表機共享」(SP2 會自動建立此群組規則,手動新增連接埠規則屬於補充/精細控制)。
進階建議:縮小攻擊面的替代方案
- 僅開放特定子網:若使用第三方防火牆或 SP2 群組策略,可將遠端 IP 限制為 `192.168.1.0/24` 等內網網段。
- 停用 NetBIOS over TCP/IP:純 Windows 2000/XP/2003 環境可在 TCP/IP 進階設定 → WINS 頁勾選「停用 NetBIOS over TCP/IP」,僅保留 TCP 445 (SMB 直接裝載),減少 135/137/138/139 暴露。
- 啟用 SMB 簽署:群組策略 `Microsoft 網路伺服器:數位簽署通訊 (永遠)` = 啟用,防止中間人竄改。
- 考慮升級:Windows XP 已停止支援,建議遷移至受支援作業系統(Windows 10/11、Linux),利用原生防火牆區域(專用/公用)一鍵切換共享策略。
總結
通過在 Windows XP 防火牆「進階設定 → 服務」中手動新增 12 條 TCP/UDP 連接埠規則(135、136、137、138、139、445),可在保持防火牆啟用的前提下完整恢復檔案與印表機共享功能。此做法遵循「最小權限、精準放行」原則,優於直接關閉防火牆或勾選廣泛的「檔案和印表機共享」例外。對於仍須維護 XP 系統的嵌入式/工控場景,配合共享權限最小化、SMB 簽署、IP 範圍限制,可將風險控制在可接受範圍內。