2012-12-07

FTP 被動模式發生「無法取得目錄列表」

FTP 伺服器連線分為主動模式 (active) 與被動模式(passive)。兩種方式的連線原理可參考這篇文章
FTP 的主動模式( active )和被動模式( passive )

本文主要說明當連線 FTP 伺服器發生「無法取得目錄列表」(Opening data connection for directory list ) 目錄時的原因,例如以 Filezilla 連線時得到回應
image

1. 當 FTP 伺服器以預設 port 21 架設時,基本上不會發生「無法取得目錄列表」問題。此時連線主要經過 port 20 與 21。
(注意伺服器檔案輸出由 port 20)

2. 當 FTP 伺服器以非 port 21 架設時,大多會發生「無法取得目錄」問題!關鍵在於伺服器檔案輸出不再由 port 20,而可能是利用連接埠範圍 55536 ~ 56559 (被動模式的輸出預設範圍)。因此伺服器需將防火牆或路由轉址開放出此段範圍,否則便會發生「無法取得目錄列表」的現象!

1 則留言:

Ader Lee 提到...

跟ftp服務port是否設21無關
data port 20是active mode
若client選passive mode,則預設data port是55536-56559