我有 4 个 Web 服务器用于不同的任务,它们位于防火墙后面。我有一个公共 IP,我想用这个 IP 通过 FTP 连接到我的服务器。我尝试使用其他端口,但没有结果。
所以我的问题是:是否有可能有一个代理(如 http 中的 apache)可以在正确的服务器上重定向(使用 url、端口或用户名并不重要)。
非常感谢你的回答
PS:我的所有服务器都使用 Debian 7
答案1
您可以为每个 FTP 服务器选择 4 个不同的端口,例如 2112、2113、2114、2115,然后在防火墙中创建端口转发(NAT)规则,如下所示:
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 2112 -j DNAT --to 192.168.1.2:21
iptables -A FORWARD -p tcp -m state --state NEW --dport 2112 -i eth1 -j ACCEPT
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 2113 -j DNAT --to 192.168.1.3:21
iptables -A FORWARD -p tcp -m state --state NEW --dport 2113 -i eth1 -j ACCEPT
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 2114 -j DNAT --to 192.168.1.4:21
iptables -A FORWARD -p tcp -m state --state NEW --dport 2114 -i eth1 -j ACCEPT
iptables -A PREROUTING -t nat -i eth1 -p tcp --dport 2115 -j DNAT --to 192.168.1.5:21
iptables -A FORWARD -p tcp -m state --state NEW --dport 2115 -i eth1 -j ACCEPT
这样,传入的 ftp 连接将根据所使用的端口重定向到正确的服务器。
答案2
简单来说,不是。HHTP 会随每个请求发送主机名,这就是基于名称的虚拟主机之类的东西起作用的原因。
FTP 则不然,因此无法区分传入的 FTP 连接是到 FTP.example.com 还是到 fi FTP.example.net