vsftpd使用AWS丢弃PASV命令上的连接

这就是我所看到的:

$ telnet ec2-???-???-232-82.compute-1.amazonaws.com 21 Trying ???.???.232.82... Connected to ec2-???-???-232-82.compute-1.amazonaws.com. Escape character is '^]'. 220 (vsFTPd 2.3.5) USER foo 331 Please specify the password. PASS secret 230 Login successful. PASV Connection closed by foreign host. 

为什么这可能发生?

这是/etc/vsftpd.conf一部分:

 pasv_enable=YES pasv_min_port=5000 pasv_max_port=5200 

您可能需要为您的实例授权所选的被动端口。 这可以在AWSpipe理控制台中完成

ec2-authorize default -p <starting port>-<end port>

所以应该是

ec2-authorize default -p 5000-5200

在你的情况。

编辑:当然,不要忘记注意公众地址

pasv_address=???.???.232.82

就像你指出的那样。