当前位置: 首页 > 知识库问答 >
问题:

Azure虚拟机上的活动FTP

杨豪
2023-03-14

我在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个endpoint,而不指向探测端口,而且windows防火墙允许外部连接到20和21个VM端口。

我不明白为什么主动模式不工作,而被动模式工作正常。

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

请问是否有人已成功在azure VM中设置活动ftp?。

共有2个答案

程鸿畅
2023-03-14

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

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

在被动模式下,客户机与服务器之间存在明显的区别,即客户机启动与服务器的连接。被动模式是推荐的,所以如果你有工作,我会坚持下去。

郎弘业
2023-03-14

之前的回复不正确。https://stackoverflow.com/a/20132312/5347085

我之所以知道这一点,是因为我广泛地与Azure支持部门合作。问题与服务器无法连接到客户端无关,我的测试方法排除了客户端问题的可能性。

在使用Azure支持两周后,他们对问题的评估基本上是“活动模式FTP在从客户端到服务器的数据通道中使用一系列大范围的随机端口。只能向Azure VM添加150个终结点,因此无法添加所有这些端口并使Active FTP 100%工作。为了做到这一点,您需要使用“实例级公共IP”,并基本上绕过endpointhtml" target="_blank">机制,将虚拟机直接放在互联网上,完全依赖本地操作系统防火墙进行保护。

如果您必须在Azure上使用活动模式FTP,并且可以将虚拟机置于公共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客户端配置的。我们的测试结果与您的体验相同。我们能够登录到服务器,但是我们得到相同的命令端口/列表失败。

正如我们前面讨论的,活动FTP在客户端为数据平面使用随机端口。服务器通过21和20连接,但传入端口是随机临时端口。在被动FTP中,这是可以定义的,因此可以为数据平面的一部分使用的每个端口创建endpoint。

基于我们昨天的广泛测试,我不希望有任何其他主动FTP解决方案能够工作。昨天协助的升级工程师也与他的团队的其他成员讨论了这一点,他们没有在Azure中看到任何成功的活动FTP部署。

总之,我们的测试证实了我最初的想法,目前Active FTP在Azure环境中无法工作。我们一直在努力改进Azure的产品,因此随着我们的不断发展,这可能是未来可行的方法。

如果要在Azure中托管此FTP服务器,则需要移动到被动FTP设置。

 类似资料:
  • 当部署模板验证失败时,我的代码中出现了一个错误:行105和列9处的模板资源myVMć无效:模板函数reourceId无效。使用详情请看https://aka.ms/arm-template-expressions。使用详情请见https://aka.ms/arm-template-expressions。(代码:InvalidTemboard)。 我已经尝试解决这个错误但我不会 } 结果是,这将使

  • 我在 Azure 虚拟机上安装 Docker 时遇到错误。 m/c 配置:Azure vm、Windows 10 企业版、英特尔 2.4 GHz、7 GB RAM、64 位操作系统、基于 x64 的处理器。我浏览了几个博客,他们要求我在 azure vm 上启用嵌套虚拟化,如下所示。 设置VMProcessor-VMName MobyLinuxVM-ExposeVirtualizationExte

  • 要部署我的架构体系,我需要部署一个具有自定义脚本扩展的VM。VM的唯一目的是执行脚本。脚本执行后,VM应该会自动删除。 如何做到这一点? 其他信息: 这是azure资源管理器部署 删除操作也应该在azure marketplace环境中起作用

  • 在Azure中,有2个选项可用于创建虚拟机。A、 普通VM B.经典VM 有人知道这两种选择有什么区别吗?我们什么时候使用一个而不是另一个?

  • 查看虚拟机相关的监控告警信息。 监控菜单下的虚拟机页面主要用于查看虚拟机相关的监控告警信息。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “监控/资源/虚拟机” 菜单项,进入虚拟机页面。 查看虚拟机列表 该功能用于查看虚拟机的监控告信息。 在虚拟机页面,支持查看以下信息: 名称:虚拟机的名称。 IP:虚拟机的IP地址。 监控状态:虚拟机是否设置告警以及发生告警。 状态:虚拟机的当

  • 主机回收站用于存放用户删除的虚拟机和裸金属文件。 主机回收站用于存放用户删除的虚拟机和裸金属文件。回收站中主机文件默认保存3天,如有误删除的主机需要在3天内进行恢复操作,可以将其恢复到原来位置,超过3天后,文件将被彻底删除。 入口:在云管平台单击左上角导航菜单,在弹出的左侧菜单栏中单击 “主机/回收站/主机” 菜单项,进入主机回收站列表。 清除 当确定回收站中的主机无用后,可使用清除功能立即彻底删