FileZilla FTP Server для домашней или небольшой офисной сети. Активный и пассивный режим работы FTP

24.06.2018

    Аббревиатура FTP происходит от английского F ile T ransfer P rotocol (протокол передачи файлов) - протокол прикладного уровня для обмена файлами по транспортному протоколу TCP/IP между двумя компьютерами, FTP-клиентом и FTP-сервером. Это один их старейших, и тем не менее, по-прежнему активно используемый протокол.

Протокол FTP предназначен для решения следующих задач:

  • доступ к файлам и каталогам на удаленных хостах
  • обеспечение независимости клиента от типа файловой системы удаленного компьютера
  • надежная передача данных
  • использование ресурсов удаленной системы.
  • Протокол FTP поддерживает сразу два канала соединения - один для передачи команд и результатов их выполнения, другой - для обмена данными . При стандартных настройках FTP - сервер использует TCP порт 21 для организации канала передачи и приема команд и TCP порт 20 для организации канала приема/передачи данных.

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

    Может работать в активном или пассивном режиме, который определяет, как устанавливается соединение с данными. Поэтому при открытии контрольного соединения обычно нет проблем. В активном режиме клиент начинает прослушивать случайный порт для входящих соединений данных с сервера.

    По этой причине пассивный режим был введен и в настоящее время используется в основном. Использование пассивного режима предпочтительнее, поскольку большая часть сложной конфигурации выполняется только один раз на стороне сервера, опытным администратором, а не индивидуально на стороне клиента, неопытными пользователями.

    Протокол FTP может использоваться не только для передачи данных между клиентом и сервером, но и между двумя серверами. В данном случае, клиент FTP устанавливает управляющее соединение с обоими FTP - серверами, переводит один из них в пассивный режим, а второй - в активный, создавая между ними канал передачи данных.

    FTP- клиент является программой, которая выполняет подключение к FTP- серверу и выполняет необходимые операции для просмотра содержимого каталогов сервера, приема, передачи и удаления файлов или папок. В качестве такой программы может использоваться обычный браузер, компоненты операционной системы или специально разработанные программные продукты, как, например, популярный менеджер закачек Download Master или многофункциональный бесплатный FileZilla FTP Client .

    Эти примеры сеансов должны помочь сделать вещи немного яснее. Традиционно это порт 21 для командного порта и порт 20 для порта данных. Однако путаница начинается, когда мы обнаруживаем, что в зависимости от режима порт данных не всегда находится на порту.

    Затем сервер подключится к указанному порту данных клиента из своего локального порта данных, который является портом. На шаге 3 сервер инициирует соединение в своем локальном порту данных с портом данных, указанным клиентом ранее. С брандмауэра на стороне клиента это выглядит как внешняя система, инициирующая соединение с внутренним клиентом - то, что обычно блокируется.

    Протокол FTP разрабатывался еще в те времена, когда клиент и сервер взаимодействовали напрямую, без каких-либо промежуточных преобразований TCP- пакетов, и в стандартном режиме предполагает возможность создания TCP - соединения не только по инициативе клиента, но и по инициативе сервера от TCP порта 20 на TCP - порт клиента, номер которого передается в процессе создания сеанса передачи данных.

    Нормальный вывод сервера отображается черным цветом, а пользовательский ввод выделен жирным шрифтом. В этом диалоговом окне есть несколько интересных вещей. Как вы можете видеть в приведенном ниже примере, он форматируется как серия из шести чисел, разделенных запятыми. Чтобы найти фактический порт, умножьте пятый октет на 256, а затем добавьте шестой октет к общему числу.

    На шаге 3 клиент затем инициирует соединение данных со своего порта данных с указанным портом данных сервера. Самая большая проблема заключается в необходимости разрешить любое удаленное подключение к высокому числу портов на сервере. Приложение 1 для получения дополнительной информации . Вторая проблема связана с поддержкой и устранением неполадок клиентов, которые поддерживают пассивный режим.

    Реалии же сегодняшнего дня таковы, что подобное TCP - соединение от сервера к клиенту в подавляющем большинстве случаев невозможно, или очень непросто реализовать по причине того, что в большинстве случаев, для подключения к Интернет используется технология с трансляцией сетевых адресов NAT (Network Address Translation) , когда клиент не имеет сетевого интерфейса, доступного для создания прямого TCP- соединения из Интернет. Типовая схема стандартного подключения к Интернет выглядит следующим образом:

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

    Конфигурация сети для пассивного режима

    К счастью, есть какой-то компромисс. Таким образом, все, кроме этого диапазона портов, может быть межсетевым экраном на стороне сервера. Хотя это не исключает риска для сервера, оно значительно уменьшает его. В приложении 1. В пассивном режиме большая часть нагрузки на конфигурацию находится на стороне сервера. Администратор сервера должен настроить сервер, как описано ниже.

    Подключение к Интернет выполняется через специальное устройство - Router (маршрутизатор с функцией NAT), имеющее, как минимум два сетевых порта - один подключенный к сети провайдера, имеющий сетевой интерфейс с маршрутизируемым IP-адресом (так называемый, "белый IP"), например 212.248.22.144, и порт с сетевым интерфейсом для подключения устройств локальной сети с приватным, немаршрутизируемым IP-адресом, например 192.168.1.1 ("серый IP"). При создании соединений от сетевых устройств локальной сети к внешним сетевым узлам, IP-пакеты направляются на маршрутизатор, который выполняет трансляцию адресов и портов таким образом, чтобы, адресом отправителя стал его белый IP-адрес . Результаты трансляции сохраняются и при получении ответного пакета, выполняется обратное преобразование адреса. Таким образом, маршрутизатор обеспечивает пересылку TCP/IP - пакетов от любых устройств локальной сети во внешние сети и обратную пересылку полученных ответных пакетов. Но в тех случаях, когда на вход сетевого интерфейса, подключенного к сети провайдера, принимается пакет, который не имеет отношения к ответным TCP-пакетам, возможны следующие варианты реакции программного обеспечения маршрутизатора:

    Конфигурация сети для активного режима

    В активном режиме большая часть нагрузки на конфигурацию находится на стороне клиента. Чтобы сервер мог правильно подключиться к клиенту, чтобы открыть соединение для передачи данных. Используя эти два коммуникационных соединения, два разных режима работы определяют, в каком направлении установлены соединения: активный режим и пассивный режим.

    Типичный брандмауэр, запущенный на клиенте, видит этот запрос соединения с каналом передачи данных с сервера как незапрашиваемый и отбрасывает пакеты, что приводит к сбою передачи файла. По умолчанию сервер использует доступный порт в эфемерном диапазоне.

    Пакет игнорируется, так как нет сетевой службы, которая могла бы его обработать.

    Пакет принимается и обрабатывается сетевой службой самого маршрутизатора, если такая служба существует и ожидает ходящее соединение ("слушает") порт, номер которого указан в принятом пакете.

    Пакет пересылается серверу в локальной сети, ожидающему данный вид входящих соединений в соответствии с правилами перенаправления портов (port mapping) заданными настройками маршрутизатора.

    Установка и настройка FileZilla FTP Server

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

    Конфигурации преобразования сетевых адресов блокируют этот запрос соединения. Вам также может потребоваться открыть пассивный диапазон портов на вашем брандмауэре. Сохраните изменения в файле конфигурации. . Выполните следующие команды, чтобы разрешить соединения через пассивный диапазон портов брандмауэра вашего сервера.

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

    Чтобы эти изменения были постоянными, вы должны. Чтобы эти изменения были постоянными, вы должны добавить пассивные порты в файл конфигурации. Обновления системы могут перезаписать эти изменения конфигурации. . Эти проблемы могут напоминать проблему с брандмауэром или другим подключением, даже если брандмауэр не существует.

    Два режима передачи данных в FTP

    Чтобы устранить эти проблемы, выполните следующие действия . Этот блог ответит на ваш вопрос, не оставив никаких сомнений. Активный режим - это режим по умолчанию, который раньше был единственным. Он работает, когда пользователь подключается из любого случайного порта для передачи файла. Эта передача файлов соединяет клиента с портом 21 на сервере. Сервер подключается от порта 20 к клиентскому порту, который предназначен для канала данных.

    PASV - клиент передает команду, чтобы выполнить обмен данными в пассивном режиме. Сервер вернет адрес и порт к которому нужно подключиться чтобы принимать или передавать данные. Пример фрагмента FTP- сессии с установкой пассивного режима:

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

    Проблемы FTP в современных сетях

    Теперь, после установления соединения, через эти клиентские и серверные порты устанавливаются передачи файлов. Теперь давайте посмотрим в пассивном режиме. Эта команда работает как запрос на подключение номера порта. Как только клиент получает порт, сразу начинается второе соединение и данные отправляются. Эта процедура работает в тандеме с брандмауэром, который настроен на использование перенаправления портов для дополнительной безопасности. Затем данные будут перенаправлены из порта брандмауэра в порт сервера.

    227 Entering Passive Mode (212,248,22,144,195,89) - ответ FTP-сервера, где 227 - код ответа, текстовое сообщение о переходе в пассивный режим и в скобках IP-адрес и номер порта, которые будут использованы для создания канала передачи данных. Адрес и номер порта отображаются в виде десятичных чисел, разделяемых запятой. Первые 4 числа - это IP-адрес (212.248.22.144), оставшиеся 2 числа задают номер порта, который вычисляется по формуле - первое число умножается на 256 и к результату прибавляется второе число, в данном примере номер порта 195*256 +89 = 50017

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

    Активный и пассивный режим FTP

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

    PORT IP адрес клиента номер порта - клиент передает команду, чтобы организовать сеанс в активном режиме. IP-адрес и номер порта задаются в том же формате, как и в предыдущем примере, например PORT 212.248.22.144,195,89 Для организации передачи данных сервер сам подключается к клиенту на указанный порт.

    Установка и настройка FileZilla FTP Server.

    Скачать инсталляционный пакет FileZilla Server для вашей версии операционной системы можно на

    Надеюсь, вам нужно получить ответ на все запросы. Если у вас больше вопросов, связанных с этим, сообщите нам об этом. Соединение с данными устанавливается из эфемерного порта хоста сервера на эфемерный порт на клиентском хосте. В пассивном режиме, как управление, так и соединение данных устанавливаются исходящими через брандмауэр в Интернет. Управляющее соединение Подключение к данным. . Активный режим по умолчанию, но пользователь обычно может перейти в пассивный режим.

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

    Установка сервера выполняется стандартным образом, за исключением пункта с выбором настроек панели управления сервером:

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

    Конфигурации брандмауэра, обеспечивающие полный доступ ко всем эфемерным портам для незапрашиваемых соединений, могут считаться необеспеченными. Использование макроса является предпочтительным способом генерации правил, описанных выше. Вот несколько примеров.

    Решение проблемы динамического IP-адреса

    Сервер работает за маскарадирующим шлюзом. Когда такие случаи происходят, вы увидите консольное сообщение, подобное этому. Мое решение состоит в том, чтобы добавить следующее правило. Если у вас возникли проблемы с брандмауэром, внимательно прочитайте этот раздел.

    После завершения установки откроется окно приглашения для подключения к серверу:

    После ввода IP-адреса, номера порта и пароля (если вы задавали их в процессе установки) открывается панель управления FileZilla Server:


    В верхней части окна находится основное меню и кнопки панели управления. Ниже располагаются две области - информационных сообщений сервера и статистической информации. В целом, панель управления FTP FileZilla Servver довольно простая и удобная в использовании. Пункты основного меню:

    Как только соединение будет установлено, клиент будет аутентифицироваться на сервере, а затем это соединение будет одним клиентом, а сервер будет использовать «чат» друг с другом. Для передачи файлов это соединение не будет использоваться, а для каждого файла будет установлено новое соединение для переноса данных файла. Существует два способа открытия этих новых каналов передачи данных: активный и пассивный.

    Затем сервер подключится к этому порту данных клиента, используя собственный локальный порт данных, который является портом. Протокол передачи файлов является одним из старейших и наиболее часто используемых протоколов, найденных в Интернете сегодня. Его цель - надежно передавать файлы между компьютерами в сети, не требуя, чтобы пользователь регистрировался непосредственно на удаленном хосте или имел знания о том, как использовать удаленную систему. Он позволяет пользователям получать доступ к файлам на удаленных системах, используя стандартный набор простых команд.

    File - режимы работы панели управления FTP-сервером. Содержит подпункты

    - Connect to Server - подключиться к серверу
    - Disconnect - отключиться от сервера
    - Quit - завершение работы панели управления.

    Server - управление FTP-сервером. Содержит подпункты:

    - Active - запустить/остановить FTP-сервер. При установленной галочке FTP-сервер запущен, при снятой - остановлен.
    - Lock - запретить/разрешить подключения к серверу. При установленной галочке новые подключения к серверу запрещены.

    Несколько портов, несколько режимов

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

    Ниже перечислены следующие режимы. Это соглашение означает, что клиентскому компьютеру должно быть разрешено принимать соединения через любой порт. С ростом небезопасных сетей, таких как Интернет, использование брандмауэров для защиты клиентских машин в настоящее время распространено.

    Edit - редактирование настроек. Подпункты:

    - Settings - основные настройки сервера.
    - Users - настройки пользователей FTP-сервера
    - Groups - настройки групп пользователей.

    В качестве примера, выполним настройки сервера для следующих условий:

  • сервер находится за NAT, имеет приватный IP-адрес, но должен быть доступен из Интернет, поддерживает пассивный режим и использует нестандартные TCP порты. Использование нестандартных портов позволяет уменьшить вероятность хакерских атак, и кроме того, некоторые провайдеры используют фильтрацию трафика и блокируют стандартные 20 и 21 порты.
  • пользователи имеют возможность скачивать с сервера, закачивать на сервер, удалять и переименовывать файлы и папки.
  • в случае использования динамического IP-адреса , требуется обеспечить доступность сервера по DNS-имени.
  • сервер будет функционировать на рабочей станции в среде ОС Windows 7 / Windows 8.
  • Другими словами, нужно создать доступный из Интернет FTP-сервер для обмена файлами между пользователями, разумеется бесплатно. Вполне понятно, что кроме создания необходимой конфигурации самого FTP - сервера, потребуется изменение некоторых настроек маршрутизатора, параметров брандмауэра Windows, решение проблемы динамического IP-адреса, чтобы сервер был доступен по имени, независимо от смены IP-адреса.

    Решение проблемы динамического IP-адреса.

    Затем клиент подключается к этому порту на сервере для загрузки запрошенной информации. В то время как пассивный режим устраняет проблемы взаимодействия с брандмауэром на стороне клиента при подключении к данным, это может затруднить администрирование межсетевого экрана на стороне сервера. Это также упрощает процесс настройки правил брандмауэра для сервера. Раздел 8 «Параметры сети». В зависимости от определенных сетевых конфигураций этот режим должен быть активным или пассивным.

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

        Данная проблема не требует решения в тех случаях, когда при подключении к интернет используется статический IP - адрес, или же динамический, но в соответствии с настройками провайдера, практически всегда один и тот же. В противном случае, можно воспользоваться технологией, получившей название Динамический DNS ( DDNS ) . Данная технология, позволяет почти в реальном масштабе времени обновлять информацию об IP-адресе на DNS-сервере, и получать доступ к маршрутизатору (и службам за ним) по зарегистрированному имени, не обращая внимание на изменение динамического IP.

    Для бесплатной реализации данной технологии потребуется регистрация на каком-нибудь сервисе динамического DNS и установка клиентского программного обеспечения для обновления записи DNS в случае изменения соответствующего IP-адреса. Поддержку динамического DNS, как правило, осуществляют производители сетевого оборудования (D-Link, Zyxel и др.), некоторые хостинговые и специализированные компании, как например, широко известная DynDNS . Однако, после того, как во второй половине 2014 года, все услуги, которые предоставлялись зарегистрированным пользователям бесплатно для некоммерческого использования, стали платными, наиболее популярным решением, пожалуй, стало использование динамического DNS на базе сервиса No-IP.org , который в бесплатном режиме предоставляет услуги по поддержке 2-х узлов с динамическим IP. Для бесплатного использования сервиса потребуется регистрация, и периодическое (приблизительно 1 раз в месяц) посещение сайта для обновления информации об используемых узлах с динамическим IP. Эсли пропустить обновление данных об узле, то услуга приостанавливается, и соответственно, подключиться к узлу по имени станет невозможно. При платном использовании сервиса обновление не требуется.

        Практически все современные маршрутизаторы (модемы) имеют встроенную поддержку динамического DNS-клиента. Его настройка обычно очень простая, - заполняются поля с именем пользователя и паролем, а также с именем узла, полученные при регистрации на сервисе DDNS . Пример для Zyxel P660RU2


        Использование клиента DDNS, встроенного в маршрутизатор/модем предпочтительнее по сравнению с утилитой обновления данных DNS, работающей в среде ОС, поскольку позволяет реализовать дополнительные возможности, как например, управление маршрутизатором через Интернет при выключенном компьютере и удаленное включение электропитания компьютеров за NAT по технологии Wake On Lan .

    В тех же случаях, когда нет возможности использования встроенного клиента DDNS, придется обходиться прикладным программным обеспечением - программой-клиентом поддержки динамического DNS. Такая программа периодически подключается к серверу, поддерживающему зарегистрированное доменное имя, связанное с маршрутизатором, через который выполняется подключение к Интернет, и вызывает процедуру обновления IP, при его изменении. Настройки сервера выполнены таким образом, что сопоставление DNS-имени и IP-адреса интернет-подключения выполняется за очень короткое время, и динамический характер адреса практически никак не сказывается на работоспособности сервисов, связанных с DNS-именем.

    И на самом деле, всё просто, когда есть знания происходящего… для людей с желанием разобраться - читайте ниже раздел «теория», для остальных «гайд» в картинках по настройке, на примере Zyxel KeeneticII Giga (прошивка V2) и G6FTP Server на одном из компьютеров в домашней сети.

    При работе по протоколу FTP между клиентом и сервером устанавливается два соединения - управляющее (по нему идут команды) и соединение передачи данных (по нему передаются файлы). Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключится к тебе. Вот мое имя и мой пароль». Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.
    Активный режим . Когда клиент говорит «Привет!» он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента, используя со своей стороны номер TCP-порта 20 для передачи данных. Для клиента такое соединение является входящим. Так что зачастую работа в активном режиме клиентов, находящихся за файрволлом или NAT затруднена или требует дополнительных настроек.
    Пассивный режим . В Пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту свой IP адрес и номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключиться для установки соединения передачи данных. В дальнейшем будем называть их пассивными портами. При этом, как легко заметить, порты в таком соединении, как со стороны клиента, так и со стороны сервера оказываются произвольными. В пассивном режиме клиент легко может работать с сервером сквозь свой файрволл, но зачастую для поддержки пассивного режима сервером требуется соответствующая настройка файрволла уже на стороне сервера.

    Главное отличие между Активным режимом FTP и Пассивным режимом FTP - это сторона, которая открывает соединение для передачи данных. В Активном режиме клиент должен суметь принять это соединение от FTP сервера. В Пассивном режиме клиент всегда инициирует это соединение сам, и принять его должен уже сервер.

    Пассивный режим работы FTP предназначен для соединения клиентов, находящихся за Firewall. В домашних сетях именно этот режим работы должен быть основным режимом FTP сервера, если Вы хотите, чтобы у пользователей не было проблем с доступом.

    Теперь практика в картинках.

    Для начала делаем привязку компьютера к IP , в моём случае это 10.0.0.100


    затем настраиваем стандартные порты фтп

    и добавляем порты для работы в пассивном режиме


    При работе по протоколу FTP между клиентом и сервером устанавливается два соединения – управляющее (по нему идут команды) и соединение передачи данных (по нему передаются файлы).
    Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключится к тебе. Вот мое имя и мой пароль». Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.

    В активном режиме , когда клиент говорит «Привет!» он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.

    В пассивном режиме , после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных.

    Главное отличие между активным режимом FTP и пассивным режимом FTP – это сторона, которая открывает соединение для передачи данных . В активном режиме, клиент должен принять соединение от FTP-сервера. В пассивном режиме, клиент всегда инициирует соединение.

    Основные команды

    ABOR — Прервать передачу файла
    CDUP — Сменить директорию на вышестоящую.
    CWD — Сменить директорию.
    DELE — Удалить файл (DELE filename).
    EPSV — Войти в расширенный пассивный режим. Применяется вместо PASV.
    HELP — Выводит список команд, принимаемых сервером.
    LIST — Возвращает список файлов директории. Список передаётся через соединение данных.
    MDTM — Возвращает время модификации файла.
    MKD — Создать директорию.
    NLST — Возвращает список файлов директории в более кратком формате, чем LIST. Список передаётся через соединение данных.
    NOOP — Пустая операция
    PASV — Войти в пассивный режим. Сервер вернёт адрес и порт, к которому нужно подключиться, чтобы забрать данные. Передача начнётся при введении следующих команд: RETR, LIST и т.д.
    PORT — Войти в активный режим. Например PORT 12,34,45,56,78,89. В отличие от пассивного режима для передачи данных сервер сам подключается к клиенту.
    PWD — Возвращает текущую директорию.
    QUIT — Отключиться
    REIN — Реинициализировать подключение
    RETR — Скачать файл. Перед RETR должна быть команда PASV или PORT.
    RMD — Удалить директорию
    RNFR и RNTO — Переименовать файл. RNFR — что переименовывать, RNTO — во что.
    SIZE — Возвращает размер файла
    STOR — Закачать файл. Перед STOR должна быть команда PASV или PORT.
    SYST — Возвращает тип системы (UNIX, WIN, …)
    TYPE — Установить тип передачи файла (бинарный, текстовый)
    USER — Имя пользователя для входа на сервер

    Полный список кодов ответов FTP сервера

    100Запрошенное действие инициировано, дождитесь следующего ответа прежде, чем выполнять новую команду.
    110Комментарий
    120Функция будет реализована через nnn минут
    125Канал открыт, обмен данными начат
    150Статус файла правилен, подготавливается открытие канала
    200Команда корректна
    202Команда не поддерживается
    211Системный статус или отклик на справочный запрос
    212Состояние каталога
    213Состояние файла
    214Справочное поясняющее сообщение
    215Выводится вместе с информацией о системе по команде SYST
    220Служба готова для нового пользователя.
    221Благополучное завершение по команде quit
    225Канал сформирован, но информационный обмен отсутствует
    226Закрытие канала, обмен завершен успешно
    227Переход в пассивный режим (h1,h2,h3,h4,p1,p2).
    228переход в длинный пассивный режим (длинный адрес, порт).
    229Переход в расширенный пассивный режим (|||port|).
    230Пользователь идентифицирован, продолжайте
    231Пользовательский сеанс окончен; Обслуживание прекращено.
    232Команда о завершении сеанса принята, она будет завершена по завершении передачи файла.
    250Запрос прошёл успешно
    257«ПУТЬ» создан.
    331Имя пользователя корректно, нужен пароль
    332Для входа в систему необходима аутентификация
    350Запрошенное действие над файлом требует большей информации
    404Данный удалённый сервер не найден
    421Процедура не возможна, канал закрывается
    425Открытие информационного канала не возможно
    426Канал закрыт, обмен прерван
    434Запрашиваемый хост недоступен
    450Запрошенная функция не реализована, файл не доступен, например, занят
    451Локальная ошибка, операция прервана
    452Ошибка при записи файла (недостаточно места)
    500Синтаксическая ошибка, команда не может быть интерпретирована (возможно она слишком длинна)
    501Синтаксическая ошибка (неверный параметр или аргумент)
    502Команда не используется (нелегальный тип MODE)
    503Неудачная последовательность команд
    504Команда не применима для такого параметра
    530Вход не выполнен! Требуется авторизация (not logged in)
    532Необходима аутентификация для запоминания файла
    550Запрошенная функция не реализована, файл не доступен, например, не найден
    551Запрошенная операция прервана. Неизвестный тип страницы.
    552Запрошенная операция прервана. Выделено недостаточно памяти
    553Запрошенная операция не принята. Недопустимое имя файла.

    3 ответов

    Активные и пассивные - это два режима, через которые FTP может работать. FTP использует два канала между клиентом и сервером, командный канал и канал данных, которые фактически являются отдельными TCP-соединениями. Командный канал предназначен для команд и ответов, канал данных предназначен для фактической передачи файлов. Это отличный способ отправки команд на сервер, не дожидаясь завершения текущей передачи данных.

    В активном режиме клиент устанавливает командный канал (от клиентского порта X до порта сервера 21 (b)), но сервер устанавливает канал данных (из порта сервера 20 (b) на клиентский порт Y , где Y был предоставлен клиентом).

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

    Пассивный режим обычно используется в ситуациях, когда FTP-сервер не может установить канал данных. Одной из основных причин этого является сетевые брандмауэры. Хотя у вас может быть правило брандмауэра, которое позволяет вам открывать FTP-каналы до ftp.microsoft.com , серверы Microsoft могут не иметь возможности открывать канал данных через брандмауэр.

    Пассивный режим решает это, открывая оба типа канала с клиентской стороны. Чтобы сделать это надежно яснее:

    Активный режим:

    • Клиент отправляет PORT 2001 (a) на сервер и сервер подтверждает в командном канале.
    • Сервер открывает канал данных с порта сервера 20 (b) на порт клиента 2001 (a) .
    • Клиент подтверждает канал данных.

    Пассивный режим:

    • Клиент открывает командный канал с клиентского порта 2000 (a) на порт сервера 21 (b) .
    • Клиент отправляет PASV на сервер в командном канале.
    • Сервер отправляет обратно (в командном канале) PORT 1234 (a) после начала прослушивания на этом порту.
    • Клиент открывает канал данных от клиента 2001 (a) к серверному порту 1234 (a) .
    • Сервер подтверждает канал данных.

    В этот момент команды и каналы данных открыты.

    (a) Обратите внимание, что выбор портов на стороне клиента зависит от клиента, так как выбор порта канала данных сервера в пассивном режиме зависит от сервера.

    (b) Далее следует отметить, что использование портов 20 и 21 является лишь условным (хотя и сильным). Нет абсолютного требования, чтобы эти порты использовались, хотя клиент и сервер должны были согласовать, какие порты используются. Я видел реализации, которые пытаются скрыть от клиентов, используя разные порты (тщетные, на мой взгляд).

    Недавно я столкнулся с этим вопросом на своем рабочем месте, поэтому, думаю, я должен сказать что-то еще здесь. Я буду использовать изображение, чтобы объяснить, как FTP работает как дополнительный источник для предыдущего ответа.

    Активный режим:

    Пассивный режим:

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

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

    Итак, вам было бы лучше настроить сервер для поддержки FTP с пассивным режимом. Однако пассивный режим сделает вашу систему уязвимой для атак, потому что клиенты должны подключаться к случайным серверам. Таким образом, для поддержки этого режима не только ваш сервер должен иметь несколько доступных портов, ваш брандмауэр должен также разрешать соединения со всеми этими портами!

    Чтобы снизить риски, хорошим решением было бы указать диапазон портов на вашем сервере, а затем разрешить только этот диапазон портов на вашем брандмауэре.

    Для получения дополнительной информации ознакомьтесь с официальным документом.

    Редуцированная версия моей статьи Режимы FTP-подключения (Active vs. Passive) :

    Режим подключения FTP (активный или пассивный) определяет, как устанавливается соединение с данными. В обоих случаях клиент создает соединение управления TCP с портом 21 сервера FTP-сервера. Это стандартное исходящее соединение, как и с любым другим протоколом передачи файлов (SFTP, SCP, WebDAV) или любым другим клиентским приложением TCP (например, веб-браузер). Поэтому при открытии контрольного соединения обычно нет проблем.

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

    В активном режиме клиент начинает прослушивать случайный порт для входящих соединений данных с сервера (клиент отправляет команду FTP PORT , чтобы сообщить серверу, на каком порту он прослушивается). В настоящее время типично, что клиент находится за брандмауэром (например, встроенным брандмауэром Windows) или NAT-маршрутизатором (например, ADSL-модем), неспособным принимать входящие TCP-соединения.

    По этой причине был введен пассивный режим и в настоящее время используется в основном. Использование пассивного режима является предпочтительным, потому что большая часть сложной конфигурации выполняется только один раз на стороне сервера, опытным администратором, а не индивидуально на стороне клиента, (возможно) неопытными пользователями.

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

    Конфигурация сети для пассивного режима

    В пассивном режиме большая часть нагрузки на конфигурацию находится на стороне сервера. Администратор сервера должен настроить сервер, как описано ниже.

    Брандмауэр и NAT на стороне FTP-сервера должны быть настроены не только для того, чтобы разрешать/маршрутизировать входящие соединения на FTP-порт 21, но также и для ряда портов для входящих соединений данных. Как правило, программное обеспечение FTP-сервера имеет параметр конфигурации для настройки диапазона портов, который будет использоваться сервером. И тот же диапазон должен быть открыт/маршрутизирован на брандмауэре /NAT.

    Когда FTP-сервер находится за NAT, он должен знать его внешний IP-адрес, поэтому он может предоставить его клиенту в ответ на команду PASV .

    Конфигурация сети для активного режима

    В активном режиме большая часть нагрузки на конфигурацию находится на стороне клиента.

    Брандмауэр (например, брандмауэр Windows) и NAT (например, правила маршрутизации модема ADSL) на стороне клиента должны быть настроены так, чтобы разрешать/маршрутизировать диапазон портов для входящих соединений данных. Чтобы открыть порты в Windows, откройте "Панель управления" > "Система и безопасность" > "Брандмауэр Windows" > "Дополнительные параметры" > "Входящие правила" > "Новое правило". Для маршрутизации портов на NAT (если есть) обратитесь к его документации.

    Когда NAT в вашей сети, FTP-клиент должен знать свой внешний IP-адрес, который WinSCP должен предоставить FTP-серверу с помощью команды PORT . Чтобы сервер мог правильно подключиться к клиенту, чтобы открыть соединение для передачи данных. Некоторые FTP-клиенты могут автоматически определять внешний IP-адрес, некоторые из них должны быть настроены вручную.

    Smart Firewall/NAT

    Некоторые брандмауэры /NAT пытаются автоматически открывать/закрывать порты данных, проверяя соединение с FTP-соединением и/или переводить IP-адреса подключения к данным в трафик управляющего соединения.

    При использовании такого брандмауэра /NAT вышеуказанная конфигурация не требуется для простого незашифрованного FTP. Но это не может работать с FTPS, поскольку трафик управляющего соединения зашифрован, а брандмауэр /NAT не может его проверять и изменять.

    FTP (File Transfer Protocol) один из самых архаичных протоколов передачи данных. Он был создан ещё до HTTP более 40 лет назад. Тем не менее, технология «FTP клиент-сервер» и «сервер-сервер», простая в использовании и не требующая особого обслуживания, до сих пор служит надежным средством систематизации внутреннего документооборота, создания многопользовательских архивов в локальных сетях корпораций и свободного распространения программного обеспечения, мультимедиа, документов и материалов во всемирной паутине.

    Сервер FTP может быть развернут на любом сетевом устройстве с дисковым массивом для хранения большого объема информации или на обычном компьютере. При подключении к серверу происходит обмен управляющими командами, при которых происходит авторизация (если предусмотрена), назначение портов, определение правил обмена, а затем устанавливается соединение для передачи данных. Оставим в стороне теоретические основы взаимодействия сервера и локального компьютера по протоколу FTP. Этот процесс осуществляется в одном из двух режимов активном и пассивном. В чем их отличия? При активном режиме клиент посылает запросы серверу на подключение, а подключение осуществляет сервер. При пассивном режиме и управляющие команды, и соединение для передачи данных инициируются только клиентом.

    Пассивный режим необходим в случаях, когда компьютер клиента находится в защищенной локальной вычислительной сети. Большинство браузеров поддерживают FTP-протокол, и позволяет подключаться, просматривать и копировать данные с удаленных серверов. Так, в Internet Explorer можно, указав в адресной строке ftp:// “IP адрес сервера” или найти с помощью FileSearch ссылки самых популярных хранилищ файлов. На вкладке/«Свойства обозревателя/Дополнительно»/ можно разрешить использовать пассивный режим FTP.

    Не требуется никаких особых настроек в браузере «Mozilla Firefox». “Total Comander» и «Far” имеют встроенный FTP клиент. Здесь при создании нового соединения необходимо дополнительно указать логин и пароль. К открытым серверам логин по умолчанию «anonymous», а пароль – адрес вашего почтового ящика.

    Все известные «качалки» от FlashGet (по умолчанию пассивный режим) до ReGet Deluxe (по умолчанию активный режим) имеют систему автоматического определения сценариев соединения и закачки, а также снабжаются различными дополнительными акселераторами для ускорения процесса скачивания. Включать или отключать пассивный режим, как правило, можно при создании нового подключения на вкладках FTP.

    Для клиентов, работающих в файлообменном режиме постоянно или довольно часто, необходимо установить FTP менеджер. Это программа серий FileZilla, CuteFTP , SmartFTP , FTP Voyager и т.д. , которые тоже можно найти в открытом доступе в интернете. Эти программы дают возможность более тонкой настройки соединения с удаленным сервером FTP. Они незаменимы в случаях работы с серверами, работающими только в “active mode” , поскольку даже при отсутствии статического IP адреса у клиента, программа может эмулировать его на период сессии.

    Среди русскоязычных пользователей наибольшую популярность получила бесплатная программа с открытым кодом – FileZilla. Эта программа просто устанавливается, у нее понятный русский интерфейс. Для настройки соединений можно использовать несколько вариантов. Общая настройка - Меню/Редактирование /Настройки/. выполнены в древовидном виде и затрагивают настройки всех доступных модулей. В этом же разделе меню можно переключиться на мастера создания подключения, где пошагово будут предложены параметры подключения при выборе активного или пассивного режима. Некоторые FTP серверы предлагают скачать небольшие файлы сценариев подключения, которые можно импортировать в программу и создать готовое постоянное подключение.

    И наконец, среди консольных команд ОС Windows поддерживается команда ftp.exe, которая предоставляет возможность «ручного» подключения к FTP серверу с помощью введения консольных команд (протокол поддерживает 25 команд). Использование и синтаксис ввода этих команд необходимо хорошо знать и усвоить, но это потребует определённых навыков и опыта программирования.

    » Режимы работы ftp серверов

    Для FTP необходимо 2 соединения - первое для команд и второе для данных.Первое соединение (с данными) всегда идет от клиента на сервер, а вот направление второго различается для активного и пассивного режимов.

    В случае активного FTP второе соединение идет от сервера на клиентский компьютер, но так как такое соединение стало невозможно из-за NAT-ов и Firewall-ов, то изобрели пассивный режим, в котором сервер говорит клиенту (через первое соединение) на какой порт открывать второе соединение (обычно порт выбирается сервером случайно в каком-то диапазоне) и второе соединение тоже открывается с клиентского компьютера на сервер.

    Одним важным моментом является то, что большинство FTP серверов (по крайней мере, под Windows) не позволяют ограничивать диапазон портов для второго соединения, что усложняет конфигурацию Firewall-ов и делает невозможной нормальную защиту для многих из них. Например, Serv-U - один из немногих позволяет ограничивать этот диапазон.

    Из «ЧАВО» TMeter

    FTP-протокол подразумевает два различных соединения между клиентом и FTP-сервером. Первое соединение называется «управляющим» (control connection). Оно предназначено для «входа» клиента в FTP-сервера, перехода между каталогами в FTP-сервере и т.п. Для того, чтобы получить список файлов с сервера, скачать файл с сервера или закачать файл на сервер, используется второе соединение, называемое «соединение для передачи данных» (data connection).

    Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит «Привет! Я хочу подключиться к тебе. Вот мое имя и мой пароль». Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.

    В активном режиме , когда клиент говорит «Привет!» он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.

    В пассивном режиме, после того как клиент сказал «Привет!», сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных.

    Главное отличие между активным режимом FTP и пассивным режимом FTP - это сторона, которая открывает соединение для передачи данных . В Активном режиме, клиент должен принять соединение от FTP-сервера. В Пассивном режиме, клиент всегда инициирует соединение.

    Пример активного соединения:

    Control Connection: Client port 1026 > < Server port 20

    Пример пассивного соединения:

    Control Connection: Client port 1026 > Server port 21 Data Connection: Client port 1027 < Server port 2065