在 Windows Server 2008 配置 FTP 站點時,常遇到「能彈出登入視窗,輸入帳密後卡住」或「完全無法連線」現象。明明已在防火牆開放 TCP 21 端口,實則遺漏了 FTP 資料傳輸連接埠的動態協商。核心解法:啟用防火牆 Stateful FTP Inspection(狀態化 FTP 檢查)。
netsh advfirewall set global StatefulFtp enable
netsh advfirewall show global
輸出應包含 StatefulFtp : Enable。
| 規則名稱 | 方向 | 協定 | 本地埠 | 備註 |
|---|---|---|---|---|
| FTP Control | Inbound | TCP | 21 | 命令通道,必開 |
| FTP Data (Active) | Outbound | TCP | 20 | 主動模式資料通道,Server→Client |
| FTP Passive Range | Inbound | TCP | 自訂範圍 (如 5000-5100) | 被動模式需在 IIS FTP 「防火牆支援」設定對應範圍,並此處放行 |
啟用 StatefulFtp 後,主動/被動模式資料連線埠將自動動態放行,無需手動維護大範圍 Inbound 規則。
LIST/DIR/下載上傳卡住。StatefulFtp enable + 固定被動模式埠範圍 + 對應 Inbound 規則 → 企業級標準做法。