Ftp

FTP 被動模式的埠

  • April 8, 2020

我從防火牆埠 21 打開 Google Cloud Engine 上的 FTP,但我只能通過活動模組連接到 FTP。我也想用被動模式。

根據https://stackoverflow.com/questions/24566692/filezilla-ftp-server-fails-to-retrieve-directory-listing埠 50000-55000 必須打開,但我試過了。這個答案不適用於我的情況。當我打開 TCP 的所有埠時,我可以通過被動模式連接,但我不想打開所有埠(或者我需要打開所有埠嗎??)

在這裡我找到了所有埠的東西:

被動模式

在被動模式下,客戶端無法控制伺服器為數據連接選擇的埠。因此,為了使用被動模式,您必須允許到防火牆中所有埠的傳出連接。

我的問題是我需要為被動模式打開所有埠還是可以做其他事情?

系統

作業系統:帶有最新軟體包的 CentOS 7

FTP服務:PureFTPd

更新

當我嘗試使用被動模式時,在卡在檢索文件列表之後,日誌顯示已登錄(我無法發布日誌,因為我的日誌文件不是英文的)

感謝和問候

添加以下內容:

PassivePortRange 50000 55000

/etc/pure-ftpd.conf

我認為你的問題會得到解決。請記住,您的防火牆也應允許此埠範圍。

編輯

引用自這個精彩的來源:

在被動模式 FTP 中,客戶端啟動到伺服器的兩個連接,解決了防火牆過濾從伺服器到客戶端的傳入數據埠連接的問題。在打開 FTP 連接時,客戶端會在本地打開兩個隨機的非特權埠(N > 1023 和 N+1)。第一個埠在埠 21 上與伺服器聯繫,但不是隨後發出 PORT 命令並允許伺服器連接回其數據埠,而是客戶端將發出 PASV 命令。這樣做的結果是伺服器隨後打開一個隨機的非特權埠(P > 1023)並將 P 發送回客戶端以響應 PASV 命令。然後客戶端發起從埠 N+1 到伺服器埠 P 的連接以傳輸數據。

這裡的訣竅是

被動埠範圍 50000 55000

指令將強制 pureFtp 從您之前在防火牆中允許的範圍內選擇隨機埠。

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