Что такое пассивный режим ftp. Активный режим

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

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

Сравнение

Следующая таблица показывает различия между двумя режимами соединения


Настройка активного режима

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

Топология A

Компьютер, напрямую подключенный к Интернету через “модем” (analog, ISDN, DSL, и т.д.), c динамическим или статическим IP.

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

Если вы используете брандмауэр то выберите в DC++ определенный порт. В настройках брандмауэра, разрешите DC++ соединение через указанный порт.

Топология B

Компьютер как часть сети подключенной к Интернету через маршрутизатор. Компьютер имеет статичный или динамический внешний ip адрес. Технологии трансляции адресов (например NAT) не используются.


Активный режим настраивается аналогично топологии А.

Топология C

Компьютер подключенный к Интернету через маршрутизатор или шлюз которые используют технологию NAT (Network Address Translation). NAT это технология позволяющая нескольким компьютерам получать доступ в сеть через единственный ip адрес. В таком случае компьютер имеет собственный внутрисетевой ip (адреса начинающиеся на 192.168.*.*, 10.*.*.* или 172..*.*).

Домашние сети обычно используют данный вид подключения.


Настройка активного режима требует двух шагов:

* Настройка переадресации портов на маршрутизаторе/шлюзе.
* Настройка активного режима в DC++.

Настройка переадресации портов

К сожалению процесс настройки переадресации называется по разному у различных производителей маршрутизаторов. Он может называться: port mapping, virtual servers или другими синонимами. Не важно как они называются, все они используют один принцип. Его идея состоит в следующем: маршрутизатор настраивается таким образом что соединение на определенный порт на маршрутизатор (порт выбранный вами) переадресуется на конкретную машину внутри сети.

Настройка DC++

В меню “Настройки - Настройки Соединения” выберите активный режим. Введите внешний ip адрес. Введите номер порта, это должен быть порт настроенный на переадресацию в предыдущем разделе.

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

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

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

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

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

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

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

Прежде чем разъяснить разницу между активным и пассивным режимами работы FTP, следует установить, что же такое сам FTP и как он работает. Англоязычная аббревиатура FTP расшифровывается как File Transfer Protocol , что в переводе на русский означает протокол передачи файлов. Он предназначен для установки соединения между клиентом, то есть пользователем, и удаленным сервером.

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

Итак, в чем же принципиальное отличие?

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

Рассмотрим эти режимы более наглядно.

Отличия активного и пассивного режимов FTP

Разберем в видео-формате чем отличаются друг от друга пассивный и активный режимы работы протокола FTP.

Как в активном, так и в пассивном режиме, установка соединения начинается с отправки запроса клиентом на . Сначала устанавливается управляющее соединение. Для этого на клиенте создается временный порт с номером в диапазоне от 1024 до 65535 для установки управляющего соединения, а также порт для передачи данных. В активном режиме все происходит в следующем порядке:

  1. 1024 65535 21 .
  2. 1036 ).
  3. Клиент отправляет команду PORT , которая говорит об использовании активного режима FTP, свой IP-адрес, а также номер порта для установки соединения для передачи данных, к которому подключится сервер (в примере порт 1037 ).
  4. Команда подтверждается сервером.
  5. Клиент задает серверу команды для работы с FTP.
  6. Сервер создает соединение передачи данных. Для этого он отправляет запрос с 20 -го порта на указанный клиентом в четвертом пункте порт (1037 ).
  7. Клиент отвечает на запрос.
  8. Сервер подтверждает установку соединения и дает клиенту возможность передавать данные.

Схематически это можно выразить в следующем виде:

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

  1. Клиент посылает с временного порта диапазоном 1024 65535 запрос на порт сервера номер 21 .
  2. Сервер отвечает на временный порт клиента (в примере порт 1036 ).
  3. Клиент подтверждает установку соединения.
  4. Клиент отправляет команду PASV , которая говорит об использовании пассивного режима FTP.
  5. Сервер подтверждает работу в пассивном режиме, посылает свой IP-адрес, а также номер порта для установки соединения для передачи данных, к которому подключится клиент (в примере 2154 ).
  6. С порта для передачи данных (в примере 1037 ) клиент посылает запрос на установку соединения на выданный сервером порт (2154 ).
  7. Сервер подтверждает установку соединения.
  8. Клиент устанавливает соединение.
  9. Клиент задает команды серверу (с управляющего порта на порт 21 , в примере — с порта 1036 на порт 21 ), после чего возможна передача данных.

Представим это в схеме:

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

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

  • Режим отсечки;
  • Активный режим;
  • Режим насыщения.

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

Режим отсечки

Когда напряжение между базой и эмиттером ниже, чем 0.6V - 0.7V, то p-n переход между базой и эмиттером закрыт. В таком состоянии у транзистора практически отсутствует ток базы. В результате тока коллектора тоже не будет, поскольку в базе нет свободных электронов, готовых двигаться в сторону напряжения на коллекторе. Получается, что транзистор заперт, и говорят, что он находится в режиме отсечки.

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

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

Режим насыщения

Если увеличивать ток базы, то может наступить такой момент, когда ток коллектора перестанет увеличиваться, т.к. транзистор полностью откроется, и ток будет определяться только напряжением источника питания и сопротивлением нагрузки в цепи коллектора. Транзистор достигает режима насыщения. В режиме насыщения ток коллектора будет максимальным, который может обеспечиваться источником питания при данном сопротивлении нагрузки, и не будет зависеть от тока базы. В таком состоянии транзистор не способен усиливать сигнал, поскольку ток коллектора не реагирует на изменения тока базы. В режиме насыщения проводимость транзистора максимальна, и он больше подходит для функции переключателя (ключа) в состоянии «включен». Аналогично, в режиме отсечки проводимость транзистора минимальна, и это соответствует переключателю в состоянии «выключен». Все эти режимы можно разъяснить с помощью выходных характеристик транзистора.

Рассмотрим каскад усиления на транзисторе, включенном по схеме с общим эмиттером (рис. 4.14). При изменении величины входного сигнала будет изменяться ток базы Iб. Ток коллектора Iк изменяется пропорционально току базы:

Iк = β I б. (4.5.1)

Рис. 4.14. Схема усилительного каскада (рисунок выполнен авторами)

Изменение тока коллектора можно проследить по выходным характеристикам транзистора (рис. 4.15). На оси абсцисс отложим отрезок, равный Е К - напряжению источника питания коллекторной цепи, а на оси ординат отложим отрезок, соответствующий максимально возможному току в цепи этого источника:

I к макс = E к /R к (4.5.2)

Между этими точками проведем прямую линию, которая называется линией нагрузки и описывается уравнением:

I к = (E к - U кэ)/R к (4.5.3)

Где U КЭ - напряжение между коллектором и эмиттером транзистора; R К - сопротивление нагрузки в коллекторной цепи.

Рис. 4.15. Режимы работы биполярного транзистора (рисунок выполнен авторами)

Из (4.5.3) следует, что

R к = Eк/I к макс = tanα. (4.5.4)

И, следовательно, наклон линии нагрузки определяется сопротивлением R К. Из рис. 4.15 следует, что в зависимости от тока базы Iб, протекающего во входной цепи транзистора, рабочая точка транзистора, определяющая его коллекторный ток и напряжение U КЭ, будет перемещаться вдоль линии нагрузки от самого нижнего положения (точки 1, определяемой пересечением линии нагрузки с выходной характеристикой при I б =0), до точки 2, определяемой пересечением линии нагрузки с начальным крутовозрастающим участком выходных характеристик.

Зона, расположенная между осью абсцисс и начальной выходной характеристикой, соответствующей I б =0, называется зоной отсечки и характеризуется тем, что оба перехода транзистора - эмиттерный и коллекторный смещены в обратном направлении. Коллекторный ток при этом представляет собой обратный ток коллекторного перехода - I К0 , который очень мал и поэтому почти все напряжение источника питания E К падает между эмиттером и коллектором закрытого транзистора:

U кэ ≈ E к.

А падение напряжения на нагрузке очень мало и равно:

U Rк = I к0 R к (4.5.5)

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

Если теперь увеличивать базовый ток I б, то рабочая точка будет перемещаться вдоль линии нагрузки, пока не достигнет точки 2. Базовый ток, соответствующий характеристике, проходящей через точку 2, называется током базы насыщения I б нас. Здесь транзистор входит в режим насыщения и дальнейшее увеличение базового тока не приведет к увеличению коллекторного тока I К. Зона между осью ординат и круто изменяющимся участком выходных характеристик называется зоной насыщения. В этом случае оба перехода транзистора смещены в прямом направлении; ток коллектора достигает максимального значения и почти равен максимальному току источника коллекторного питания:

I k max ≈ I к нас (4.5.6)

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

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

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

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

В современных сетях (NAT, брандмауэр, балансировщик нагрузки) следующие особенности FTP не позволяют ему нормально работать:

  1. Два отдельных соединения TCP / IP: для передачи данных и для передачи команд;
  2. Соединение для передачи данных может быть установлено на случайном номере порта;
  3. Соединение для передачи данных может исходить как от сервера к клиенту, так и от клиента к серверу;
  4. Адрес назначения соединения для передачи данных (выбор режима работы) согласовывается на лету между клиентом и сервером через соединение для передачи команд;
  5. Соединение для передачи команд находится в режиме ожидания, пока происходит передача данных через соединение для передачи данных.

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

Проблема 2 вызвана тем, что FTP не может работать в том случае, если входящие порты жестко ограничены только определенно известными. Т.е. в обычном режиме FTP не может работать только при открытом 21 входящем порте, используемым соединением для передачи команд, ему также необходим набор открытых портов высокого значения (49152-65534) для передачи данных.

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

Проблема 5 вызвана тем, что маршрутизирующие устройства могут прерывать «зависшие» соединения для передачи команд.

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

FTP поддерживает два режима работы: активный и пассивный. Они различаются механизмом установления соединения для передачи данных:

  • В активном режиме сервер подключается со своего 20-го порта на оговоренный порт клиента.
  • В пассивном режиме клиент подключается со своего случайного порта на оговоренный порт сервера.

Таким образом, все современные FTP-клиенты обговаривают с сервером то, от кого данные передаются и кто инициирует соединение. Клиент может указать использование активного режима , послав команду «PORT», которая сообщит серверу, что нужно подключиться на определенный IP и порт клиента, и начать отправку данных. Или клиент может использовать пассивный режим , послав команду “PASV” серверу, которая сообщит серверу, что клиент ожидает IP и порт сервера для начала приема данных.

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

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

Ftp://:@:/

Пример сессий с использованием активного и пассивного режимов передачи данных

Пример активного режима, где клиент подключается анонимно и совершает одну активную передачу данных (просмотр директории).

Client: USER anonymous
Server:
Client: PASS NcFTP@
Server: 230 Logged in anonymously.
Client: PORT 192,168,1,2,7,138 Клиент хочет чтобы сервер подключился на порт 1930 и IP адрес 192.168.1.2.
Server: 200 PORT command successful.
Client: LIST
Server: 150 Opening ASCII mode data connection for /bin/ls. Сервер подключается с порта 21 на порт 1930 и ip адрес 192.168.1.2.
Server: 226 Listing completed. Данные переданы успешно.
Client: QUIT
Server: 221 Goodbye.

Пример пассивного режима

Client: USER anonymous
Server: 331 Guest login ok, send your e-mail address as password.
Client: PASS NcFTP@
Server: 230 Logged in anonymously.
Client: PASV Клиент запрашивает у сервера данные для подключения.
Server: 227 Entering Passive Mode
(172,16,3,4,204,173)
Сервер отвечает клиенту, что нужно подключаться на порт 52397 и IP адрес 172.16.3.4.
Client: LIST
Server: 150 Data connection accepted from
172.16.3.4:52397; transfer starting.
Клиент подключился к серверу на порт 52397 и IP адрес 172.16.3.4.
Server: 226 Listing completed. Данные переданы успешно.
Client: QUIT
Server: 221 Goodbye.

Частные проблемы:

    PORT режим - FTP клиент за NAT или брандмауэром

    Наибольшая проблема, с которой сталкиваются клиенты FTP, использующие активный режим – сервер должен сам подключаться на клиентский ip адрес. Если на его пути будет стоять брандмауэр, отсекающий все входящие подключения, сессия FTP не состоится. Другая проблема - если клиент находится за NAT и использует внутренний ip адрес. Сообщив свой внутренний адрес серверу, клиент обрекает его на невозможность подключения.

    Решение 1. Клиент FTP должен быть настроен на использование пассивного режима.

    Решение 2. Настройка NAT за слежением соединений FTP. Когда клиент использует активный режим, NAT устройство должно переписывать внутренний адрес клиента и заменять его внешним адресом устройства. Тогда соединение, для передачи данных с FTP сервера поступив на внешний адрес NAT устройства, будет проброшено им на внутренний адрес FTP клиента за NAT.

    PASV режим - FTP сервер за брандмауэром

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

    Решение 1. Администратор может открыть группу портов на брандмауэре, через которые может происходить соединение с FTP сервером.

    Решение 2. Если есть поддержка со стороны брандмауэра, администратор может настроить так, чтобы порты автоматически открывались для установления пассивного соединения с FTP сервером. Эта настройка схоже с той, что была описана для активного клиента, находящегося за NAT. Таким образом, когда брандмауэр отслеживает ответ FTP сервера на пассивный запрос клиента, он временно открывает порт, указанный в ответе, и только для того IP, с которого исходил пассивный запрос.

    PASV режим - FTP сервер за NAT

    В режиме PASV FTP сервер отвечает клиенту своим внутренним ip адресом и портом, чем обрекает клиента на невозможность подключения.

    Решение 1. Настройка NAT за слежением соединений FTP для передачи данных. Когда сервер отправляет ответ в пассивном режиме, NAT устройство должно переписывать внутренний адрес сервера и заменять его внешним адресом устройства. Тогда соединение для передачи данных с FTP клиента, поступив на внешний адрес NAT устройства, будет проброшено им на внутренний адрес FTP сервера за NAT.

    PASV режим - FTP сервер за балансировщиком нагрузки

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

    Решение 1. Каждому FTP серверу за балансировщиком присвоить легитимный ip адрес, доступный извне. В этом случае FTP сервер будет способен самостоятельно обслуживать FTP клиентов в пассивном режиме, минуя балансировщик.

    Решение 2. Настройка балансировщика за слежением соединений FTP для передачи данных. Когда сервер отправляет ответ в пассивном режиме, балансировщик должен переписывать внутренний адрес сервера и заменять его внешним адресом балансировщика. Тогда соединение для передачи данных с FTP клиента, поступив на внешний адрес балансировщика, будет проброшено им на внутренний адрес FTP сервера за балансировщиком.

    Решение 3. Настроить FTP сервер так, чтобы его ответы в пассивном режиме содержали внешний адрес балансировщика, а не сервера и надеется, что балансировщик перенаправит соединение на ожидающий сервер.

    Неразрешимая проблема - брандмауэры на обоих концах

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

    FTP сервер на нестандартном порте

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

    Но даже в этом случае брандмауэр на стороне клиента может помешать. Это может произойти, если брандмауэр на стороне клиента жестко требует, чтобы FTP соединение для передачи данных от FTP сервера исходило с 20 порта (в активном режиме). Если же сервер FTP работает на порту N, то по спецификации FTP его соединения для передачи данных будут исходить с порта N – 1 и блокироваться брандмауэром клиента.

    Проблемы, вызванные брандмауэрами преждевременно завершающими FTP сессию

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

    Решением данной проблемы является устройство, поддерживающее соединение для передачи команд в активном состоянии даже не смотря на то, что по нему долго не передавались пакеты. Другой вариант - включение функции “Keep Alive” в стеке протокола TCP/IP на стороне клиента или сервера, которая отправляет пакет проверки доступности через определенные интервалы времени, и если сторона назначения не отвечает - закрывает нормально соединение. Если же принимающая сторона ответит, то соединение со стороны брандмауэра будет считаться активным.

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


Есть вопросы?

Сообщить об опечатке

Текст, который будет отправлен нашим редакторам: