vsftpd 使用 AWS 的 PASV 命令断开连接

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

答案1

您可能需要为实例授权所选的被动端口。这可以在 AWS 管理控制台中使用以下命令完成

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

所以应该

ec2-authorize default -p 5000-5200

就你的情况而言。

编辑:当然,不要忘记记下公共地址

pasv_address=???.???.232.82

正如你所指出的。

答案2

对于 7 年后来到这里的其他人:我遇到了一个问题,之后 EC2 实例上的连接立即断开PASV,这是由于 vsftpd 在 ipv6 上监听造成的。

通过设置listen_ipv6=NO和来修复listen=YES

相关内容