iis - 如何在 Azure VM 上设置 FTP

标签 iis azure ftp iis-7.5 ftp-client

我需要一些帮助来在我的 Azure VM 实例上设置 FTP。

虚拟机是 Windows Server 2012 R2。我已经设置了 Web 服务器角色并在 IIS 中创建了一个 FTP 站点。我已经确认我可以访问 FTP 服务器

ftp command: open localhost

我还在为标准端口 21 配置的 Azure 门户上为 VM 配置了一个 FTP 端点。

最后,我创建了一个防火墙规则以允许所有流量进出端口 21。

现在,当我尝试从我的家用计算机 FTP 到它时,我可以看到服务器公共(public) DNS 名称正在解析为正确的 IP 和端口,但无法建立连接。

我在某处缺少配置步骤吗?

谢谢

最佳答案

从 2012 年 7 月开始有一个很棒的演练'Hosting FTP on IIS 7.5 in a Windows Azure VM ' 作者 Ronald Wildenberg对这个。他附和David's answer .这些是他经历的阶段:

  • 首先,你需要一个虚拟机。我需要一台带有 SQL Server 数据库的 Windows 机器,因此我从可用模板中选择了“Microsoft SQL Server 2012 评估版”。
  • 机器启动后,您可以通过管理门户底部的连接选项进行 RDP 访问。
  • 当你进入时,你需要配置 IIS。所需步骤的摘要:
  • 将“Web 服务器 (IIS)”角色添加到服务器。
  • 添加您需要的 IIS 功能。
  • 在管理门户中使用公共(public)和专用端口 80 将 TCP 端点添加到您的 VM。
  • 要启用 FTP,请确保为您的 IIS 角色启用“FTP 服务器”角色服务:
  • 下一步是在 IIS 中创建实际的 FTP 站点。在 IIS 管理器中右键单击“站点”并选择“添加 FTP 站点...”
  • 指定站点的名称和本地路径:
  • 指定绑定(bind)和 SSL 信息:
  • 最后指定谁应该有权访问 FTP 站点。
  • 您现在应该能够从 VM 中访问 FTP 站点。打开命令提示符,输入 ftp 127.0.0.1并登录
  • 对于事件 FTP,您需要允许访问端口 21(FTP 命令端口)和 20(FTP 数据端口),因此您需要向 VM 添加两个端点
  • 配置被动 FTP。为此,我们需要告诉 IIS FTP 服务器它可以用于数据连接的端口范围,并且我们需要向 VM 添加与此端口范围相对应的端点。
  • 配置被动数据连接的端口范围和外部 IP 地址。这可以在 IIS 管理器
  • 中找到。
  • 外部 IP 地址应该是可以在 Azure 管理门户中找到的虚拟 IP 地址。
  • 如果您无法在 IIS 管理器中指定数据 channel 端口范围,请使用 appcmd 实用程序,该实用程序可在 %windir%\system32\inetsrv 中找到。 : appcmd set config /section:system.ftpServer/firewallSupport /lowDataChannelPort:7000 /highDataChannelPort:7014
  • 您可以在 Azure 门户中指定所有 15 个新端点,但这需要很长时间,因此请使用 Windows Azure Powershell cmdlets .
  • 下载发布设置文件。一种方法是启动 Windows Azure Powershell 并使用 cmdlet 'Get-AzurePublishSettingsFile'。它会打开一个浏览器并允许您下载与您的 Windows Live id 对应的发布设置文件。
  • 下载发布设置文件后,您可以使用“Import-AzurePublishSettingsFile”cmdlet 将其导入,我们就可以开始添加端点了。
  • 我只是创建了一个包含我想要运行的命令列表的文本文件,并将其复制到 Powershell 窗口中:Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM其中“myServiceName”是我的云服务的名称,“ftpportal”是我的虚拟机的名称。
  • 尽管 Windows 防火墙似乎允许所有需要的流量,但您还需要在防火墙上启用状态 FTP 过滤:netsh advfirewall set global StatefulFtp enable
  • 重新启动 FTP Windows 服务,我们应该可以启动并运行:
  • net stop ftpsvc
  • net start ftpsvc

  • 值得遵循这些步骤in the original article尤其是因为他为每个步骤都提供了有用的屏幕截图,但我认为值得在这里广泛引用以防万一。文章还提到Active FTP vs. Passive FTP, a Definitive Explanation值得一读。

    如果我能报告在执行这些步骤后,您的基于 Azure VM 的 FTP 服务器将正常工作并且可以访问,那就太好了。但不幸的是the steps above did not fix it for me :-(

    关于iis - 如何在 Azure VM 上设置 FTP,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/18422391/

    相关文章:

    php - 将 Silverlight 与 PHP 集成

    azure - 使用 COPY 通过 Azure ARM 模板创建多个 ACI 时出错

    azure - 如何查询Azure Data Lake?

    bash - lftp 可以跟随符号目录吗?

    php - 如何停止从生产服务器访问管理面板

    iis - 从我的域发送电子邮件需要什么

    asp.net-mvc - 仅在应用程序池回收后 MVC 应用程序上的 CheckVirtualFileExists 异常

    c# - 从 Instrumentation Key 切换到连接字符串后,Application Insights Azure 中的 StackTrace 中不再显示异常

    linux - SUSE Linux 中的 ftp 输出重定向问题

    ftp - 如果我使用 DOS put 命令来 ftp 文件,它是否会覆盖现有文件、附加到该文件或导致错误?