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-прокси (если у вас есть доступ к нему)
Ссылки: