我有 3 台服务器(服务器 1、服务器 2 和服务器 3),它们都安装了 Apache 和 SCP(和/或 FTP 服务器)。这些服务器位于路由器后面。我还有另一台服务器,它有一个公共 IP,用作 Apache 的代理。因此,如果我尝试访问网站 1(托管在服务器 1 上),我的请求将被代理到服务器 1。网站 2 和网站 3 也是如此……现在,我想对 FTP 或 SCP 做同样的事情。这可能吗?例如:如果我在服务器 1、服务器 2 和服务器 3 上安装 FTP 服务器,我可以根据主机名代理我的请求吗?ftp.website1 到服务器 1 上的 ftp 服务器,依此类推……我也可以使用 SCP,没有区别,而且我可以完全访问代理和 3 台服务器。
答案1
最简单的方法是将非标准端口从路由器转发到后端服务器。例如,您可以在路由器上配置以下内容:
Port 10022 -> server1:22
Port 20022 -> server2:22
Port 30022 -> server3:22
然后让您的最终用户在连接时使用适当的端口。例如:
$ sftp -P 10022 username@hostname
这样做还有一个好处,就是通过隐蔽性来实现安全性。暴力破解 ssh 的机器人很少会连接到端口 22 以外的任何端口。