如何在Azure虚拟机上安装FTP

我需要一些帮助在Azure虚拟机实例上设置FTP。

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

ftp command: open localhost 

我还为configuration为标准端口21的Azure门户上的VMconfiguration了FTP端点。

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

现在,当我尝试从我的家庭计算机上FTP时,我可以看到服务器的公共DNS名称parsing为正确的IP和端口,但不能build立连接。

我错过了某个configuration步骤吗?

谢谢

Ronald Wildenberg 在 2012年7月发表了“ 在Windows Azure虚拟机上的IIS 7.5上托pipeFTP ”的很好的演练。 他回应了大卫的回答 。 这些是他经历的阶段:

  1. 首先,你需要一个虚拟机。 我需要一台带有SQL Server数据库的Windows机器,所以我从可用的模板中select了“Microsoft SQL Server 2012评估版”。
  2. 一旦机器启动,您就可以通过pipe理门户底部的连接选项将其join到RDP中。
  3. 当你在,你需要configurationIIS。 所需步骤的总结:
    • 将“Web服务器(IIS)”angular色添加到服务器。
    • 添加您需要的IISfunction。
    • 在公共和私有端口80的pipe理门户中,将TCP端点添加到您的VM。
  4. 要启用FTP,请确保为您的IISangular色启用“FTP服务器”angular色服务:
  5. 下一步是在IIS中创build实际的FTP站点。 右键单击IISpipe理器中的“站点”,然后select“添加FTP站点…”
  6. 指定网站的名称和本地path:
  7. 指定绑定和SSL信息:
  8. 最后指定谁应该访问FTP站点。
  9. 您现在应该能够从VM内访问FTP站点。 打开命令提示符,键入ftp 127.0.0.1并login
  10. 对于主动FTP,您需要允许访问端口21(FTP命令端口)和20(FTP数据端口),所以您需要将两个端点添加到VM
  11. configuration被动FTP。 为此,我们需要告诉IIS FTP服务器它可以用于数据连接的端口范围,我们需要将端点添加到对应于此端口范围的VM。
  12. configuration被动数据连接的端口范围和外部IP地址。 这可以在IISpipe理器中find
  13. 外部IP地址应该是您可以在Azurepipe理门户中find的虚拟IP地址。
  14. 如果无法在IISpipe理器中指定数据通道端口范围,请使用可在%windir%\system32\inetsrvfind的appcmd实用程序: appcmd set config /section:system.ftpServer/firewallSupport /lowDataChannelPort:7000 /highDataChannelPort:7014
  15. 您可以在Azure门户中指定全部15个新端点,但这需要很长时间,因此请使用Windows Azure Powershell cmdlet 。
  16. 下载发布设置文件。 一种方法是启动Windows Azure Powershell并使用cmdlet“Get-AzurePublishSettingsFile”。 它打开浏览器,并允许您下载与您的Windows Live ID相对应的发布设置文件。
  17. 下载发布设置文件后,可以使用“Import-AzurePublishSettingsFile”cmdlet将其导入,我们准备开始添加端点。
  18. 我简单地创build了一个文本文件,其中包含我想要运行的命令列表,并将其复制到Powershell窗口中: Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM其中“myServiceName”是我的云服务的名称,“ftpportal”是我的虚拟机的名称。
  19. 尽pipeWindows防火墙似乎允许所有需要的通信,但您还需要在防火墙上启用有状态的FTP过滤: netsh advfirewall set global StatefulFtp enable
  20. 重新启动FTP Windows服务,我们应该启动并运行:
    • net stop ftpsvc
    • net start ftpsvc

原创文章中的这些步骤是值得的,不仅仅是因为他包含了每个步骤的有用的截图,而且我认为在这里值得引用。 文章还提到了主动FTP与被动FTP,一个值得一读的明确解释 。

如果能够按照这些步骤进行报告,那么您的Azure基于虚拟机的FTP服务器就能正常工作并且可以访问,这将是非常好的。 但不幸的是,上述步骤并没有解决我的问题 🙁

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

这是我做的,以启用FTP连接到我的虚拟机。

 1. Go to Azure VM (manage.windowsazure.com), and add 2 endpoints: 1. Name: FTP (Protocol TCP, Public Port 21, Private Port 21) 2. Name: FTP Passive (Protocol TCP, Public Port 60000, Private Port 60000) 2. Go back to VM (via RDP), Open connection for port 21, and 60000 on Windows Firewall inbound rule. 3. Download and open FileZilla Server. 4. Click Edit -> Users and add user and shared directory as needed. 5. Click Edit -> Settings. On the sidebar click Passive Mode Settings. 6. Check "use custom port range" and enter 60000 - 60000 7. On ip4specific part, select radio button "use the following ip", and enter your xxxx.cloudapp.net. 8. Save, and run the server. That's it, you can now connect to FTP from outside of VM. 

希望它可以帮助别人。

干杯

经过一段时间,上面的15分名单,我得到了消息MS正试图通过 – “没有(简单)FTP为你”…

于是我回到了那个古老开放的Linux世界 – 用Cygwinbuild立一个SCP服务器。 你甚至得到一个远程shell作为奖金…

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

2)在“select软件包”search

  • cygrunsrv(在“pipe理员”下select一个)
  • openssh(在'Net'下select一个)

3)完成后,启动Cygwinterminal,然后键入:

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

  • cygrunsrv -S sshd

4)从Azure虚拟机添加一个SSH端点

5)在Windows防火墙中,为TCP端口22添join站规则

和中提琴 – 你可以连接使用WinSCP,记事本++和腻子当然…

笔记:

  • Unix是区分大小写的,所以在确切的情况下键入你的用户,例如大写A的Administrator
  • 你的驱动器是在/ cygdrive(c:\是在/ cygdrive / c等)

祝你好运!

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

您需要创build一组input端点,每个input端点代表指定端口范围内的一个端口。 请注意,您的input端点数量有限(不确定确切的数字,但您应该能够轻松打开连续端口中的50个input端点)。 然后设置ftp服务器来使用相同的范围。 另外,您需要将input端点公共端口映射到相同的专用端口号,否则连接将无法正确创build。

dumbledad答案中的链接目前不可用。 按照上面的步骤,我仍然遇到了在新的Azure虚拟机上运行被动FTP的问题。

经过一番search,我发现这篇文章创build了被动FTP和dynamic端口 。 这是一个很好的演练,并提供了一个简单的脚本来运行你的虚拟机,让FTP在一分钟内运行起来。 如果您正在设置多个虚拟机,该脚本是设置FTP访问的更快方式,而不是手动configurationIIS和Azure端点。