2

У нас есть устаревшая система, которая использует встроенный клиент командной строки Windows для загрузки файлов на сервер FTP. Это делается с помощью ключа -s, когда файл ftp выглядит примерно так:

debug
open myftpsite.com 21
<username>
<password>
cd remote_folder
ascii
lcd "c:\myfolder"
prompt
put export.txt export.tx
rename export.tx export.txt
quit

Это работает в 99% случаев, но в другие 1% случаев это не так. При успешном запуске полученный файл журнала содержит ответные сообщения от сервера, такие как "250 OK" после каждой из приведенных выше команд. Проблема в том, что иногда кажется, что он не может соединиться, тогда мы вообще не получаем сообщений в лог-файле (с сервера или с ftp-клиента). FTP-клиент также все еще возвращает код завершения процесса, равный 0.

У кого-нибудь есть предложения по:

Как улучшить вход в систему из встроенного в Windows клиента ftp командной строки?
И \ ИЛИ
Принудительно вернуть код выхода из процесса, отличный от 0, чтобы указать, что что-то пошло не так?

1 ответ1

0

Если он отвечает на команды, но не может передать данные (загрузки, загрузки, списки каталогов), возможно, вам необходимо включить "пассивный" режим. Обычно FTP требует, чтобы сервер мог установить новое соединение с клиентом для фактической передачи данных. Это редко работает в современном мире NAT, межсетевых экранов и тому подобного. И когда это поддерживается, это на самом деле довольно небезопасно (так как аутентификация больше не происходит при новом соединении.) Таким образом, пассивный режим переворачивает эту ответственность и заставляет клиента устанавливать второе соединение с сервером.

Попробуйте установить его в расширенной настройке Internet Explorer (которая влияет на многие приложения, а не только на IE) или проверьте, есть ли у FTP-клиента переключатель пассивного режима. Я сейчас на своем iPad или проверю себя.

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .