我正在努力连接到 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 地址,而不是全部未分配(即 *)