我正在尝试在我的 EC2 实例上设置 VSFTPD 被动托管。我按照以下说明操作http://www.synergycode.com/knowledgebase/blog/item/ftp-server-on-amazon-ec2。但是,当我尝试在 FileZilla 中连接时,我得到了
- 命令:CWD /home/lingiii/ftp
- 响应:250 目录已成功更改。
- 命令:TYPE I
- 响应:200 切换到二进制模式
- 命令:PASV
- 响应:227 进入被动模式 (10,222,206,33,54,184)。
- 状态:服务器发送了带有不可路由地址的被动回复。请改用服务器地址。
- 命令:LIST
- 错误:连接超时
- 错误:无法检索目录列表
其中目录 /home/lingiii/ftp 设置为用户 lingiii、组 developers(lingiii 是其成员)的 wrx 权限,并且我以用户 lingiii 身份登录。
有什么建议吗?
答案1
正如@cyberx86所说,vsftpd 发送实例的内部 IP 地址作为客户端响应命令必须连接到的地址PASV
,但由于客户端不在 EC2 内部运行,因此无法连接到该地址。您需要使用pasv_address
配置选项告诉 vsftpd 实例的公共 IP 是什么。
答案2
还有一种故障不是这个,但可能类似。如果您以 PASSIVE 模式连接,并且可以连接到服务器,但目录列表失败。这可能是因为 vsftpd.conf 中指定的端口范围未在 EC2 实例中打开。您需要转到 AWS EC2 控制台管理面板来打开端口。
有关详细信息,请参阅http://www.pixelstech.net/article/1422865204-Install-and-setup-vsftpd-on-AWS-server