多个FTP主机在一个公共IP之后

我有两个盒子 一个Ubuntu和一个Windows两个主机的HTTP和FTP站点之前,他们通过不同的IP连接到互联网,所以没有任何问题,但是,我们现在只有一个公共IP,我必须使这两台机器availlable没有changin端口。

现在,既处理不同的域名,我已经在ubuntu中添加了一个虚拟主机,该虚拟主机代理反向到所需域上的Windows盒子

但是,当涉及到ftp我不知所措如何处理在ubuntu框中的域A,并推迟域b由Windows窗口框处理?

我在ubuntu中使用vsftpd,在Windows中使用IIS

任何帮助赞赏

路易斯

不幸的是,ftp不支持http方式的基于主机名/ DNS的虚拟主机。

所以,如果你必须有两个单独的ftp站点,那么我build议获得一个额外的外部IP地址。

如果他们不是匿名的ftp站点,你可能会为每个ftp用户使用不同的chroot。

祝你好运。

一个解决方法是让其中一个盒子处理所有FTPstream量,其中一个用户上传到本地文件系统,另一个用户从另一个服务器导出文件共享。

或者将FTP一起使用并使用WebDAV,这将允许基于名称的虚拟主机。

嗯,

选项1

你有没有尝试使用SRVlogging为您的FTP服务器? 你需要实现一些DNS更改,而且他们必须映射到FTP服务器的内部IP地址,所以会涉及一些NAT,但是这听起来像是要走的路。 维基百科 :

A Service record (SRV record) is a specification of data in the Domain Name System defining the location, ie the hostname and port number, of servers for specified services. 

并采取的forms

 _service._proto.name. TTL class SRV priority weight port target. 

所以对于你我会做类似的事情

 _ftp._tcp.ftp1.example.com. 3600 IN 0 1 21 ftpserver1.example.com 

当然,有一些方法可以将ftpserver1.example.comparsing到适当的IP中。

坏消息? 不是每个客户端软件都支持SRVlogging,所以也许

选项2

您应该使用侦听端口21的代理,并根据请求的DNS名称将stream量转发到相应的ftp服务器。