FTP 連線成功卻無法列出目錄(LIST 指令卡住、逾時),九成以上是「被動模式(PASV)資料連接埠被防火牆封鎖」導致。本文解析 FTP 主動/被動模式原理,並針對 FlashFXP、CuteFTP、LeapFTP 三大主流客戶端提供關閉 PASV、改用主動模式(PORT)的圖文設定步驟,快速恢復目錄列表功能。
核心原因:資料通道建立失敗
- 主動模式(PORT):Client 告知 Server「我開了 Port X,請主動連回來傳資料」。適合 Client 無防火牆、Server 可主動對外連線的環境。
- 被動模式(PASV):Server 告知 Client「我開了 Port Y,請你主動連過來傳資料」。適合 Server 後方有防火牆、Client 可主動發起連線的環境(現代預設)。
若 Server 端防火牆僅開放指令通道(Port 21),未開放 PASV 資料通道範圍(預設隨機高埠),Client 使用 PASV 時將無法建立資料連線,導致「登入成功、目錄空白/卡住」。
快速解法:客戶端改用主動模式(PORT)
若無法調整 Server 防火牆(如虛擬主管、受管主機),最快方式是強制客戶端使用 PORT 模式。
FlashFXP 2.0+
- 選單「選項」→「參數選擇」→「Proxy/Firewall/Ident」。
- 取消勾選「使用被動模式」。
CuteFTP 3.5 英文版
- 選單「FTP」→「Settings」→「Options」→「Firewall」。
- 取消勾選「PASV mode」。
CuteFTP 3.5 中文版
- 選單「FTP」→「設定」→「選項」→「防火牆」。
- 取消勾選「PASV 方式 (A)」。
LeapFTP 2.7.2
- 選單「Sites」→「Site Manager」→「Advanced」。
- 取消勾選「Use PASV mode」。
進階方案(若可控制 Server)
- 在 FTP Server(如 IIS FTP、FileZilla Server、vsftpd)設定固定 PASV 埠範圍(例:50000-50100)。
- 防火牆開放該埠範圍輸入規則。
- FTP Server 設定「外部 IP 位址」(若在 NAT 後方),確保回應 Client 時傳送正確公網 IP。
驗證步驟
- 切換模式後,重新連線 FTP。
- 執行
dir / ls,確認目錄即時顯示。
- 上傳/下載測試檔案,確認資料傳輸正常。
FTP 目錄列表失敗多半是模式不匹配。依據網路拓撲選擇 PORT 或 固定 PASV 埠,即可徹底解決「連得上、列不出」的困擾。