ftp exe пассивный режим

В Ubuntu ftp -p для пассивного режима работает нормально.

Как мне сделать то же самое в Windows?

Я пробовал с quote pasv , но я получаю следующую ошибку:

Мой брандмауэр отключен.

Windows фактически не поддерживает пассивный режим.

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

Эти аргументы предназначены для отправки различных команд, а pasv — это не то, о чем думала Microsoft, когда они ее написали.

Вам нужно будет найти стороннее программное обеспечение, такое как WinSCP, которое поддерживает использование командной строки и использует это вместо родного Windows.

Клиент командной строки Windows FTP ( ftp.exe ) не поддерживает пассивный режим в любой версии Windows. Это делает его сегодня бесполезным из-за вездесущих брандмауэров и NAT.

Использование quote pasv не поможет. Он переключает только сервер в пассивный режим, но не клиент.

Вместо этого используйте любой другой клиент командной строки Windows FTP. Большинство других поддерживают пассивный режим.

Например WinSCP по умолчанию используется пассивный режим и существует руководство для преобразования Windows FTP script для WinSCP script.

Хотя это не отвечает на вопрос непосредственно о командной строке, но из ОС Windows, используйте проводник Windows ftp://username@server

по умолчанию будет использоваться пассивный режим

Для командной строки активный режим по умолчанию

Команда quote PASV не является командой программы ftp.exe , это команда FTP-сервера, запрашивающая порт высокого порядка для передачи данных. Пассивная передача — это та, в которой данные FTP по этим портам высокого порядка, в то время как управление поддерживается в нижних портах.

Программа windows ftp.exe может использоваться для отправки команд FTP-сервера для пассивной передачи данных между двумя FTP-серверами. Стандартная установка Windows не будет и, вероятно, не должна иметь службу FTP-сервера, работающую как конечную точку для пассивных передач. Поэтому, если требуется пассивная передача со стандартным окном, требуется другое решение, кроме ftp.exe , как FTPing для localhost, поскольку одно из соединений не будет работать в большинстве оконных сред.

Вы можете осуществлять пассивную передачу FTP между двумя разными хостами (но не с двумя соединениями на одном хосте) следующим образом:

Откройте два запроса, используйте один для ftp.exe для подключения к исходному FTP-серверу, а один к ftp.exe подключитесь к вашему FTP-серверу назначения.

Теперь установите пассивное соединение между серверами, используя необработанные команды PASV и PORT. Команда quote PASV ответит IP/портом в многоточии. Используйте эти данные для команды quote PORT . Ваша пассивная ссылка теперь установлена, если брандмауэры не заблокировали один или несколько из четырех портов (2 для управления FTP, 2 для данных FTP)

Затем начните прием данных с помощью команды quote STOR на принимающий FTP-сервер, затем отправьте управляющую команду quote RETR на исходный FTP-сервер.

Cavet: я подключаюсь к некоторым старым FTP-серверам YMMV

Утилита ftp.exe как инструмент для работы с FTP-серверами

Утилита ftp.exe как инструмент для работы с FTP-серверами

Всем привет сегодня расскажу про утилиту ftp.exe как инструмент для работы с FTP-серверами.

Для работы с FTP-серверами вовсе необязательно использовать громоздкие (и иногда не бесплатные) FTP-клиенты, для простейших операций вполне сгодится входящая в состав ОС Windows server 2008 R2 или Windows 7 утилита командной строки ftp.exe.

Чтобы запустить ftp.exe, нужно вызвать диалоговое окно «Выполнить» и набрать ftp. Клиент выведет строку приглашения в командном интерпретаторе cmd.exe и сразу будет готов к работе:

Утилита ftp.exe как инструмент для работы с FTP-серверами-01Синтаксис ftp.exe очень прост и достаточно подробно описан во встроенной справке, которую можно вызвать командой help:

Утилита ftp.exe как инструмент для работы с FTP-серверами-02

В справочной системе ftp.exe существуют краткие описания всех команд. Их вызов осуществляется командой help. Посмотрим, например, что делает команда dir. Для этого наберем help dir:

Утилита ftp.exe как инструмент для работы с FTP-серверами-03

Попробуем установить соединение с каким-нибудь ftp-сервером. Пусть это будет linuxcenter.ru. В этом нам поможет команда open linuxcenter.ru:

Утилита ftp.exe как инструмент для работы с FTP-серверами-04

Сервер потребует авторизоваться. Так как это публичный сервер, то мы можем использовать анонимный вход. Регистрируемся как anonymous с пустым паролем:

Утилита ftp.exe как инструмент для работы с FTP-серверами-05

После подключения к ftp-серверу необходимо сообщить ему, в каком режиме мы будем с ним работать. Режимов всего два: port-mode channel и passive-mode data channel. В 99 случаях из 100 используется пассивный режим (подробнее о различиях скажет Википедия), сообщаем серверу, что мы не исключение из правил, командой quote PASV:

Утилита ftp.exe как инструмент для работы с FTP-серверами-06

Теперь мы можем приступать к выполнению операций с данными: переходить по структуре каталогов и выводить их листинги, осуществлять upload и download файлов, менять форматы пересылаемых данных и пр. Однако, ftp-серверы бывают разными. Поэтому сперва будет нелишним ознакомиться с синтаксисом, поддерживаемым удаленным сервером. Для этого есть команда remotehelp:

Использовал я как-то стандартный ftp.exe из Windows, все было хорошо, пока не он не перестал работать.

200 PORT command successful. Consider using PASV.

Оказалось понадобился пассивный режим.

Так думаю, нет вопросов, прошелся по справке не видно ничего такого, нашел обсуждение

quote pasv

но эта команда переводит сервер в пассивный режим, но не клиент ftp.exe

Альтернатива нашлась быстро — это wput, так как в делах закачки я доверяю wget, то wput был принят в мою команду без колебаний.

Скачать ftp-клиент с возможностью докачки и пассивным режимом работы можно тут или с официального сайта.

Синтаксис работы простой, хотя над тем чтобы понять как закачать файл, если он находится не в каталоге с wput и не создавать подкаталоги на удаленном сервере мне понадобилось пол часа, вот не мог я понять логики, но главное результат..

Пример работы с wput
c:Workwput.exe -v -u -nd —basename=c:dataxls c:dataxlsprice.zip

Слова статьи: как закачать файл на сервер ftp, загрузить файл из командной строки, пассивный режим ftp пример работы, how to configure ftp.exe to use passive mode (PASV), пример использования wput.exe

Внимание! Добавлено 13.10.2011

Что-то с временем обнаружился какой-то баг — при копировании архива с файлами wput’ом на фтп сервер, дата и время файла обновлялось, а текстовый файл не менялся, а иногда менялся, я сильно не заморачивался с выяснением что да как, так как до этого столкнулся с багом 7zip который иногда не создавал новый архив, если старый архив лежал на том месте, а иногда создавал, в общем я решил кардинально — заменил wput на curl, тем более curl я использовал в другом новом проекте и опыт работы с ним уже был.

Скачать облегченный curl — ссылка

curl.exe -T %data_dir%\%file_name% -u %ftp_user%:%ftp_pass% %ftp_server%%data_dir% — каталог с данными для отправки %file_name% — имя отправляемого файла на фтп %ftp_user% — имя пользователя фтп %ftp_pass% — пароль на фтп %ftp_server% — адрес фтп сервера

Вот такой простой синтаксис для загрузки и все стало работать как часы.

Оцените статью