如何在Azure VM上设置FTP

Chi*_*ago 40 iis ftp ftp-client azure iis-7.5

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

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

ftp command: open localhost
Run Code Online (Sandbox Code Playgroud)

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

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

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

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

谢谢

dum*_*dad 62

Ronald Wildenberg撰写的 2012年7月" Windows Azure VM中IIS 7.5托管FTP "中可以看到一个很棒的演练 .他回应了大卫的回答.这些是他经历的阶段:

  1. 首先,您需要一台虚拟机.我需要一台带有SQL Server数据库的Windows机器,所以我从可用的模板中选择了"Microsoft SQL Server 2012评估版".
  2. 机器启动后,您可以通过管理门户底部的连接选项进行RDP.
  3. 当您进入时,您需要配置IIS.所需步骤的摘要:
    • 将"Web服务器(IIS)"角色添加到服务器.
    • 添加所需的IIS功能.
    • 使用公共和专用端口80在管理门户中将VM端点添加到VM.
  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. 外部IP地址应该是您可以在Azure管理门户中找到的虚拟IP地址.
  14. 如果无法在IIS管理器中指定数据通道端口范围,请使用appcmd实用程序,该实用程序可在以下位置找到%windir%\system32\inetsrv: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. 我只是创建了一个文本文件,其中包含我想要运行的命令列表并将其复制到Powershell窗口中:Get-AzureVM -ServiceName 'myServiceName' -Name 'ftpportal' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM其中'myServiceName'是我的云服务的名称,'ftpportal'是我的虚拟机的名称.
  19. 虽然Windows防火墙似乎允许所有需要的流量,但您还需要在防火墙上启用有状态FTP过滤: netsh advfirewall set global StatefulFtp enable
  20. 重新启动FTP Windows服务,我们应该启动并运行:
    • net stop ftpsvc
    • net start ftpsvc

值得在原始文章中执行这些步骤,因为他为每个步骤提供了有用的屏幕截图,但我认为值得在这里广泛引用.文章还提到了主动FTP与被动FTP,一个明确的解释值得一读.

如果我能够在执行这些步骤后报告您的基于Azure VM的FTP服务器将正常工作并且可以访问,那将会很棒.但不幸的是,上面的步骤并没有解决它 :-(

  • 添加每个端点后使用"Update-AzureVM"非常无效且速度慢.应该添加所有端点并仅调用一次更新.请参阅我的示例:http://winscp.net/eng/docs/guide_azure_ftps_server#firewall (2认同)

dex*_*ell 8

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

这是我做的,启用FTP连接到我的VM.

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.
Run Code Online (Sandbox Code Playgroud)

希望它可以帮助某人.

干杯