«FTP-прокси» может означать шлюз, который сам говорит по FTP. Подключение к нему отличается от запроса CONNECT к HTTP-прокси или просьбы к серверу SOCKS открыть TCP-назначение.

Шлюзу нужны целевой хост и учётная запись, и, возможно, сначала собственный вход. Продукты выражают этот разговор по-разному:

СхемаТипичная форма команды
Цель закодирована в имени пользователяUSER target-user@target-host
Отдельный вход в шлюзUSER/PASS шлюза, затем вход в цель
Явная команда назначенияSITE target-host или OPEN target-host, затем требуемый вход

Это семейства соглашений, а не единственная стандартная последовательность для каждого шлюза. Выбирайте метод, задокументированный администратором и поддерживаемый клиентом.

Держите обе учётные записи видимыми в настройке

Пароль целевого FTP и пароль шлюза могут различаться. Некоторые шлюзы объединяют их в одно представление USER/PASS; другие требуют отдельных обменов. Помещение всех значений в одну строку не может воспроизвести клиент, которому нужно отправлять дополнительные команды.

Это объясняет полезную границу в старом коде FtpWebRequest. Обычное FTP-подключение к шлюзу с именем пользователя, специфичным для шлюза, может подойти для некоторых схем USER/PASS. Шлюз, требующий отдельного разговора SITE или OPEN, нуждается в клиенте, который действительно поддерживает этот поток. Свойство Proxy в WebRequest — снова другой интерфейс.

Например, WinSCP предоставляет отдельные методы входа через FTP-прокси, а не рассматривает все шлюзы как одно поле хоста. Его числовые значения «сырых» настроек относятся к его документированному API; при проверке конфигурации используйте имя метода и предполагаемый разговор.

После входа передача файлов по-прежнему требует соединения данных FTP и выбранного режима TLS. Успешный вход по каналу управления — начало этого пути, а не доказательство того, что любая передача данных уже разрешена.

Похожие статьи