我在 AWS 上创建了一个 Ubuntu 实例,并想设置 FTP 服务器。我参考了本文设置 vsftdp。我在 aws 上打开了端口 20、21、22。
现在当我使用http://ftptest.net/检查我的配置,它会抛出错误;
Error: Reply does not contain valid response code
The replies sent by your server are violating the FTP specifications.
You have to upgrade to a proper server.
我真的不明白问题出在哪里。有人能帮我吗?谢谢。
答案1
FTP 与 NAT 配合使用效果不佳,因为当打开数据连接时,它会将 IP 地址嵌入控制协议中。不幸的是,EC2 实例通过 NAT 连接到互联网。通常,NAT 防火墙有一个特殊的辅助应用程序,可以查看控制流量并动态更正 IP 地址。EC2 NAT 没有此功能。
我相信您的问题可以通过在 vsftpd 配置中添加以下内容来解决:
pasv_address = YOUR.PUBLIC.IP.ADDRESS
编辑添加:
您还需要按照您链接的文章中所述,在 PASV 模式下为 FTP 数据连接打开更多端口。您在问题中提到,您没有按照文章中的说明打开所有端口。
答案2
我找到了这个http://quadloops.com/installing-up-ftp-server-in-amazon-ec2-ubuntu-server-12-04/ 这是在 AWS 中 Ubuntu 上安装 FTP 服务器 vsftpd 的最简单方法。您必须将 FTP 客户端设置为主动模式才能使用它。