我正在嘗試在我的 EC2 執行個體上設定 VSFTPD 被動託管。我瀏覽了這些說明http://www.synergycode.com/knowledgebase/blog/item/ftp-server-on-amazon-ec2。然而,當我嘗試在 FileZilla 中連接時,我得到了
- 指令:CWD /home/lingiii/ftp
- 回應:250 目錄已成功更改。
- 命令:類型 I
- 回應:200 切換到二進位模式
- 指令:PASV
- 反應:227 進入被動模式 (10,222,206,33,54,184)。
- 狀態:伺服器發送了帶有不可路由位址的被動回應。使用伺服器位址代替。
- 指令:列表
- 錯誤:連線逾時
- 錯誤:無法檢索目錄列表
其中目錄 /home/lingiii/ftp 設定為使用者 lingiii、群組開發人員(其中 lingiii 是成員)的 wrx 權限,並且我以使用者 lingiii 身分登入。
有什麼建議嗎?
答案1
正如 @cyberx86 所說,vsftpd 正在發送執行個體的內部 IP 位址作為客戶端必須連接到的位址以回應命令PASV
,但客戶端無法連接到該位址,因為它不在 EC2 內部運作。您需要使用pasv_address
設定選項告訴 vsftpd 實例的公用 IP 是什麼。
答案2
還有另一種失敗,不是這個失敗,但可能類似。如果您以 PASSIVE 模式連接,並且可以連接到伺服器,但目錄清單失敗。這可能是因為 vsftpd.conf 中指定的連接埠範圍未在 EC2 執行個體中開啟而導致。您需要進入AWS EC2控制台管理面板來開啟連接埠。
有關更多詳細信息,請參閱http://www.pixelstech.net/article/1422865204-Install-and-setup-vsftpd-on-AWS-server