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

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 команд). Использование и синтаксис ввода этих команд необходимо хорошо знать и усвоить, но это потребует определённых навыков и опыта программирования.

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


Исправляем это недоразумение.


Обязательно сохраним оригинальный файл termsrv.dll. Запустим командную строку от Администратора и выполним

copy c:\Windows\System32\termsrv.dll termsrv.dll_old

Затем смотрим вашу версию. Правый клик на файле c:\Windows\System32\termsrv.dll и выберем свойства.


Скачиваем измененный файл соответствующий вашей версии

Если хочется все исправить своими руками, то копируем свой файл termsrv.dll из папки c:\Windows\System32\ на рабочий стол. Открываете его любым hex редактором, например этим бесплатным HxD . И заменяете байты в указанной строчке.

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

Windows 7 SP1 64bit:

173C0: B8 8B
173C1: 00 87
173C2: 01 38
173C3: 00 06
173C5: 90 00
173C6: 89 39
173C8: 38 3C
173CC: 90 0F
173CD: 90 84
173CE: 90 EB
173CF: 90 C2
173D0: 90 00
173D1: 90 00
176FA: 00 01
5AD7E: EB 74
Для Windows 8.1 (64bit) заменяем целиком строку!
в v6.3.9600.16384
строчку
8B 81 38 06 00 00 39 81 3C 06 00 00 0F 84 1B 70 00 00
на
B8 00 01 00 00 89 81 38 06 00 00 90 90 90 90 90 90 90

в 6.3.9600.16384 to 6.3.9600.17095
строчку
39 81 3C 06 00 00 0F 84 9E 31 05 00
на

6.3.9600.17095 to 6.3.9600.17415
строчку
39 81 3C 06 00 00 0F 84 D3 1E 02 00
на
B8 00 01 00 00 89 81 38 06 00 00 90
Воспользуемся инструментом замены с типом шестнадцатеричные значения

После замены сохраняете изменения.

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



Далее останавливаете службу удаленного рабочего стола


Заменяем файл termsrv.dll на скаченный или измененный.

Еще нужно изменить значение ключа в реестре HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Terminal Server\fSingleSessionPerUser на 0!

И снова запускаем службу!

Подключаемся и радуемся! Теперь локального пользователя не выкидывает из системы!

Для Windows XP
1) Редактируем файл
termsrv.dll (SP2 5.1.2600.2180) 295,424 bytes

128BB: 75 -> 74
217D3: 8B -> 33
217D4: C7 -> C0
2192D: 8B -> 33
2192E: C7 -> C0
225B7: 54 -> 20
termsrv.dll (SP3 5.1.2600.5512) 295,424 bytes
22A17: 74 -> 75
22A69: 7F -> 90
22A6A: 16 -> 90
2) Заменять файл в директории C:\Windows\System32\ нужно в безопасном режиме, поскольку по умолчанию включена защита системных файлов (System File Protection). Для этого перезагрузите компьютер с зажатой F8 , выберите безопасный режим.
3) Добавить ключи реестра

EnableConcurrentSessions ”=dword:00000001

EnableConcurrentSessions ”=dword:00000001
AllowMultipleTSSessions ”=dword:00000001

4) Далее Пуск -> Выполнить, gpedit.msc. В окне редактора групповой политики Конфигурация компьютера -> Административные шаблоны -> Компоненты Windows -> Служба терминалов. Включите Ограничение количества подключений и установите количество подключений равное 3 или более.
5) Перезагружайтесь и подключайтесь!

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


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

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


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

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

    Сравнение

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


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

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

    Топология 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 адрес. Введите номер порта, это должен быть порт настроенный на переадресацию в предыдущем разделе.



    Понравилась статья? Поделиться с друзьями: