我无法从我的 EC2 实例连接到客户 FTP 服务器

我无法从我的 EC2 实例连接到客户 FTP 服务器

我的客户给了我一些 FTP 凭证。在家里,我可以使用 FileZilla 连接,没有任何问题。但是从我的 EC2 实例无法连接。我尝试在 Windows 防火墙中授予 FileZilla 权限,禁用防火墙,但仍然没有结果。我还尝试创建一个全新安装,但没有任何结果。

Command:    PWD
Response:   257 "/" is current directory.
Command:    TYPE I
Response:   200 Type set to I
Command:    PASV
Response:   421 Could not create socket.
Command:    PORT 172,31,30,233,195,203
Response:   200 Port command successful
Command:    MLSD
Response:   150 Opening data channel for directory listing of "/"
Response:   425 Can't open data connection for transfer of "/"
Error:  Failed to retrieve directory listing
Status: Connection closed by server

我还在亚马逊控制台上检查了我的安全组,传出的包裹没有限制。传入的包裹开放了端口 20 和 21

答案1

您可以连接并登录默认 FTP 端口(TCP 21),但无法建立第二个 TCP 连接,即数据连接,这是被动 FTP 数据传输所必需的(目录列表是一种数据传输)。

PORT 响应通常包含 6 个八位字节,用于编码需要建立被动数据连接的服务器地址。
例如 PORT h1,h2,h3,h4,p1,p2,其中 h1.h2.h3.h4 是服务器的 IPv4 IP 地址 (172.31.30.233),TCP 端口号即(p1*256) + p2代表xxx,x,xxx,xxx,195,203端口(195 * 256) + 203 = 50123

您的连接可能会失败,因为PORT 服务器通告的号码不是以公共可路由 IPv4 地址开头,而是以私有使用地址(172.31.30.233 属于 172.16.0.0/12 范围)开头,或者到用于被动流量 TCP 50123 的端口号的出站流量在这种情况下被阻止。

答案2

默认情况下,出站连接不被阻止,通常为 0.0.0.0/0 您可以从 EC2 实例浏览 ftp 站点吗?ftp://site.com

他们可能允许某个 IP 在他们那边(您的家)进行连接,但不允许 AWS 中的您的 VPC 进行连接。

相关内容