Подключение к FTP-серверу через HTTP-прокси
Я использую it.sauronsoftware.ftp4j для подключения к FTP-серверу через Интернет через порт 21.
Я подключаюсь через 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 До свидания