我一直在寻找一种创建嵌入式 ftp 服务器的方法。我遇到了一个例子 "writing a java ftp server" ,我在本地复制并测试了它,一切似乎都很好。
所以我继续将示例部署到 AWS EC2 实例,然后尝试使用 Ubuntu 和 FileZilla 作为客户端访问它,但我一直遇到相同的问题,即目录未列出。我什至尝试打开实例的所有端口,但我仍然得到同样的结果:
我认为这可能与主动/被动模式设置有关,所以我在 FileZilla 上尝试了这两种模式,但我仍然遇到同样的问题,所以我完全没有想法。有谁知道如何解决这个问题?
最佳答案
您必须在服务器防火墙中打开FTP服务器被动模式数据连接端口范围。
默认情况下,Apache MINA FTP 服务器使用任何空闲的非特权端口进行数据连接。为避免为 FTP 服务器打开所有端口,请限制服务器可以使用的端口范围。参见:
https://mina.apache.org/ftpserver-project/configuration_passive_ports.html
要在代码中设置范围,请使用 ListenerFactory.setDataConnectionConfiguration
.您可以使用 DefaultDataConnectionConfiguration
作为 DataConnectionConfiguration
interface 的实现.
请参阅我关于 Network configuration for passive mode 的文章了解背景。
关于java - Apache FTP 服务器 - 20 秒不活动后连接超时 - 无法检索目录列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/38436090/