3

我在 Azure windows server 2012 虚拟机上的 IIS 8.0 中设置了 FTP。

按照这篇文章中的说明(http://itq.nl/walkthrough-hosting-ftp-on-iis-7-5-a-windows-azure-vm-2/)我已经能够使FTP工作在被动模式下很好,但在尝试从 FileZilla 以主动模式连接时失败。FTP 客户端可以在主动模式下连接到服务器,但在尝试执行 LIST 命令时失败并显示超时错误消息。

我仔细修改了 azure vm 中设置的 20 和 21 个端点,没有指向探测端口,并且 Windows 防火墙允许外部连接到 20 和 21 个 VM 端口。

我无法弄清楚为什么主动模式不起作用而被动模式工作正常。

我知道还有其他用户有一些问题。

请问有人在azure VM中成功设置了活动ftp吗?

4

2 回答 2

4

之前的回答是不正确的。 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 设置。

于 2015-09-17T15:19:04.320 回答
0

使用活动 ftp 时,客户端会启动到 FTP 服务器上的 21 端口的连接。这是命令或控制通道,此连接通常会成功。但是,FTP 服务器随后会尝试打开客户端上的端口 20。这是数据通道。该通道用于所有数据传输,包括目录列表。

因此,在您的情况下,活动 FTP 无法正常工作,因为服务器无法启动与客户端的连接。这是服务器(出站防火墙规则)或客户端本身的问题。这通常是一件好事,因为您不希望基于 Internet 的服务器能够在客户端计算机上打开连接。

在被动模式下,客户端发起与服务器的连接有明显的客户端/服务器区别。建议使用被动模式,所以如果你能正常工作,我会坚持下去。

于 2013-11-21T21:30:12.817 回答