让FTP在Azure VM上运行,克服ftp客户端上的“连接已关闭”

时间:2013-09-10 08:10:39

标签: iis azure ftp iis-7.5

我很难在Azure中的新VM上连接到FTP。

我从默认映像(Windows Server 2012 Datacenter)创建了一个新的虚拟机,并将RDP加入到新VM中。然后,我启用了Web服务器(IIS)角色,包括FTP服务器,并使用Web平台安装程序中的建议设置配置了IIS。然后,我使用IIS管理器“添加FTP站点...”向导添加具有根%systemdrive%\inetpub\ftproot的FTP站点,并将ftp站点设置为启用匿名身份验证,允许匿名用户读取访问权限,提供数据通道端口范围7000-7014,并从Azure管理门户中的VM仪表板中将防火墙的外部IP地址指定为公共虚拟IP(VIP)地址。

防火墙也配置为允许FTP服务器。

此时FTP服务正在运行。我知道,因为如果我在RDP会话中在VM上打开命令提示符,我会得到以下内容

C:\Users\slife>ftp 127.0.0.1
Connected to 127.0.0.1.
220 Microsoft FTP Service
User (127.0.0.1:(none)): ftp
331 Anonymous access allowed, send identity (e-mail name) as password.
Password:
230 User logged in.
ftp>

但我无法从其他地方连接。

C:\Users\timregan>ftp 111.111.111.33
Connected to 111.111.111.33.
Connection closed by remote host.

这是来自FileZilla中的命令提示符

Status: Connecting to 111.111.111.33:21...
Status: Connection established, waiting for welcome message...
Error:  Could not connect to server

我已经关注了Ronald的Walkthrough: Hosting FTP on IIS 7.5 in a Windows Azure VM,并添加了两个端点以允许访问端口21(FTP命令端口)和20(FTP数据端口),我使用他的Azure Powershell建议添加被动端口端点,例如

Get-AzureVM -ServiceName 'blah' -Name 'blah' | Add-AzureEndpoint -Name 'FTPPassive00' -Protocol 'TCP' -LocalPort 7000 -PublicPort 7000 | Update-AzureVM
然后,我可以在Azure管理上的VM端点列表中看到。

为什么我的连接无法从外部进入IIS中的FTP服务器?我怎么诊断失败?

==========编辑1 ==========

我想知道the solution that worked for haxor是否可以解决问题。这引用了Windows Azure虚拟机论坛上“Server 2012 VM on Azure - Passive FTP Won't Work”的答案,该论坛指出,如果Azure门户在被动端点上配置探测,则它们可能无法正常工作。尽管答案指出这已在最新版本的门户中得到修复,但它建议使用Azure Powershell cmdlet Add-AzureEndpoint以确保不启动任何探测。我已经使用Azure Powershell cmdlet Get-AzureEndpoint进行了检查,并且我的所有ftp端点都没有探针,所以这不是我的问题。

==========编辑2 ==========

我注意到Passive FTP and dynamic ports in IIS8 and Windows Azure Virtual Machines中未提及the original walkthrough中的一个步骤:打开Windows防火墙中的数据通道端口范围(7000-7014)。我添加了一个入站规则来执行此操作。我仍然无法连接。

2 个答案:

答案 0 :(得分:1)

可以在以下位置找到更完整的说明:http://blogs.msdn.com/b/wats/archive/2013/12/13/setting-up-a-passive-ftp-server-in-windows-azure-vm.aspx我按照那里的说明操作,FTP在Azure上完美运行。

答案 1 :(得分:0)

一位同事建议调查SSL,因此我删除了FTP站点并重新开始构建一个新站点。新的ftp网站工作。在IIS管理器中盯着新FTP站点的配置屏幕我怀疑旧站点上的绑定错误地指定127.0.0.1作为IP地址而不是所有未分配(即*)