425 Не удалось установить соединение - PullRequest
0 голосов
/ 26 июня 2019

Я пытаюсь загрузить файл через FTP с помощью приложения Java.

URL-адрес FTP доступен с этой веб-страницы: http://professionnels.ign.fr/adminexpress. Более конкретно, я пытаюсь загрузить этот файл .

  • Из моего дома я могу успешно загрузить файл с помощью Java-приложения, Firefox или Chrome.
  • Из своей работы я могу выполнитьто же самое только с Firefox и Chrome.Мое приложение отказывается загружать что-либо.

ПРИМЕЧАНИЕ: На работе браузеры и мое приложение используют один и тот же HTTP-прокси для доступа в Интернет.

Яиспользование Apache Commons Net 3.6 .

Вот пример обмена FTP моего приложения.Я не был в состоянии нюхать те Chrome или Firefox.

220 Bienvenue sur le site FTP de L INSTITUT NATIONAL DE L INFORMATION GEOGRAPHIQUE ET FORESTIERE
USER *******
331 Please specify the password.
PASS *******
230 Login successful.
TYPE I
200 Switching to Binary mode.
PASV
227 Entering Passive Mode (192,134,132,16,65,180).
RETR /ADMIN-EXPRESS-COG_2-0__SHP_WM__FRA_2019-05-20.7z.001
425 Failed to establish connection.

1 Ответ

1 голос
/ 27 июня 2019

tl; dr

Оказалось, что HTTP-прокси в моей работе уже обрабатывает все обмены FTP.Вот почему Firefox и Chrome могут загрузить файл.Когда они не находятся за прокси-сервером HTTP, кажется, что они действуют как клиент FTP, отправляя команды FTP напрямую.

Для загрузки файла достаточно простого запроса HTTP GET к HTTP-прокси с URL-адресом ftp.

Вот сумма решений, которые я нашел в ходе своих расследований:

  • Использовать пассивный режим (команда PASV)
  • Проверьте, есть ли для использования прокси-сервер FTP.чем HTTP-прокси
  • Проверьте конфигурацию FTP-сервера (если у вас есть доступ к нему)
  • Проверьте конфигурацию HTTP-прокси (если у вас есть доступ к нему)



Точно, браузеры выполняют простой HTTP-запрос, как описано ниже:

GET ftp://user:passw0rd@example.com/file.ext HTTP/1.1
Host: example.com
User-Agent: WebBrowser-UA/x.y.z
...

Затем HTTP-прокси анализирует URL-адрес FTPи подключается к FTP-серверу.HTTP-прокси возвращает содержимое файла как обычный HTTP-ответ.

HTTP/1.1 200 OK
Last-Modified: Tue, 21 May 2019 11:23:00 GMT
Content-Length: 115545060
Content-Type: octet/stream
Connection: Keep-Alive
Age: 22
Date: Thu, 27 Jun 2019 10:27:09 GMT

(file content here...)

Однако в моем случае HTTP-прокси позволил мне подключиться к FTP-серверу и обменяться по команде Только канал FTP.Канал данных, казалось, был заблокирован либо в режиме ACTIVE, либо в режиме PASSIVE.

Во время моих исследований я обнаружил, что многие люди сталкиваются с этой же проблемой.Решения, которые они нашли (когда они нашли одно ...), не относились ко мне.Вот сумма решений, выраженных во всех этих вопросах:

  • Использовать пассивный режим (команда PASV)
  • Проверьте, есть ли FTP-прокси для использования, а не HTTP-прокси
  • Проверьте, обрабатывает ли HTTP-прокси напрямую FTP-обмен
  • Проверьте конфигурацию FTP-сервера (если у вас есть доступ к нему)
  • Проверьте настройку HTTP-прокси (если у вас есть доступ к нему)

Ссылки:

...