我在这里实现了一个基于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服务器,并且可以为我提供一些帮助。
非常感谢。
干杯,
马丁
发布于 2014-01-13 12:34:17
如果其他人有类似的问题:问题是几个接口方法没有完全实现。- getExternalAddress()返回一个空值,而Apache库没有正确地处理它(嗯,它应该也接受一个空值,但没有)--当所有被动端口都用完时,requestPassivePort()没有返回-1。
在完全实现这些方法之后,通过防火墙以被动模式进行访问是可行的。
https://stackoverflow.com/questions/21015542
复制相似问题