【问题标题】:Apache FTP Server - Connection timeout after 20 seconds of inactivity - Failed to retrieve directory listingApache FTP 服务器 - 20 秒不活动后连接超时 - 无法检索目录列表
【发布时间】:2021-08-05 20:02:02
【问题描述】:

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

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

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

【问题讨论】:

  • 请将日志发布为文本,而不是图像。这样邮件就无法搜索到,其他遇到相同问题的人也无法找到您的问题。

标签: java amazon-ec2 ftp apache-mina mina


【解决方案1】:

您必须在服务器防火墙中打开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 上的文章以了解背景。

【讨论】:

  • 关于如何在代码中设置默认被动端口范围的任何想法?
  • 是的,我知道,但它需要一千个输入参数。可惜我猜没有二传手。我不确定这是否会解决它,因为我已经尝试打开所有端口并且它没有改变任何东西。
  • 也可能是 NAT 问题。仔细阅读我的文章。
  • 再次,请以文本形式发布日志!不允许将日志/代码作为图像发布。见Discourage screenshots of code and/or errors
  • 好的,抱歉。不过为时已晚,总比没有好。
【解决方案2】:

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

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

【讨论】:

    猜你喜欢
    • 2023-02-16
    • 2014-08-25
    • 1970-01-01
    • 2015-10-12
    • 2019-06-23
    • 2017-10-01
    • 2018-01-11
    • 1970-01-01
    • 2018-01-07
    相关资源
    最近更新 更多