我创建了一个 Amazon EC2 Windows 2012 实例。我通过 IIS 安装了 FTP,并确保 Amazon 防火墙和实例的防火墙都允许端口 21 上的流量。当我从 Filezilla FTP 客户端连接到实例时,连接被接受,但目录列表未呈现。
这是尝试使用 Filezilla 连接时的输出:
Response: 501 Server cannot accept argument.
Command: PASV
Response: 227 Entering Passive Mode (204,236,224,103,192,56).
Command: LIST
Response: 150 Opening BINARY mode data connection.
Error: The data connection could not be established: ETIMEDOUT - Connection attempt
timed out
Error: Connection timed out
Error: Failed to retrieve directory listing
通过 RDP 连接到服务器时,我打开 IE 并输入ftp://localhost
,可以毫无问题地连接。在我的本地浏览器中,当我输入时,ftp://ElasticIP
我无法连接。请注意,我在 IIS 中设置了 FTP 服务器,并将所有未分配的 IP 地址绑定到端口 21 上监听。FTP 防火墙支持也输入了弹性 IP。
必须采取哪些额外步骤才能确保 FTP 正常工作?非常感谢您的帮助和指导。
答案1
来自此链接:https://forums.aws.amazon.com/thread.jspa?messageID=361644&tstart=0#
“IIS FTP 使用主动模式,而 EC2 仅支持被动模式 FTP 连接,因为实例具有私有和公共 IP 地址。
解决这个问题的唯一方法是:
请确保公共配置文件上的 Windows 防火墙已被禁用。
在安全组(EC2)上打开此端口范围:TCP 49152-65535
确保您在此实例上使用弹性 IP 地址 (EIP)。
在 FTP 防火墙配置中将此 EIP 添加为外部 IP 地址。 http://learn.iis.net/page.aspx/309/configuring-ftp-firewall-settings-in-iis-7/ 请参阅上一页的“步骤 2:为特定 FTP 站点配置外部 IPv4 地址”。
我在 Windows Server 2008 R2 (IIS 7.5) 上对此进行了测试。如果您按照这些步骤操作,您的 IIS FTP 应该配置为使用与 EC2 配合使用的被动模式 FTP。
这样做对我们很有帮助。