Amazon-Web-Services

aws/pure-ftpd 的被動 ftp 連接問題

  • April 8, 2020

我有一個通過 aws 執行純 ftp 的 centos 伺服器。我已經配置了 PureDB 並添加了一個具有正確權限的使用者。Passive Port Range我在 aws 安全組中打開了入站埠 20/21 和 49152-65534,然後使用pure-ftpd 配置文件中的設置將這些埠映射回 pure-ftpd 。在這個階段,機器上的測試ftp localhost按預期工作;我可以與我的使用者聯繫並列出文件。

現在,當嘗試從我的機器連接到伺服器時,我在伺服器上添加了ForcePassiveIP設置並設置為 aws 實例的公共 ip,然後嘗試連接;ftp <public-ip>. 連接有效,我可以登錄,但 90% 的時間被動連接掛起,僅227 Entering Passive Mode (<public-ip>,<ports>)在我嘗試列出文件時顯示。同樣,嘗試使用 ftp 客戶端上傳新文件將掛起然後失敗:

Response: 227 Entering Passive Mode (<public-ip>,<ports>) Command: MLSD Error: Connection timed out Error: Failed to retrieve directory listing

有誰知道為什麼會發生這種情況?任何幫助將非常感激。

注意:我在具有相同作業系統/設置(減去ForcePassiveIP設置)的 Vagrant 機器上遇到了類似的問題,並且在執行後執行良好modprobe ip_conntrack_ftp,但 aws 伺服器並非如此。

你是否已經用這些參數很好地配置了你的 pure-ftpd 配置文件:

PassivePortRange  49152 65534
ForcePassiveIP AWS_SERVER_PUBLIC_IP

您可以使用以下命令檢查作業系統上允許的埠範圍:

cat /proc/sys/net/ipv4/ip_local_port_range

引用自:https://serverfault.com/questions/641129