反向代理多个内部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服务器)

  • Client > ftp:/def.domain2.com/ >反向代理服务器> ftp:/192.168.50.2(另一个内部FTP服务器)

两个内部FTP服务器都在运行vsftpd。 请让我知道Redhat / Centos的设置。

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

有两个问题来设置你正在寻找的东西:

  • 与http不同的是,ftp的反向代理是一个相当稀有的品种,而那些存在的(比如老的Suse proxysuite)是 – 保持礼貌 – 并不是一个真正的快乐build立和使用。
  • 与http 1.1不同,ftp没有虚拟主机的规定,这意味着服务器不能看到你要和之通话的主机名。

这里有两个可能的替代解决scheme相对容易设置,每个解决scheme都有自己的优点和局限性

  1. 服务于不同端口上的两个后端服务器(例如: ftp : //abc.domain1.com/和ftp://def.domain2.com:8021/) ,非常容易设置,不需要反向代理,只需要一些额外的端口缺点:其中一个域名将不得不使用包括端口号在内的url,这对您而言可能是问题,也可能不是问题。
  2. CrushFTP是一个商业化的,价格合理的服务器,可以很容易地设置为多个后端的多种方式:ftp,sftp等。
    1. 作为目录,这将导致像ftp://abc.domain1.com/abc和ftp://abc.domain1.com/def这样的设置。
    2. 根据用户configuration文件显示特定的后端,因此ftp://abc.domain1.com/看起来完全不同,具体取决于谁login。

我们select了选项2,因为在日常运营中它被certificate是最灵活可靠的。 作为一个额外的好处,它允许你使用其他的协议,而不是FTP到后端的stream量,例如sftp。

他们有一个完整的工作演示版本,你可以下载和testing(iirc它被限制为5个并发连接)。

只有潜在的缺点:它是一个Java程序,所以它的占用空间(包括磁盘和内存)比普通的ftp服务器要大。

像说的fvu你不能使用你的HTTP代理路由FTP。

最简单的方法是使用sftp。 但是你可以使用MobaXterm,这是一个全function的远程连接软件,它提供了许多免费的function,而且价格也是正确的。

最后一种方法:创build1文件夹/服务器,并设置rsync只使用前端作为FTP。

您可以使用委托作为反向FTP代理:

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

作为用户@服务器的用户名被分解成用户和服务器并用于匹配不同的服务器。