The quote PASV
command is not a command to the ftp.exe
program, it is a command to the FTP server requesting a high order port for data transfer. A passive transfer is one in which the FTP data over these high order ports while control is maintained in the lower ports.
The windows ftp.exe
program can be used to send the FTP server commands to make a passive data transfer between two FTP servers. A standard windows installation will not, and probably should not, have FTP server service running as an endpoint for passive transfers. So if passive transfers are needed with a standard windows box, a solution other than ftp.exe
is necessary as FTPing to localhost as one of the connections won’t work in most windows environments.
You can effect a passive FTP transfer between two different hosts (but not two connections on the same host) as follows:
Open up two prompts, use one to ftp.exe
connect to your source FTP server and one to ftp.exe
connect to your destination FTP server.
Now establish a passive connection between the servers using the raw commands PASV and PORT. The quote PASV
command will respond with an IP/port in ellipsis. Use that data for the quote PORT <data>
command. Your passive link is now established assuming that firewalls haven’t blocked one or more of the four ports (2 for FTP control, 2 for FTP data)
Next start receive of data with the quote STOR <filename>
command to the receiving FTP server then send the control command quote RETR <filename>
to the source FTP server.
so for me:
client 1
> ftp.exe server1
ftp> quote PASV
227 Entering Passive Mode (10,0,3,1,54,161)
client 2
> ftp.exe server2
ftp> quote PORT 10,0,3,1,54,54,161
ftp> quote STOR myFile
client 1
ftp> quote RETR myFile
Cavet: I’m connecting to some old FTP servers YMMV
Internet Explorer 6 и 7 настроены на использование пассивного FTP по умолчанию. Пассивный режим FTP используется некоторыми FTP-серверами в Интернете для лучшей работы с брандмауэрами. Это менее безопасный способ подключения, чем Active FTP. Internet Explorer включает в себя способ деактивации и активации режима пассивного FTP (PASV). Возможно, вам потребуется включить или отключить этот параметр, чтобы Internet Explorer мог работать как клиент FTP с данным FTP-сервером. Следуйте этим инструкциям, чтобы это произошло.
Активация и деактивация режима пассивного FTP
-
открыто Internet Explorer 6 или 7 из Начните Меню или командную строку.
-
В меню Internet Explorer нажмите инструменты для открытия меню «Инструменты».
-
Нажмите настройки интернета для открытия нового окна «Свойства обозревателя».
-
Нажмите продвинутый Вкладка.
-
Найдите настройку, называемую Включить просмотр папки для FTP-сайтов, который находится в верхней части списка настроек. Убедитесь, что эта функция отключена. Он должен быть отключен. Пассивный режим FTP в Internet Explorer не работает, если эта функция не отключена.
-
Найдите параметр, называемый Использовать пассивный FTP примерно на полпути вниз по списку настроек.
-
Чтобы включить функцию пассивного FTP, установите флажок рядом с Использовать пассивный FTP установка. Чтобы отключить функцию, снимите галочку.
-
Нажмите Хорошо или же Применять для сохранения настройки пассивного FTP.
В более поздних версиях Internet Explorer включите и отключите PASV, используяПанель управленияl>настройки интернета > продвинутый > Используйте пассивный FTP (для совместимости с брандмауэром и DSL-модем).
Нет необходимости перезагружать компьютер при включении или отключении пассивного FTP.
Skip to content
На чтение 2 мин. Просмотров 304 Опубликовано 10.07.2019
PASV менее безопасен, чем активный FTP
Internet Explorer 6 и 7 по умолчанию настроены на использование пассивного FTP. Пассивный режим FTP используется некоторыми FTP-серверами в Интернете для лучшей работы с брандмауэрами. Это менее безопасный способ подключения, чем активный FTP. В Internet Explorer есть способ деактивировать и активировать режим пассивного FTP (PASV). Вам может потребоваться включить или отключить этот параметр, чтобы Internet Explorer мог работать как FTP-клиент с заданным FTP-сервером. Следуйте этим инструкциям, чтобы это произошло.
Активация и деактивация пассивного режима FTP
-
Откройте Internet Explorer 6 или 7 в меню или командной строке Пуск .
-
В меню Internet Explorer нажмите Инструменты , чтобы открыть меню Инструменты .
-
Нажмите Свойства обозревателя , чтобы открыть новое окно Свойства обозревателя .
-
Перейдите на вкладку Дополнительно .
-
Найдите параметр Включить просмотр папок для FTP-сайтов , который находится в верхней части списка настроек. Убедитесь, что эта функция отключена. Это должно быть не проверено. Пассивный режим FTP в Internet Explorer не работает, если эта функция не отключена.
-
Найдите параметр под названием Использовать пассивный FTP примерно посередине списка настроек.
-
Чтобы включить функцию пассивного FTP, установите флажок рядом с параметром Использовать пассивный FTP . Чтобы отключить эту функцию, снимите флажок.
-
Нажмите ОК или Применить , чтобы сохранить настройки пассивного FTP.
В более поздних версиях Internet Explorer включите и отключите PASV, используя Панель управления l> Свойства обозревателя > Дополнительно > Использовать пассивный FTP совместимость с брандмауэром и модемом DSL) .
Нет необходимости перезагружать компьютер при включении или отключении пассивного FTP.
Команды FTP для передачи файлов
В Ubuntu ftp -p
для пассивного режима работает нормально.
Как мне сделать то же самое в Windows?
Я пробовал с quote pasv
но я получаю следующую ошибку:
230 OK. Current restricted directory is / ftp> quote pasv 227 Entering Passive Mode (31,170,167,221,116,239) ftp> cd os 250 OK. Current directory is /os ftp> dir 500 I won't open a connection to 10.23.16.248 (only to 113.193.128.177) 425 No data connection ftp>
Мой брандмауэр отключен.
- Если вы не против использования Firefox, получите бесплатное расширение FireFTP, которое поддерживает пассивный режим и использует его по умолчанию.
Клиент командной строки Windows FTP (ftp.exe
) не поддерживает пассивный режим ни в одной версии Windows. В настоящее время это делает его бесполезным из-за повсеместного использования брандмауэров и NAT.
С использованием quote pasv
не поможет. Переключает только сервер в пассивный режим, но не клиент.
Вместо этого используйте любой сторонний клиент командной строки Windows FTP. Большинство других поддерживает пассивный режим.
Например, WinSCP по умолчанию работает в пассивном режиме, и есть руководство по преобразованию сценария Windows FTP в сценарий WinSCP. Если вы начинаете с нуля, см. Руководство по автоматизации передачи файлов на FTP с помощью WinSCP. Кроме того, графический интерфейс WinSCP может сгенерировать для вас шаблон сценария.
(Я автор WinSCP)
Windows фактически не поддерживает пассивный режим.
Вы можете отправить команду на сервер тремя различными способами, но это не приведет к включению пассивного режима на стороне клиента Windows.
Эти аргументы предназначены для отправки различных команд и pasv
это не то, о чем Microsoft думала, когда писала это.
Вам нужно будет найти стороннее программное обеспечение, такое как WinSCP, которое поддерживает использование командной строки, и использовать его вместо собственного программного обеспечения Windows.
- 1 Я думаю, что pasv поддерживает в Windows 7.
- 2 Я тестировал XP, 7, 2k8, 2k12
- 12 Поправка: «Окна
ftp.exe
не поддерживает пассивный режим. «ОС поддерживает его без проблем, если вы используете полнофункциональный FTP-клиент. - 5 pasv не поддерживается вплоть до 8.1 Pro. Нет, не поддерживается. Попробуйте WinSCP (бесплатно, с открытым исходным кодом, с возможностью создания сценариев, работает).
Хотя это не дает прямого ответа на вопрос о командной строке, но в ОС Windows используйте проводник Windows ftp: // username @ server
по умолчанию будет использоваться пассивный режим
Для командной строки активный режим — по умолчанию
- Кажется, что это не так, по крайней мере, во всех случаях. Я получаю ту же ошибку «Отклонено подключение данных к внешнему адресу» при попытке подключиться из проводника во время выполнения команды «DIR». Однако если ввести полный URL-адрес в имя файла, загрузка будет продолжена.
- отличная идея, но вы все равно можете быть заблокированы определенными операциями (например, получить / положить)
В quote PASV
команда не является командой ftp.exe
программа, это команда FTP-серверу, запрашивающая порт высокого уровня для передачи данных. Пассивная передача — это передача данных FTP через эти порты высокого порядка, в то время как контроль сохраняется на более низких портах.
Окна ftp.exe
Программа может использоваться для отправки команд FTP-серверу для пассивной передачи данных между двумя FTP-серверами. В стандартной установке Windows не будет и, вероятно, не должно быть службы FTP-сервера, работающей в качестве конечной точки для пассивной передачи. Поэтому, если требуются пассивные передачи со стандартным окном окна, решение, отличное от ftp.exe
необходимо в качестве FTP-подключения к localhost, поскольку одно из подключений не будет работать в большинстве сред Windows.
Вы можете осуществить пассивную передачу FTP между двумя разными хостами (но не двумя соединениями на одном хосте) следующим образом:
Откройте два приглашения, используйте одно, чтобы ftp.exe
подключитесь к исходному FTP-серверу и один к ftp.exe
подключитесь к FTP-серверу назначения.
Теперь установите пассивное соединение между серверами, используя необработанные команды PASV и PORT. В quote PASV
команда ответит IP / портом в многоточии. Используйте эти данные для quote PORT
команда. Теперь ваше пассивное соединение установлено, если брандмауэры не заблокировали один или несколько из четырех портов (2 для управления FTP, 2 для данных FTP)
Далее начните прием данных с quote STOR
на принимающий FTP-сервер, затем отправьте управляющую команду quote RETR
на исходный FTP-сервер.
так что для меня:
client 1 > ftp.exe server1 ftp> quote PASV 227 Entering Passive Mode (10,0,3,1,54,161) client 2 > ftp.exe server2 ftp> quote PORT 10,0,3,1,54,54,161 ftp> quote STOR myFile client 1 ftp> quote RETR myFile
Кавет: Я подключаюсь к некоторым старым FTP-серверам YMMV
- Примечания к ответам на исходную сессию плаката:
227 Entering Passive Mode (31,170,167,221,116,239)
Перевод: Открытие порта данных на сервере 31.170.167.221: (116 * 256 + 239)500 I won't open a connection to 10.23.16.248 (only to 113.193.128.177)
Эти IP-адреса неверны. Произошло то, что программа FTP.EXE не знает, как получать данные с портов высокого порядка (от вашей команды dir), и выдает это вводящее в заблуждение сообщение с двумя поддельными IP-адресами.
Клиент CURL поддерживает протокол FTP и работает в пассивном режиме. Получить Скачать БЕЗ SSL версия, и вам не нужны библиотеки openssl.dll. Всего одно приложение командной строки curl.exe.
http://www.paehl.com/open_source/?CURL_7.35.0
curl.exe -T c:testmyfile.dat ftp://ftp.server.com/some/folder/myfile.dat --user myuser:mypwd
Другой — Putty psftp.exe, но запрос проверки ключа сервера требует хитрости. Эта командная строка вводит NO для подсказки, означающей, что ключ не хранится в реестре, только в этот раз. Вам нужен внешний файл сценария, но иногда его хорошо, если вы копируете несколько файлов вверх и вниз.
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html
echo n | psftp.exe ftp.server.com -l myuser -pw mypwd -b script.txt
script.txt (можно набрать любую команду ftp)
put 'C:testmyfile.dat' '/some/folder/myfile.dat' quit
- 1
psftp
это SFTP-клиент, а не FTP-клиент. Более того, рекомендация автоматически принимать ключ хоста SSH представляет собой ужасную угрозу безопасности.
Если вы используете Windows 10, установите подсистему Windows для Linux, WSL и Ubuntu.
$ ftp 192.168.1.39 Connected to 192.168.1.39. ............ 230 Logged in successfully Remote system type is MSDOS. ftp> passive Passive mode on. ftp> passive Passive mode off. ftp>
- Верно, но предположительно OP заинтересован в решении, использующем
ftp.exe
а не другой клиент.
Согласно этой статье Egnyte, пассивный FTP поддерживается начиная с Windows 8.1.
Ключ реестра:
'HKEY_CURRENT_USERSoftwareMicrosoftFTPUse PASV'
должен быть установлен со значением: yes
Если вам не нравится ковыряться в реестре, сделайте следующее:
- Нажмите WinKey + R , чтобы открыть диалоговое окно «Выполнить».
- Тип
inetcpl.cpl
и нажмите Войти. Откроется диалоговое окно «Свойства обозревателя». - Щелкните вкладку «Дополнительно».
- Спуститесь к разделу «Просмотр» древовидного списка и убедитесь, что для параметра «Использовать пассивный FTP» установлено значение «Вкл.».
- Щелкните по кнопке ОК.
Каждый раз, когда вы используете ftp.exe
, не забудьте передать
quote pasv
команда сразу после входа на удаленный хост.
PS: Грант ftp.exe
доступ к частным сетям, если ваш брандмауэр жалуется.
- 1
Use PASV
ключ реестра не влияет наftp.exe
, это настройка проводника. +quote pasv
тоже не действует. + Тот факт, что ваш брандмауэр жалуется, только доказывает это. - @MartinPrikryl Ах, это / что / почему это не работает? Я тоже пробовал это решение. Спасибо за объяснение.
Это распространенная проблема . когда мы запускаем ftp-соединение, только внешний ip открывает порт для pasv-соединения. но IP за NAT не открывает соединение, поэтому пассивное соединение не работает с командой PASV
нам нужно указать, что при открытии соединения так открывайте соединение с
ftp -p {хост}
- Windows
ftp
у клиента нет-p
переключатель.
FileZilla работает хорошо. Я использую FTP-клиент FileZilla «Ручная передача», который поддерживает пассивный режим.
Пример: откройте FileZilla и выберите «Передача» >> «Передача вручную», затем в окне передачи вручную выполните следующие действия:
- Убедитесь, что выбран правильный вариант загрузки / выгрузки
- Для удаленного: введите имя каталога, в котором находится файл для загрузки.
- Для удаленного: введите имя файла для загрузки
- Для локального: перейдите в нужный каталог, в который вы хотите загрузить файл.
- Для локального: введите имя файла для сохранения загруженного файла как (используйте то же имя файла, что и загружаемый файл, если вы не хотите его изменять)
- Установите флажок «Начать передачу немедленно» и нажмите «ОК».
- Загрузка должна начаться немедленно
- Примечание. Если вы забыли установить флажок «Начать передачу немедленно» … Нет проблем: просто щелкните правой кнопкой мыши файл, который нужно загрузить (в очереди обработки (очередь передачи файлов) в нижней части панели окна FileZilla, и выберите «Очередь обработки»
- Процесс загрузки должен начаться немедленно
- Выполнено
- 1 Вопрос по поводу «командной строки Windows». FileZilla — это приложение с графическим интерфейсом.
- 1 filezilla не поддерживает скрипты … отлично, когда вы хотите перемещать вещи самостоятельно, не так хорошо, когда вы хотите, чтобы это выполнялось автоматически
Для пассивного режима вам нужно использовать команду «literal» ftp> literal PASV
- 1 OP уже пробовал
quote pasv
(quote
а такжеliteral
псевдонимы). И это не работает, как не может работать. Мой ответ объясняет почему.
Tweet
Share
Link
Plus
Send
Send
Pin
На чтение 8 мин Просмотров 20к.
Виталий Леонидович Черкасов
Системный администратор, инженер компьютерных систем.
Задать вопрос
Основное назначение FTP сервера – это передача файлов по сети. Дома его используют для обмена фотографиями и другими данными между друзьями и родственниками. На предприятии – для обмена документами и другой служебной информацией между филиалами. При этом располагаться на FTP серверах могут большие файлы, которые не отправишь по e-mail. Этот протокол передачи данных также используется для загрузки контента на сервер web-сайта.
Содержание
- Определение
- Применение и принцип работы
- Создание и настройка
- FTP в windows
- Filezilla server
- Создание правил проброса портов на роутере
- Как подключиться
- Через проводник Windows
- Через любой браузер
- С помощью Filezilla
Определение
Сначала давайте разберёмся, что такое FTP сервер. FTP (file transfer protocol протокол передачи файлов) – это протокол, обеспечивающий удалённую передачу данных по сети интернет. Он построен на клиенте серверной архитектуры и использует разные каналы для обмена командами и данными. При этом для передачи используется одно соединение, которое стандартно устанавливается через 21 TCP-порт.
Каналов для обмена данными может быть несколько, поэтому во время одного сеанса можно одновременно передавать и принимать файлы. Для каждого канала, используемого для обмена данными, открывается отдельный TCP-порт.
Применение и принцип работы
При подключении к FTP клиент и сервер создают сессию, которая остаётся активной на протяжении всего сеанса обмена файлами.
Существуют два режима работы данного протокола:
- В активном режиме клиент подключается к серверу и передаёт ему свой IP-адрес и порт, через который будет обмениваться данными. Сервер подключается к заданному узлу и начинается обмен данными.
- Пассивный режим применяется в том случае, когда клиент защищён сетевым экраном и не может принять входящее подключение. В этом клиент отправляет специальную команду, в ответ на которую сервер шлёт свой IP-адрес и TCP-порт. После этого клиент устанавливает сеанс связи с сервером и начинается обмен информацией.
Обмен данными может осуществляться в одном из режимов:
- в поточном режиме данные передаются сплошным потоком, протокол её не обрабатывает;
- при передаче в блочном режиме протокол делит передаваемые данные на блоки, в каждый из которых входит заголовок, размер и информация.
Аутентификация клиента происходит по следующей схеме, сначала клиент отсылает логин и пароль пользователя, на сервере эта информация проверяется и если пользователь с данным логином и паролём существует, то соединение устанавливается. Кроме этого можно настроить анонимный доступ к FTP.
Создание и настройка
Установить FTP-сервер на ПК может любой пользователь, даже чайник. Это можно сделать либо средствами операционной системы, либо с помощью сторонних программ, таких как Filezilla server.
FTP в windows
В Windows 7 есть все для того, чтобы установить и настроить FTP сервер, ничего дополнительно устанавливать не придётся. На более новых версиях этой системы все делается аналогично.
Чтобы сделать ФТП сервер на компьютере:
- Кликните по кнопке «Пуск», откройте «Панель управления» и выберите строку «Программы и компоненты».
- Выберите ссылку «Включение или отключение компонентов Windows», откройте пункт «Службы IIS», поставьте галочку в строке «FTP-сервер» и всех его подпунктах.
- Зайдите в меню «Администрирование» на панели управления.
- Откройте «Диспетчер служб IIS».
- Кликните по строке «Сайты», расположенному в правой части окна, и нажмите «Добавить FTP-сервер».
- Задайте имя соединения и путь к общей папке, через которую вы будете обмениваться данными.
- Введите IP-адрес, номер порта и параметры шифрования (можно настроить, как на рисунке).
- Настройте доступ (анонимный – без пароля, обычный – нужно будет ввести имя и пароль).
- Зайдите в «Панель управления», откройте «Система и безопасность» и выберите «Брандмауэр Windows».
- В левом меню выберите пункт «Дополнительные параметры».
- Кликните по строке «Правила для входящих подключений», которая находится слева, кликните правой кнопкой по строке «FTP-сервер» (находится в центральной части окна) и выберите «Включить правило». Те же действия повторите со строкой «Трафик FTP сервера в пассивном режиме».
- В левой части окна выберите «Правила для исходящего подключения» и включите «Трафик FTP-сервера».
- Чтобы настроить права пользователей, зайдите в раздел «Администрирование» панели управления и кликните по строке «Управление компьютером».
- Щёлкните правой кнопкой по свободному месту и выберите сроку «Создать группу».
- Введите имя группы.
- В папке «Пользователи» создайте нового пользователя.
- Заполните поля, касающиеся имени пользователя и пароля.
- Щёлкните правой кнопкой по только что созданному пользователю, выберите пункт «Свойства», перейдите на закладку «Членство в группах» и, нажав кнопку «Добавить», задайте пользователю новую группу.
- Чтобы разрешить пользователю подключаться к выделенной для обмена папкой, щёлкните по ней правой кнопкой и выберите строку «Свойства», перейдите на вкладку «Безопасность» и нажмите кнопку «Изменить».
- Щёлкните по кнопке «Добавить» и добавьте созданную недавно группу. Отметьте галочками все пункты в колонке «Разрешить».
- Зайдите ещё раз в меню службы IIS, щёлкните по вашему сайту и кликните по иконке «Правила авторизации».
- Кликните по пустому месту правой кнопкой и выберите «Добавить разрешающее правило».
- Отметьте пункт «Указанные роли или группы пользователей» и введите название созданной группы.
На этом создание FTP сервера закончено. Теперь вы знаете, как поднять домашний файлообменник.
Filezilla server
Самое популярное приложение для создания FTP — это FileZilla Server. Его можно скачать с официального сайта.
Чтобы создать свой FTP сервер FileZilla:
На этом создание FTP-сервера закончено.
Создание правил проброса портов на роутере
Так как для работы FTP нужны порты двух типов: для передачи управляющих сигналов и для обмена данными — то и правил проброса нужно два:
- проброс внешнего 21 порта на такой же порт компьютера для передачи управляющего сигнала;
- проброс диапазона внешних портов на те же порты на ПК, которые файловая система использует как отдельный канал.
Чтобы настроить эти правила на роутере, надо через веб интерфейс браузера войти в настройки и открыть раздел перенаправления портов. Для каждой модели роутера существуют свои нюансы настроек. В маршрутизаторе Dlink DIR-300 для этого нужно открыть вкладку «Advanced» и выбрать «Port Forwarding».
Это все что нужно, чтобы установить filezilla server и настроить ftp сервер через роутер.
Как подключиться
Существует несколько способов подключения к FTP. Рассмотрим основные из них.
Через проводник Windows
Чтобы подключиться к FTP серверу через проводник, выполните следующие операции:
Теперь вы сможете соединяться с FTP через подключение, созданное в проводнике.
Через любой браузер
Ещё проще зайти на FTP сервер с помощью браузера. Для этого в адресную строку вводим адрес хоста и нажимаем кнопку «Enter».
С помощью Filezilla
Самым популярным и востребованным FTP-клиентом является FileZilla. Он полностью бесплатный и простой в использовании. С официального сайта можно скачать версии для виндовс, начиная с 7 версии, и для Linux.
После запуска программы для подключения потребуется ввести следующие сведения:
- Хост. IP сервера FTP, к которому вы хотите подключиться.
- Имя пользователя. Это логин, который был предоставлен вам при регистрации. Если доступ публичный, то это поле можно оставить пустым.
- Пароль. При использовании публичного доступа ничего вводить не требуется.
- Порт. Оставьте это поле пустым или введите порт по умолчанию — 21.
После того, как вы нажмёте кнопку «Быстрое соединение», подключение установится и вы сможете работать с файлами.
Чтобы не вводить постоянно параметры соединения, в FileZilla можно настроить постоянное подключение к FTP серверу.
Для этого заходим в меню «Файл» выбираем «Менеджер сайтов» и нажимаем «Новый сайт». После этого вводим имя или IP-адрес хоста и порт, выбираем тип входа: анонимный, нормальный или другой. Если вы выбрали анонимный, то больше ничего вводить не нужно, а если нормальный, то потребуется ввести логин и пароль.
После настройки для того, чтобы установить соединение, нужно будет зайти в меню «Файл», кликнуть по строке «Менеджер сайтов», выбрать нужный сайт и нажать кнопку «Соединиться».
Содержание
- FTP Connection Modes (Active vs. Passive)
- Network Configuration for Passive Mode
- Notes for Uncommon Local Network Configurations
- Network Configuration for Active Mode
- Smart Firewalls/NATs
- How to use passive FTP mode in Windows command prompt?
- 11 Answers 11
- Using Windows FTP in PASSIVE mode
- ftp клиент пассивный режим
- Инструменты пользователя
- Инструменты сайта
- Содержание
- Введение
- Режимы работы FTP: активный и пассивный
- Первоначальная настройка брандмауера
- Тестирование
- Как переключить ftp.exe в пассивный режим? или загрузка с wput
FTP Connection Modes (Active vs. Passive)
Where FTP protocol is more complicated comparing to the other file transfer protocols are file transfers. While the other protocols use the same connection for both session control and file (data) transfers, the FTP protocol uses a separate connection for the file transfers and directory listings.
In the active mode, the client starts listening on a random port for incoming data connections from the server (the client sends the FTP command PORT to inform the server on which port it is listening). Nowadays, it is typical that the client is behind a firewall (e.g. built-in Windows firewall) or NAT router (e.g. ADSL modem), unable to accept incoming TCP connections.
For this reason the passive mode was introduced and is mostly used nowadays. It is a default for WinSCP too. Using the passive mode is preferable because most of the complex configuration is done only once on the server side, by experienced administrator, rather than individually on a client side, by (possibly) inexperienced users.
In the passive mode, the client uses the control connection to send a PASV command to the server and then receives a server IP address and server port number from the server, which the client then uses to open a data connection to the server IP address and server port number received.1
Use Passive mode session settings to toggle between the active and the passive mode.
Network Configuration for Passive Mode
With the passive mode, most of the configuration burden is on the server side. The server administrator should setup the server as described below.
The firewall and NAT on the FTP server side have to be configured not only to allow/route the incoming connections on FTP port 21,2 but also a range of ports for the incoming data connections. Typically, the FTP server software has a configuration option to setup a range of the ports, the server will use. And the same range has to be opened/routed on the firewall/NAT.
When the FTP server is behind a NAT, it needs to know it’s external IP address, so it can provide it to the client in a response to PASV command.
It is common, that the FTP server is not configured properly and provides its internal IP address, that cannot be used from a client network. By default WinSCP detects, when an unroutable IP address is provided, and uses a server (control connection) address instead.3 You can tell that this happened from a session log:
Notes for Uncommon Local Network Configurations
When the NAT happens on a client side, what the FTP server cannot know, the IP address it provides is wrong too (from a client’s perspective). You can force WinSCP to ignore the IP address provided by the server using a Force IP address for passive mode connections session setting.
When using a restrictive local firewall that blocks even outgoing connections, you need to open not only control connection port 21, but also a port range for data connections. To open as little ports as possible, find out what ports is the FTP server configured to use. If you cannot know that, you have to open all unprivileged port range, 1024–65535.
Network Configuration for Active Mode
With the active mode, most of the configuration burden is on the client side.
The firewall (e.g. Windows firewall) and NAT (e.g. ADSL modem routing rules) on the client side have to be configured to allow/route a range of ports for the incoming data connections. You should restrict range of local ports that WinSCP uses for the active mode. Then open those ports in Windows Firewall. Go to Control Panel > System and Security > Windows Defender Firewall4 > Advanced Settings > Inbound Rules > New Rule. For routing the ports on the NAT (if any), refer to its documentation.
When there’s NAT in your network, you have to configure an external IP address that the WinSCP needs to provide to the FTP server using PORT command. So that the server can correctly connect back to WinSCP to open the data connection. For that use External IP address setting in Preferences.
Smart Firewalls/NATs
Some firewalls/NATs try to automatically open/close data ports by inspecting FTP control connection and/or translate the data connection IP addresses in control connection traffic.5
With such a firewall/NAT, the above configuration is not necessary for a plain unencrypted FTP. But this cannot work with FTPS, as the control connection traffic is encrypted and the firewall/NAT cannot inspect nor modify it.
Источник
How to use passive FTP mode in Windows command prompt?
How do I do the same in Windows?
I tried with quote pasv but I am getting following error:
My firewall is disabled.
11 Answers 11
The Windows FTP command-line client ( ftp.exe ) does not support the passive mode, on any version of Windows. It makes it pretty useless nowadays due to ubiquitous firewalls and NATs.
Using the quote pasv won’t help. It switches only the server to the passive mode, but not the client.
Use any thirdparty Windows FTP command-line client instead. Most other support the passive mode.
For example WinSCP defaults to the passive mode and there’s a guide available for converting Windows FTP script to WinSCP script. If you are starting from the scratch, see the guide to automating file transfers to FTP using WinSCP. Also, WinSCP GUI can generate a script template for you.
(I’m the author of WinSCP)
Windows does not actually support passive mode.
You can send the command to the server in three different ways but that will not enable passive mode on the Windows client end.
Those arguments are for sending various commands and pasv is not something that Microsoft thought of when they wrote it.
You will have to find a 3rd party software like WinSCP that supports command line usage and use that instead of the Windows native one.
Although this doesnt answer the question directly about command line, but from Windows OS, use the Windows Explorer ftp://username@server
this will use Passive Mode by default
For command line, active mode is the default
The quote PASV command is not a command to the ftp.exe program, it is a command to the FTP server requesting a high order port for data transfer. A passive transfer is one in which the FTP data over these high order ports while control is maintained in the lower ports.
The windows ftp.exe program can be used to send the FTP server commands to make a passive data transfer between two FTP servers. A standard windows installation will not, and probably should not, have FTP server service running as an endpoint for passive transfers. So if passive transfers are needed with a standard windows box, a solution other than ftp.exe is necessary as FTPing to localhost as one of the connections won’t work in most windows environments.
You can effect a passive FTP transfer between two different hosts (but not two connections on the same host) as follows:
Open up two prompts, use one to ftp.exe connect to your source FTP server and one to ftp.exe connect to your destination FTP server.
Now establish a passive connection between the servers using the raw commands PASV and PORT. The quote PASV command will respond with an IP/port in ellipsis. Use that data for the quote PORT command. Your passive link is now established assuming that firewalls haven’t blocked one or more of the four ports (2 for FTP control, 2 for FTP data)
Next start receive of data with the quote STOR command to the receiving FTP server then send the control command quote RETR to the source FTP server.
Cavet: I’m connecting to some old FTP servers YMMV
Источник
Using Windows FTP in PASSIVE mode
I have a VMS host (call it «B») behind a router that doesn’t allow outgoing FTP connections.
This works: I connect from VMS Host A (outside the router) to Host B via FTP, issue a SET PASSIVE ON, and then I can xfer files from A to B via a PUT cmd.
Can’t get this to work: If I connect from my PC (outside the router) via XP’s standard FTP to B, I can’t seem to get the PASSIVE mode enabled.
I’ve tried: literal PASV
and: quote PASV
but no go.
Any suggestions? TIA
I could believe that «quote pasv» prepares
the server for a passive transfer, but what
tells the client to initiate a passive
transfer? And if the client’s not in passive
mode, how is it supposed to move a file to or
from a server which _is_ in passive mode?
Of course, I could just be venting methane,
but I believe that the client, when in
active mode, sends a PORT command to the
server to tell the server which address and
port number to use for the transfer, while in
passive mode, the client sends the server a
PASV command, and gets back the address and
port number to use (the server’s preference).
You can do all of these that you wish using
the quote command, but, when it comes time to
do a put or get (STOR or RETR), the client
will do what it thinks is appropriate.
For a good time, in the VMS-to-VMS situation,
try a transfer before and after one of those
«quote pasv» commands. I believe that you’ll
see no change in what happens in the
transfer. Use the (undocumented?) «debug»
command to see more. On my system:
FTP> debug
Debugging on (debug=1).
FTP> get a.a q.q
—> TYPE I
200 TYPE set to IMAGE.
—> PORT 10,0,0,9,210,14
200 PORT command successful.
—> RETR a.a
150 Opening data connection for ALP$DKA0:[SMS]a.a; (10.0.0.9,53774) (4 bytes)
226 Transfer complete.
local: ALP$DKA0:[SMS]Q.Q;1 remote: a.a
4 bytes received in 00:00:00.01 seconds (0.39 Kbytes/s)
[Note that the client used a PORT command to
give the server an address and port number,
as it was not in passive mode.]
FTP> quote pasv
—> pasv
227 Entering Passive Mode (10,0,0,9,210,15)
[Looks good, but does nothing useful, I
claim. Observe the next transfer.]
FTP> get a.a p.p
—> PORT 10,0,0,9,210,16
200 PORT command successful.
—> RETR a.a
150 Opening data connection for ALP$DKA0:[SMS]a.a; (10.0.0.9,53776) (4 bytes)
226 Transfer complete.
local: ALP$DKA0:[SMS]P.P;1 remote: a.a
4 bytes received in 00:00:00.01 seconds (0.33 Kbytes/s)
[Note that the client _still_ uses a PORT
command here. It’s still not thinking
passive.]
FTP> passive
_ON|OFF|AUTO|ALL: on
Passive is ON.
FTP> get a.a s.s
—> PASV
227 Entering Passive Mode (10,0,0,9,210,17)
—> RETR a.a
150 Opening data connection for ALP$DKA0:[SMS]a.a; (10.0.0.9,53778) (4 bytes)
226 Transfer complete.
local: ALP$DKA0:[SMS]S.S;1 remote: a.a
4 bytes received in 00:00:00.01 seconds (0.30 Kbytes/s)
[. and so this transfer included a PASV
command instead of a PORT command, and the
server’s response provided the address and
port number for the client to use.]
FTP> quit
—> QUIT
221 Goodbye.
(In this case, the server and client both
had the same IP address, which could be a
bit confusing, unless you just ignore that
part, in which case, it’s all harmless.)
So, as I said, you need to tell the client to
use passive mode. If your client can’t do
passive mode, then you’ll need to get a
better client. You can’t get the client into
passive mode by manually sending («quote») a
PASV command to the server.
Google did find this guide, which might be
useful:
Источник
ftp клиент пассивный режим
Как мне сделать то же самое в Windows?
Мой брандмауэр отключен.
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
по умолчанию будет использоваться пассивный режим
Для командной строки активный режим по умолчанию
Вы можете осуществлять пассивную передачу FTP между двумя разными хостами (но не с двумя соединениями на одном хосте) следующим образом:
Откройте два запроса, используйте один для ftp.exe для подключения к исходному FTP-серверу, а один к ftp.exe подключитесь к вашему FTP-серверу назначения.
Затем начните прием данных с помощью команды quote STOR на принимающий FTP-сервер, затем отправьте управляющую команду quote RETR на исходный FTP-сервер.
Cavet: я подключаюсь к некоторым старым FTP-серверам YMMV
Инструменты пользователя
Инструменты сайта
Содержание
Введение
Клиент посылает запросы серверу и принимает файлы. В качестве клиентов могут использоваться — internet explorer, Windows Commander, NetVampir, gftp и т.д.
Сервер обрабатывает запросы клиента на получение файла. В качестве серверов могут использоваться — vsftpd, IIS, wuftpd, proftpd и т.д.
Режимы работы FTP: активный и пассивный
Первоначальная настройка брандмауера
Создаем минимальный набор правил в нашем фаерволе. Этот пример создан лишь для того, чтобы показать принцип работы iptables. Для более углубленного понимания работы iptables рекомендую прочитать статью Оскара Андерсона в переводе Андрея Кисилева — Iptables Tutorial 1.1.19, которая считается классикой.
eth0 — смотрит в локальную сеть, eth1 — смотрит в мир. Данным скриптом (firewall.sh) удобно пользоваться на стадии отладки правил.
После того, как у вас все настроено, лучше воспользоваться штатными средствами управления iptables. Для этого воспользуемся скриптом для сохранения текущих правил в файл. В разных дистрибутивах набор правил может сохраняться по отличному от /etc/sysconfig/iptables пути. Данный путь является стандартным для Red Hat дистрибутивов и его клонов, например CentOS.
Но при таких настройках фаервола ftp через nat еще не будет работать. Для облегчения нашей задачи воспользуемся специальным модулем, который и был разработан как раз для этих целей. Загрузим модуль ip_nat_ftp, который и будет выполнять всю черную работу вместо нас.
Обратите внимание, что в цепочке eth0-eth1, через которую проходят все транзитные пакеты, мы открыли только порт 21 и разрешили прохождение пакетов с состоянием RELATED и ESTABLISHED. Для работы ftp как в активном так и в пассивном режимах больше ничего не требуется, все остальные заботы берут на себя модули ip_nat_ftp и ip_conntrack_ftp.
Тестирование
После того, как мы загрузили модуль и правил можно приступить непосредственно к тестированию. Для этого можно воспользоваться любимым ftp клиентом и попробовать соединиться с любым ftp сервером. В качестве клиента я использовал ftp клиент встроенный в far, который позволяет использовать как активный, так и пассивный режимы. Если под рукой нет никакого ftp клиента всегда можно воспользоваться встроенным в windows клиентом как показано ниже.
Для наглядности можно посмотреть с помощью tcpdump что происходит при попытке подключиться к удаленному ftp серверу.
Ну вот собственно и вся настройка. Для того, чтобы каждый раз при загрузке системы модуль ip_nat_ftp загружался автоматически необходимо внести небольшие изменения в файл /etc/sysconfig/iptables-config.
После этого при перезагрузке iptables или системы в целом данный модуль будет загружаться автоматически, а также подгружать все необходимые модули.
Источник
Как переключить ftp.exe в пассивный режим? или загрузка с wput
Использовал я как-то стандартный ftp.exe из Windows, все было хорошо, пока не он не перестал работать.
200 PORT command successful. Consider using PASV.
Оказалось понадобился пассивный режим.
Так думаю, нет вопросов, прошелся по справке не видно ничего такого, нашел обсуждение
quote pasv
но эта команда переводит сервер в пассивный режим, но не клиент ftp.exe
Альтернатива нашлась быстро — это wput, так как в делах закачки я доверяю wget, то wput был принят в мою команду без колебаний.
Скачать ftp-клиент с возможностью докачки и пассивным режимом работы можно тут или с официального сайта.
Синтаксис работы простой, хотя над тем чтобы понять как закачать файл, если он находится не в каталоге с wput и не создавать подкаталоги на удаленном сервере мне понадобилось пол часа, вот не мог я понять логики, но главное результат..
Слова статьи: как закачать файл на сервер ftp, загрузить файл из командной строки, пассивный режим ftp пример работы, how to configure ftp.exe to use passive mode (PASV), пример использования wput.exe
Внимание! Добавлено 13.10.2011
Что-то с временем обнаружился какой-то баг — при копировании архива с файлами wput’ом на фтп сервер, дата и время файла обновлялось, а текстовый файл не менялся, а иногда менялся, я сильно не заморачивался с выяснением что да как, так как до этого столкнулся с багом 7zip который иногда не создавал новый архив, если старый архив лежал на том месте, а иногда создавал, в общем я решил кардинально — заменил wput на curl, тем более curl я использовал в другом новом проекте и опыт работы с ним уже был.
Скачать облегченный curl — ссылка
Вот такой простой синтаксис для загрузки и все стало работать как часы.
Источник