一个公共 IP 后面有多个 FTP 主机

一个公共 IP 后面有多个 FTP 主机

我有两个盒子。一个是 ubuntu,一个是 Windows。两者都托管 http 和 ftp 站点。之前它们通过不同的 IP 连接到互联网,所以没有问题,但是,现在我们只剩下一个公共 IP,我必须让两台机器都可用,而无需更改端口。

现在,由于两者都处理不同的域,我在 ubuntu 框中添加了一个虚拟主机,该虚拟主机代理反向到所需域上的 Windows 框

然而,当谈到 ftp 时,我很茫然,如何在 ubuntu 框中处理域 A,并推迟域 b 以供 Windows 框处理?

我在 ubuntu 系统上使用 vsftpd,在 Windows 系统上使用 IIS

任何帮助表示感谢

路易斯

答案1

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

或者完全放弃 FTP 并使用 WebDAV,它将允许基于名称的虚拟托管。

答案2

不幸的是,ftp 不像 http 那样支持基于主机名/DNS 的虚拟主机。

因此,如果您必须有两个单独的 ftp 站点,那么我建议您获取一个额外的外部 IP 地址。

如果它们不是匿名 ftp 站点,您可能希望为每个 ftp 用户设置不同的 chroot。

祝你好运。

答案3

嗯,

选项1

您是否尝试过为 FTP 服务器使用 SRV 记录?您需要实施一些 DNS 更改,并且它们必须映射到 FTP 服务器的内部 IP 地址,因此会涉及一些 NAT,但这听起来是可行的方法。来自维基百科

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

并采用以下形式

_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.com 解析为适当的 IP。

坏消息是?并非所有客户端软件都支持 SRV 记录,因此也许

选项 2

您应该使用一个监听端口 21 的代理并根据请求的 DNS 名称将流量转发到适当的 ftp 服务器。

相关内容