之前的回答是不正确的。 https://stackoverflow.com/a/20132312/5347085
我知道这一点,因为我广泛使用 Azure 支持。该问题与服务器无法连接到客户端无关,我的测试方法消除了客户端问题的可能性。
在与 Azure 支持合作 2 周后,他们对问题的评估基本上是“主动模式 FTP 使用一系列随机端口从大范围内用于从客户端到服务器的数据通道。您只能将 150 个端点添加到 Azure VM,因此您不可能添加所有这些端口并让 Active FTP 工作 100%。为了做到这一点,您需要使用“实例级公共 IP”并基本上绕过端点机制,将您的虚拟机直接放在互联网上,并完全依赖本机操作系统防火墙进行保护。
如果您必须在 Azure 上使用 Active Mode FTP 并且可以将您的 VM 放在公共 IP 上,他提供了以下链接:
https://azure.microsoft.com/en-us/documentation/articles/virtual-networks-instance-level-public-ip/
更新: 来自 Azure 支持的官方回复:
乔希,
首先感谢您对此的耐心。正如我在上一封电子邮件中提到的,我正在与我们的技术顾问合作,他们是支持升级工程师,以在 Azure 中重现此环境。我们的测试是使用 WS_FTP 7.7(您的版本 7.1)和 WS_FTP 12 客户端以及 Windows FTP 客户端配置的。我们的测试结果与您的体验相同。我们能够登录到服务器,但我们得到相同的命令端口/列表失败。
正如我们之前所讨论的,Active FTP 使用随机端口作为客户端的数据平面。服务器通过 21 和 20 连接,但传入端口是一个随机的临时端口。在被动 FTP 中,可以定义这一点,因此可以为您用于部分数据平面的每个端口创建端点。
根据我们昨天的广泛测试,我不希望任何其他 Active FTP 解决方案能够工作。 昨天协助的升级工程师也与他团队的其他成员讨论了这个问题,他们没有看到 Azure 中任何成功的 Active FTP 部署。
总之,我的初步想法已经通过我们的测试得到证实,此时 Active FTP 将无法在 Azure 环境中运行。 我们一直在努力改进 Azure 的产品,因此随着我们的不断发展,这可能会在未来发挥作用。
如果要
在 Azure 中托管此 FTP 服务器,则需要迁移到被动 FTP 设置。