1

我已经基于这个 Apache 项目实现了一个 FTP 服务器:http: //mina.apache.org/ftpserver-project/index.html

服务器旨在支持被动模式并进行相应配置。出于测试目的,我只配置了一个被动端口(4244),但是在启动服务器后,这个端口上没有任何东西在监听。FTP 服务器在标准端口上监听活动连接和在一个 SSL 连接上正常。

尝试连接 FTP 客户端时,我收到以下错误(不足为奇):

状态:解析本地主机的地址

状态:正在连接到 [::1]:4244...

状态:连接尝试失败,“ECONNREFUSED - 服务器拒绝连接”,尝试下一个地址。

状态:正在连接到 [fe80::1%lo0]:4244...

状态:连接尝试失败,“ECONNREFUSED - 服务器拒绝连接”,尝试下一个地址。

状态:正在连接到 127.0.0.1:4244...

状态:连接尝试失败,出现“ECONNREFUSED - 服务器拒绝连接”。

错误:无法连接到服务器

我的配置对象正在从 Apache 项目实现这个接口:DataConnectionConfiguration

我在类中添加了一些日志记录,并注意到提供被动端口的方法从未被调用。我希望调用其中一种方法(例如 requestPassivePort() ),因为 FTP 服务器怎么知道要监听哪个被动端口?再说一次,也许我对被动 FTP 的工作方式有误解。尽管 Apache 项目中有一些文档,但关于在被动模式下运行服务器的内容并不多。

也许有人已经使用这个 Apache 库成功地实现了一个被动 FTP 服务器,并且可以为我提供一些帮助。

非常感谢。

干杯,

马丁

4

1 回答 1

-1

如果其他人有类似的问题:问题是几个接口方法没有完全实现。- getExternalAddress() 返回一个空值,Apache 库没有正确处理它(好吧,它应该也接受一个空值,但没有) - 当所有被动端口时 requestPassivePort() 没有返回 -1已经用完了。

完全实施这些方法后,通过防火墙以被动模式访问即可。

于 2014-01-13T12:34:17.337 回答