![用于文件传输(SFTP 和 FTP)的出站主机群集](https://linux22.com/image/716976/%E7%94%A8%E4%BA%8E%E6%96%87%E4%BB%B6%E4%BC%A0%E8%BE%93%EF%BC%88SFTP%20%E5%92%8C%20FTP%EF%BC%89%E7%9A%84%E5%87%BA%E7%AB%99%E4%B8%BB%E6%9C%BA%E7%BE%A4%E9%9B%86.png)
我正在尝试设置一组机器,使用 SFTP 和 FTP 处理出站文件传输。鉴于这些连接另一端的固定 IP 白名单要求,我需要集群中的所有服务器看起来像同一台机器(主机/IP 地址)。有人知道设置它的最佳方法吗?机器运行的是 Windows Server 2008 R2 和 Windows Server 2012 R2。
对于进入我环境的入站连接,我有一个使用网络负载平衡器(Brocade Virtual Traffic Manager)的有效解决方案,但对于出站连接,我却陷入困境,因为我的负载平衡器只处理入站连接。虽然我使用第三方软件发起 SFTP 和 FTP 请求,但本质上,我试图使 SFTP 和 FTP 连接看起来像是接收服务器的一个主机/IP,如果我可以在服务层处理它,我应该能够让我的第三方应用程序利用该解决方案。
这是一个已经运行十多年的企业文件传输操作系统,因此联系我们所有的合作伙伴和客户让他们更新防火墙以获取更多/更改的入站连接 IP 地址实际上是行不通的。
有人知道如何实现这个功能吗?我想这应该不是第一次有人遇到这个要求。提前谢谢大家。
答案1
根据您使用 SFTP 或 FTP 进行传输工作的工具,您可能需要研究 SOCKS 代理的主题。
SOCKS 协议旨在促进大多数类型的网络连接的通用代理和强身份验证。有些人将其称为第 4 层代理,因为应用程序可能知道并积极支持使用此类功能。
关于 SOCKS 的文档有很多,但其中一些涉及旧版本 4。检查RFC 1928了解最常用的第 5 版 SOCKS 协议的规范(请注意,这只是传闻)。网络工具使用 SOCKS5 的情况相当普遍,OpenSSH 就是一个常见的例子。
在您的内部网络上运行 SOCKS5 代理,并使用您的合作伙伴和客户知道的 IP 地址进行传出连接,应该可以解决问题。我使用过的大多数 SFTP 和 FTP 工具都支持在配置中的某个位置添加代理。“通用代理”似乎是人们在那里的称呼。
一个流行的代理服务器,其协议实现简洁,是由挪威的 Inferno Nettverk 公司制造的“Dante” (https://www.inet.no/dante/index.html) 并根据 BSD 许可证发布。警告:仅适用于 Linux/Unix。