Сценарии входа для FTP-прокси-серверов

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

Описание сценария входа

Первая строка сценария входа всегда начинается с "Connect to:", за которым следуют адрес сервера и порт, разделённые символом ":". Они определяют, куда должен подключиться FTP-клиент. Адрес сервера обязателен. Если порт сервера не указан, используется 21.

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

Существует два типа переменных: необязательные и обязательные. Они различаются поведением в случае, когда переменная используется в команде (строке), но не задана пользователем. Если не задана необязательная переменная, вся строка (команда) пропускается. Если не задана обязательная переменная, открывается диалоговое окно, в котором пользователь должен указать её значение (или отменить подключение). Переменные начинаются с символа "$" и заключаются в круглые скобки (например, "$(Password)"). Для экранирования символа "$" используется последовательность "$$".

Строки, начинающиеся с "3xx:", пропускаются, если команда в предыдущей строке была пропущена или ответ сервера на неё не был 3xx. Ответ 3xx означает, что первая цифра ответа FTP — "3" ("частичный успех"). Он используется в последовательностях команд и означает: продолжить следующей командой (например, имя пользователя принято, поэтому нужно отправить пароль).

Ограничения для первой строки сценария входа: адрес сервера можно задать только текстом без переменных либо текстом, содержащим только переменную ProxyHost или Host; порт сервера можно задать только десятичным числом либо переменной ProxyPort или Port.

Последовательность входа считается успешной (пользователь подключён к FTP-серверу), если ни один ответ на отправленные команды не равен 4xx или 5xx (4xx — временная ошибка, 5xx — постоянная), а ответ на последнюю отправленную команду равен 2xx (успех).

Переменные

Доступны следующие переменные:

ПеременнаяОписание
ProxyHostобязательная; имя или IP-адрес прокси-сервера (брандмауэра)
ProxyPortвсегда задана; номер порта, который прослушивает прокси-сервер (брандмауэр); по умолчанию 21, если пользователь не указал другой
ProxyUserнеобязательная; имя пользователя для прокси-сервера (брандмауэра)
ProxyPasswordобязательная; пароль для прокси-сервера (брандмауэра)
Hostвсегда задана; имя или IP-адрес нужного FTP-сервера
Portвсегда задана; номер порта, который прослушивает нужный FTP-сервер; по умолчанию 21, если пользователь не указал другой
Userобязательная; имя пользователя для нужного FTP-сервера
Passwordобязательная; пароль для нужного FTP-сервера
Accountобязательная; учётная запись для нужного FTP-сервера

Примеры

Сценарий входа для прямого подключения (без прокси-сервера):

Connect to: $(Host):$(Port)
USER $(User)
3xx: PASS $(Password)
3xx: ACCT $(Account)

Сценарий входа для FTP-прокси-сервера типа "USER user@host:port":

Connect to: $(ProxyHost):$(ProxyPort)
USER $(ProxyUser)
3xx: PASS $(ProxyPassword)
USER $(User)@$(Host):$(Port)
3xx: PASS $(Password)
3xx: ACCT $(Account)

См. также

Диалоговое окно добавления и изменения прокси-сервера

From the Sally manual (GPL-2.0-or-later), © 1997-2023 Open Salamander Authors; © 2025-2026 Elias Bachaalany. Source: manual source (zip) · original page in the Sally repository