通过HTTP代理连接到FTP服务器

时间:2012-06-08 14:48:51

标签: java proxy ftp ftp4j

我正在使用它.sauronsoftware.ftp4j通过21端口连接到FTP服务器。

我通过HTTP代理进行连接,因此我使用HTTPTunnelConnector。

我可以连接并登录FTP并将模式设置为被动而没有问题

现在,当我尝试下载文件,LIST文件或其他任何需要数据连接的文件时,我得到一个" 425无法打开数据连接"来自FTP服务器。所以,我能够建立常规的FTP连接,但数据连接是一个问题。

现在,令我困惑的是,10-15%的时间,数据连接实际通过,我能够下载文件!当我立即重新运行我的程序时,它会再次出现425错误代码,并继续这样做,直到它再次神奇地工作。

这让我觉得它可能是一个端口问题 - 数据连接被阻塞端口停止,有时它很幸运能找到一个可以连接的开放端口 - 但这是一个没有受过教育的猜测。

有没有人经历过类似的事情? 我的猜测是,它在HTTP代理中或者在FTP服务器前面的防火墙中是一个端口问题,听起来是否正确?

编辑: 我将FTPCommunicationListener附加到客户端。这是通信日志(针对IP地址,用户名和密码进行审查)

Connected, logging in
Sent: USER username
Received: 331 Password required for username
Sent: PASS password
Received: 230 Logged on
Sent: FEAT
Received: 211-Features:
Received:  MDTM
Received:  REST STREAM
Received:  SIZE
Received:  MLST type*;size*;modify*;
Received:  MLSD
Received:  AUTH SSL
Received:  AUTH TLS
Received:  PROT
Received:  PBSZ
Received:  UTF8
Received:  CLNT
Received:  MFMT
Received: 211 End
Sent: OPTS UTF8 ON
Received: 200 UTF8 mode enabled
Sent: TYPE A
Received: 200 Type set to A
Sent: PASV
Received: 227 Entering Passive Mode (xx,xx,xx,xx,xx,xx)
Sent: REST 0
Received: 350 Rest supported. Restarting at 0
Sent: RETR /directory/file.csv
Received: 425 Can't open data connection.
it.sauronsoftware.ftp4j.FTPException [code=425, message= Can't open data connection.]
    at it.sauronsoftware.ftp4j.FTPClient.download(FTPClient.java:3330)
    at it.sauronsoftware.ftp4j.FTPClient.download(FTPClient.java:3213)
    at it.sauronsoftware.ftp4j.FTPClient.download(FTPClient.java:3078)
    at FtpTest.getFileOutputStream(FtpTest.java:131)
    at FtpTest.main(FtpTest.java:18)

已发送:退出 收到:221再见

0 个答案:

没有答案
相关问题