使 FTP 在 Azure VM 上运行,连接已关闭

使 FTP 在 Azure VM 上运行,连接已关闭

我正在努力连接到 Azure 中新 VM 上的 FTP。

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

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

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

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的演练:在 Windows Azure VM 中的 IIS 7.5 上托管 FTP并添加了两个端点以允许访问端口 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 ==========

我想知道适用于 haxor 的解决方案可能会解决问题。引用Windows Azure 虚拟机论坛上对“Azure 上的 Server 2012 VM - 被动 FTP 无法工作”的回答其中指出,如果 Azure 门户在被动端点上配置了探测器,则它们可能无法工作。虽然答案指出此问题已在门户的最新版本中得到修复,但它建议使用 Azure Powershell cmdlet Add-AzureEndpoint 来确保没有启动探测器。我已经使用 Azure Powershell cmdlet Get-AzureEndpoint 进行了检查,我的 ftp 端点都没有探测器,所以这不是我的问题。

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

我注意到一个步骤IIS8 和 Windows Azure 虚拟机中的被动 FTP 和动态端口没有提到原始攻略:在 Windows 防火墙中打开数据通道端口范围(7000-7014)。我已添加入站规则来执行此操作。但仍然无法连接。

答案1

一位同事建议调查 SSL,因此我删除了 FTP 站点并重新开始构建一个新站点。新 FTP 站点运行正常。在 IIS 管理器中查看新 FTP 站点的配置屏幕时,我怀疑旧站点上的绑定错误地将 127.0.0.1 指定为 IP 地址,而不是全部未分配(即 *)

相关内容