FTP 被動模式的埠
我從防火牆埠 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 從您之前在防火牆中允許的範圍內選擇隨機埠。