反向代理多個內部 FTP 伺服器

反向代理多個內部 FTP 伺服器

我已經使用 Apache mod_proxy 為 http 設定了反向代理,如下所示:

  • 客戶>http://abc.domain1.com>反向代理伺服器>192.168.50.1(內部伺服器)

  • 客戶>http://def.domain2.com/>反向代理伺服器>192.168.50.2(另一個內部伺服器)

現在我想為 FTP 實現同樣的效果:

  • 客戶>ftp:/abc.domain1.com/>反向代理伺服器>ftp:/192.168.50.1(內部FTP伺服器)

  • 客戶>ftp:/def.domain2.com/>反向代理伺服器>ftp:/192.168.50.2(另一個內部FTP伺服器)

兩個內部 FTP 伺服器都運行 vsftpd。請讓我知道 Redhat/Centos 的設定。

原因:我只有一個公共IP可用。

答案1

您可以使用 delegate 作為反向 FTP 代理:

http://www.delegate.org/delegate/Manual.htm?serv_FTP

user@server的使用者名稱被分解為user和server,用於匹配不同的伺服器。

答案2

設定您要找的內容有兩個問題:

  • 與 http 不同,ftp 的反向代理是一種非常罕見的品種,並且現有的反向代理(如舊的 Suse proxysuite)——保持禮貌——設置和使用並不是一件令人愉快的事情。
  • 與 http 1.1 不同,ftp 沒有規定虛擬主機,這意味著伺服器無法看到您想要與之通訊的主機名稱。

以下是兩種相對容易設定的潛在替代解決方案,每種解決方案都有自己的優點和局限性

  1. 在不同的連接埠上為兩個後端伺服器提供服務(例如ftp://abc.domain1.com/ftp://def.domain2.com:8021/。設定非常簡單,不需要反向代理,只需轉送一些額外的連接埠。缺點:其中一個網域必須使用包含連接埠號碼的 URL,這對您來說可能是問題,也可能不是問題。
  2. 粉碎FTP是一個商業但價格合理的 ftp、sftp 等伺服器,可以透過多種方式輕鬆設定為多個後端:
    1. 作為目錄,這將導致像這樣的設置ftp://abc.domain1.com/abcftp://abc.domain1.com/def
    2. 根據使用者設定檔顯示特定後端,因此ftp://abc.domain1.com/根據登入者的不同,看起來會完全不同。

我們選擇方案2是因為在日常操作中它被證明是最靈活可靠的。作為一個額外的好處,它允許您使用 ftp 之外的其他協定來傳輸到後端的流量,例如 sftp。

他們有一個完全可用的演示版本,您可以下載並測試(iirc 它僅限於 5 個並發連接)。

唯一潛在的缺點是:它是一個 Java 程序,因此它的佔用空間(磁碟和記憶體)比常規 ftp 伺服器大。

答案3

就像所說的 fvu 一樣,您不能使用 http 代理來路由 ftp。

最簡單的方法是使用 sftp。但您可以使用 MobaXterm 來完成此操作,這是一款一體化遠端連接軟體,它免費提供許多功能,而且價格更合理。

最後一種繼續方法:建立 1folder/server 並設定 rsync 以僅使用前端作為 ftp。

相關內容