故障現象
- 環境:Windows Server 2003 + IIS FTP + Windows 防火牆(已開放 TCP 21)
- CMD `ftp` 連線正常,可 `dir`、`get`
- IE 連線卡在「正在取得資料夾內容」,最終提示「作業逾時」
- CuteFTP 使用 PASV(被動)模式失敗,改用 PORT(主動)模式即正常
核心原理:FTP 兩種連線模式
| 模式 | 資料通道建立方向 | 伺服器端口 | 客戶端端口 | 防火牆視角 |
| PORT(主動) | 伺服器主動連向客戶端 | TCP 20 | >1024 隨機 | Outbound(通常放行) |
| PASV(被動) | 客戶端主動連向伺服器 | >1024 隨機 | >1024 隨機 | Inbound(需額外開放) |
IE 預設使用 PASV 模式;CMD `ftp` 預設使用 PORT 模式。
故障原因釐清
防火牆僅開放 TCP 21(命令通道)。PORT 模式下,伺服器從 TCP 20 發起 Outbound 連線,防火牆預設允許;PASV 模式下,客戶端嘗試連接伺服器隨機高埠(Inbound),被防火牆攔截,導致資料通道無法建立,出現逾時。
解決方案
方案一:伺服器端開放 FTP 服務程式(推薦)
- Windows 防火牆 →「例外」→「新增程式」
- 選擇
%SystemRoot%\system32\ftpd.exe(或 IIS FTP 服務執行檔)
- 勾選後,防火牆將允許該程式所有 Inbound/Outbound 連線,涵蓋 PASV 隨機埠。

方案二:客戶端強制 IE 使用 PORT 模式
- IE →「工具」→「網際網路選項」→「進階」
- 取消勾選「使用被動 FTP(相容防火牆和 DSL 數據機)」
- 重新啟動 IE。

進階建議
- 企業級防火牆(ISA Server、硬體防火牆)需設定 FTP 應用層檢查,動態開放 PASV 埠範圍。
- IIS FTP 可透過 Metabase 限制 PASV 埠範圍(`PassivePortRange`),再於防火牆精準開放該範圍,提升安全性。
- 若用戶環境不可控,建議同時提供 PORT/PASV 雙模式支援,並備妥用戶端設定說明文件。