Azure上的VM - 被动FTP无法正常工作

时间:2013-06-14 05:38:19

标签: azure ftp azure-virtual-machine

我已在多个网站(http://blogs.thesitedoctor.co.uk/tim/Trackback.aspx?guid=e81a4682-0851-490b-a3d2-adf254a701e7http://www.itq.nl/blogs/post/Walkthrough-Hosting-FTP-on-IIS-75-in-Windows-Azure-VM.aspx以及Passive FTP on Windows Azure Virtual Machine)上尝试了这些建议,但这样做无效。

FTP主动和被动都可以从VM工作到自身。 FTP活动来自外部世界。 FTP被动失败,服务器响应“550网络连接被本地系统中止”(此消息在SYN数据包发送到其中一个动态端口后立即在控制通道/端口21上返回)。

我做了什么:

1)在具有FTP站点的VM上配置IIS

2)将FTP防火墙支持IP地址设置为Azure VM实例的公共IP地址(为了它的价值,我也尝试将此字段清空并尝试使用私有IP地址,但它们都不起作用)

3)设置FTP控制(TCP / 21),FTP数据(TCP / 20)和FTP动态端口(7000到7003)的端点

4)使用appcmd.exe设置FTP的端口范围(即%windir%\ system32 \ inetsrv \ appcmd set config /section:system.ftpServer/firewallSupport / lowDataChannelPort:7000 / highDataChannelPort:7003)

5)重启FTP服务器(net stop ftpsvc和net start ftpsvc)

6)尝试启用和禁用防火墙(netsh advfirewall设置全局StatefulFtp启用)

有什么想法吗?我已经使用Wireshark验证了客户端正在尝试使用动态端口,并且当我在本地尝试时正在使用动态端口。

3 个答案:

答案 0 :(得分:2)

在MSDN论坛上收到答复。显然管理控制台存在问题,您必须使用Azure Powershell:http://social.msdn.microsoft.com/Forums/windowsazure/en-US/8f697f17-72b7-46f7-8c97-398b91190a2f/server-2012-vm-on-azure-passive-ftp-wont-work

答案 1 :(得分:1)

我能够在不使用任何Powershell命令的情况下让被动FTP在我的Azure VM上运行。只需按照以下步骤操作:http://blogs.msdn.com/b/wats/archive/2013/12/13/setting-up-a-passive-ftp-server-in-windows-azure-vm.aspx

上面的文章介绍了在Azure VM上设置FTP所需的所有步骤。

希望这有帮助!

答案 2 :(得分:0)

Azure VM端点有4分钟超时。对于FTP,这意味着如果被动数据传输花费的时间超过4分钟,则主连接(端口21)会因为在远程文件传输时发生错误而发生超时!

现在您有两个选择:

<强> 1 可以将VM端点的超时设置为最多30分钟。

执行此操作的Powershell命令是:

> Get-AzureVM -ServiceName "MyService" -Name "MyVM" | Set-AzureEndpoint -Name "MyEndpoint" -IdleTimeoutInMinutes 30 | Update-AzureVM

更多信息here

2. :创建ILIP(实例级IP)

您可以创建ILIP以绕过VM Webservice enpoint层。执行此操作的PowerShell命令是:

Get-AzureVM -ServiceName “MyService” -Name “MyVM” | Set-AzurePublicIP -PublicIPName "MyNewEndpoint" | Update-AzureVM

更多信息here