Apache FTP 服务器 - 20 秒不活动后连接超时 - 无法检索目录列表

Apache FTP Server - Connection timeout after 20 seconds of inactivity - Failed to retrieve directory listing

我正在寻找一种创建嵌入式 ftp 服务器的方法。我遇到了一个示例 "writing a java ftp server",我在本地复制并测试了它,一切似乎都很好。

所以我继续将示例部署到 AWS EC2 实例,然后尝试使用 Ubuntu 和 FileZilla 作为客户端访问它,但我一直遇到相同的问题,即目录未列出。我什至尝试打开实例的所有端口,但我仍然得到同样的结果:

我认为这可能与 Active/Passive 模式设置有关,所以我在 FileZilla 上尝试了这两种设置,但我仍然遇到同样的问题,所以我完全没有想法。有谁知道如何解决这个问题?

您必须在服务器防火墙中打开FTP服务器被动模式数据连接端口范围。

默认情况下,Apache MINA FTP 服务器使用任何空闲的非特权端口进行数据连接。为避免打开 FTP 服务器的所有端口,请限制服务器可以使用的端口范围。参见:
https://mina.apache.org/ftpserver-project/configuration_passive_ports.html

要在代码中设置范围,请使用 ListenerFactory.setDataConnectionConfiguration. You can use the DefaultDataConnectionConfiguration as a implementation of the DataConnectionConfiguration interface


请参阅我在 Network configuration for passive mode 上的文章以了解背景。

首先,您应该尝试“被动模式”和“仅使用普通 FTP(不安全)”。

然后,如果您正在使用 Windows - 尝试为程序快捷方式或 .exe 文件设置“运行 程序作为管理员”。 可以通过右键单击程序快捷方式或 .exe 文件来完成。然后是“属性”-“兼容性”选项卡。