如何在Azure VM上设置FTP

时间:2013-08-24 19:37:35

标签: iis azure ftp iis-7.5 ftp-client

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

VM是Win Server 2012 R2。我已经设置了Web服务器角色并在IIS中创建了一个FTP站点。我已确认可以使用

访问FTP服务器
ftp command: open localhost

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

最后,我已经打开了一个防火墙规则,允许所有流量进出端口21。

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

我错过了某处的配置步骤吗?

由于

5 个答案:

答案 0 :(得分:62)

2012年7月Hosting FTP on IIS 7.5 in a Windows Azure VM'Ronald Wildenberg'对此进行了一次精彩的演练。David's answer他回应Windows Azure Powershell cmdlets。这是他经历的阶段:

  1. 首先,您需要一台虚拟机。我需要一台带有SQL Server数据库的Windows机器,所以我从可用的模板中选择了“Microsoft SQL Server 2012评估版”。
  2. 一旦机器启动,您可以通过管理门户底部的连接选项进行RDP。
  3. 当您进入时,需要配置IIS。所需步骤的摘要:
    • 将“Web服务器(IIS)”角色添加到服务器。
    • 添加所需的IIS功能。
    • 使用公共和专用端口80在管理门户中为您的VM添加TCP端点。
  4. 要启用FTP,请确保为IIS角色启用“FTP服务器”角色服务:
  5. 下一步是在IIS中创建实际的FTP站点。右键单击IIS管理器中的“站点”,然后选择“添加FTP站点...”
  6. 指定站点的名称和本地路径:
  7. 指定绑定和SSL信息:
  8. 最后指定谁应该有权访问FTP站点。
  9. 您现在应该可以从VM中访问FTP站点。打开命令提示符,键入ftp 127.0.0.1并登录
  10. 对于活动FTP,您需要允许访问端口21(FTP命令端口)和20(FTP数据端口),因此您需要向VM添加两个端点
  11. 配置被动FTP。为此,我们需要告诉IIS FTP服务器它可用于数据连接的端口范围,我们需要将端点添加到与该端口范围对应的VM。
  12. 配置被动数据连接的端口范围和外部IP地址。这可以在IIS管理器
  13. 中找到
  14. 外部IP地址应该是您可以在Azure管理门户中找到的虚拟IP地址。
  15. 如果您无法在IIS管理器中指定数据通道端口范围,请使用appcmd实用程序,该实用程序可在%windir%\system32\inetsrv中找到:appcmd set config /section:system.ftpServer/firewallSupport /lowDataChannelPort:7000 /highDataChannelPort:7014
  16. 您可以在Azure门户中指定所有15个新端点,但这需要很长时间才能使用in the original article
  17. 下载发布设置文件。一种方法是启动Windows Azure Powershell并使用cmdlet“Get-AzurePublishSettingsFile”。它会打开一个浏览器,允许您下载与您的Windows Live ID对应的发布设置文件。
  18. 下载发布设置文件后,可以使用“Import-AzurePublishSettingsFile”cmdlet导入它,我们已准备好开始添加端点。
  19. 我只是创建了一个文本文件,其中包含我想要运行的命令列表并将其复制到Powershell窗口中:Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM其中'myServiceName'是我的云服务的名称,'ftpportal'是其名称我的虚拟机。
  20. 虽然Windows防火墙似乎允许所有需要的流量,但您还需要在防火墙上启用有状态FTP过滤:netsh advfirewall set global StatefulFtp enable
  21. 重新启动FTP Windows服务,我们应该启动并运行:
    • net stop ftpsvc
    • net start ftpsvc
  22. 值得遵循这些步骤Active FTP vs. Passive FTP, a Definitive Explanation,尤其是因为他为每个步骤提供了有用的屏幕截图,但我认为值得在这里广泛引用。文章还提到the steps above did not fix it for me值得一读。

    如果我能按照这些步骤报告您的基于Azure VM的FTP服务器将正常工作并且可访问,那将是非常棒的。但不幸的是{{3}}: - (

答案 1 :(得分:7)

如果您不介意使用FileZilla FTP Server,

这就是我所做的,启用与我的VM的FTP连接。

m

希望它有所帮助。

干杯

答案 2 :(得分:3)

在用上面的15点列表分散一段时间之后,我收到了MS试图通过的消息 - “没有(简单)FTP给你”...

所以我回到了古老的&打开Linux世界 - 使用Cygwin设置SCP服务器。 你甚至可以获得一个远程shell作为奖励...

1)运行Cygwin安装程序 - https://cygwin.com/setup-x86.exe

2)在“选择包”中搜索

  • cygrunsrv(选择'Admin'下的那个)
  • openssh(选择'Net)下的那个

3)完成后,启动Cygwin终端,然后输入:

  • ssh-host-config -y -pwd S0me-Str0ng-pa55w0rd

  • cygrunsrv -S sshd

4)从Azure VM添加SSH端点

5)在Windows FireWall中,为TCP端口22添加入站规则

中提琴 - 当然可以使用WinSCP,Notepad ++和Putty进行连接......

注意:

  • Unix区分大小写,因此请在准确的情况下键入您的用户,例如资本为A的管理员
  • 您的驱动器位于/ cygdrive(c:\位于/ cygdrive / c等)
祝你好运!

答案 3 :(得分:1)

您需要添加一个额外的端口范围,ftp服务器将为每个ftp连接选择。

您需要创建一堆输入端点,每个端点代表指定端口范围中的一个端口。请注意,您具有有限数量的输入端点(不确定确切的数字,但您应该可以轻松地打开,例如,连续端口中的50个输入端点)。然后只需设置ftp服务器即可使用相同的范围。此外,您还希望将输入端点公共端口映射到相同的专用端口号,否则将无法正确创建连接。

答案 4 :(得分:1)

dumbledad's answer中的链接目前无法使用。按照那里的步骤,我仍然遇到在新的Azure VM上运行被动FTP的问题。

经过一番搜索后,我发现了这篇文章Passive FTP and dynamic ports。这是一个很棒的演练,它提供了一个简单的脚本,可以从您的VM运行,以便在一分钟内启动并运行FTP。如果您要设置多个VM,则脚本是设置FTP访问的更快捷方式,而不是手动配置IIS和Azure端点。

相关问题