2014-01-09 34 views
0

我已經實現在此基礎上這裏的Apache項目的FTP服務器: http://mina.apache.org/ftpserver-project/index.html使用被動模式的Apache FTP服務器不工作(「連接被服務器拒絕」)

服務器的目的是支持被動模式,並相應地配置。出於測試目的,我只配置了一個被動端口(4244),但啓動服務器後沒有任何事情正在偵聽此端口。 FTP服務器在活動連接的標準端口和SSL連接的標準端口上收聽正常。

當試圖通過FTP客戶端連接,我收到以下錯誤(這並不奇怪):

Status: Resolving address of localhost

Status: Connecting to [::1]:4244...

Status: Connection attempt failed with "ECONNREFUSED - Connection refused by server", trying next address.

Status: Connecting to [fe80::1%lo0]:4244...

Status: Connection attempt failed with "ECONNREFUSED - Connection refused by server", trying next address.

Status: Connecting to 127.0.0.1:4244...

Status: Connection attempt failed with "ECONNREFUSED - Connection refused by server".

Error: Could not connect to server

我的配置對象是實現從Apache項目這個接口:DataConnectionConfiguration

我已經把一些登錄到類中,並注意到提供被動端口的方法從未被調用過。我期望其中一個方法(如requestPassivePort())被調用,因爲FTP Server如何知道要監聽的被動端口? 然後,也許我對被動FTP的工作有誤解。儘管Apache項目中有一些文檔,但在被動模式下運行服務器並不多。

也許有人成功實現了一個使用這個Apache庫的被動FTP服務器,並且可以爲我提供一些幫助。

非常感謝。

乾杯,

馬丁

+0

問題似乎是服務器無法建立被動模式下的數據通道:2014.01.09-16:17:09.289信息:pool-43-thread-8:FtpLoggingFilter:已收到:PASV 2014.01。 09-16:17:09.368警告:pool-43-thread-8:PASV:無法打開被動數據連接 org.apache.ftpserver.DataConnectionException:無法啓動被動數據連接:無法解析地址 – marw

回答

0

萬一別人有類似的問題:問題是,一些接口方法並沒有完全實現。 - getExternalAddress()返回一個空值,Apache庫沒有正確處理它(當然,它應該也接受空值,但沒有) - requestPassivePort()沒有返回-1被動港口已經用完。

完全實現這些方法後,通過防火牆進入被動模式。

相關問題