我正在使用它.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再见