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

В этой статье мы расскажем о таких вещах:

  1. как настроить FTP-сервер на компьютере, который подключён к роутеру;
  2. как предоставить к нему доступ из всемирной сети Интернет.

Настройка программы FTP сервера

Установка FileZilla Server

Скачайте и установите любой FTP-сервер, который вам нравится, или с которым вы привыкли работать. Мы для примера скачаем бесплатную программу Filezilla Server с официального сайта: https://filezilla-project.org/download.php?type=server

Запустите скачанный установочный файл:

Нажмите Отклоняю :

Нажмите Отклоняю ещё раз:

Нажмите Установить :

Нажмите I agree:

Next:

Install :

Настройка FTP-сервера FileZilla

Запустите интерфейс программы.

Войдите в настройки: меню Edit -> Settings :

Теперь нужно настроить пассивный режим FTP.

1) Выберите раздел Passive mode settings;

2) Установите галку Use custom port range;

3) Задайте удобный для вас диапазон портов для использования в пассивном режиме;

4) В поле Use the following IP пропишите ваш внешний IP;

5) Нажмите кнопку OK для сохранения настроек.

Теперь необходимо настроить учётные записи пользователей и указать домашние директории.

Войдите в меню Edit и выберите Users :

В разделе General нажмите Add :

Введите имя пользователя и нажмите OK :

1) Установите галку возле Password . Этим вы укажете, что для данной учётной записи будет требоваться пароль.

2) Задайте пароль для данной учётной записи;

3) Перейдите в раздел Shared folders:

В разделе Shared folders нажмите Add :

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

Задайте разрешения для данного пользователя в папке.

В области Файлы вы можете разрешить или запретить следующие операции с файлами :

  • Чтение;
  • Запись;
  • Удаление;
  • Изменение.

В области Папки вы можете разрешить или запретить следующие операции с папками :

  • Создание;
  • Удаление;
  • Просмотр списка;
  • Просмотр вложенных папок.

После того, как вы зададите разрешения для данного пользователя в текущей папке, нажмите OK для сохранения настроек:

Настройка компьютера

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

Заходим в Панель управления и выбираем Брандмауэр Windows.

Нажимаем правой кнопкой мыши по Правила для входящих подключений и выбираем Создать правило :

Выбираем вариант Для программы и нажимаем Далее :

Установите переключатель в положение Путь программы и с помощью кнопки Обзор укажите путь к файлу FileZilla Server.exe.
Затем, нажмите Далее:

Выберите вариант Разрешить подключение и нажмите Далее:

Дайте произвольное имя правилу и нажмите Готово :

Настройка роутера: создание правил проброса портов

Теперь нам необходимо создать проброс портов на шлюзе. Шлюзом может быть роутер, модем или другое устройство. Войдите на веб-интерфейс роутера (читайте статью о том, что такое веб-интерфейс и как на него зайти: ) и откройте раздел перенаправления портов. Подробнее о перенаправлении портов читайте в нашей статье: Что такое проброс порта.

Создайте два правила.

Правило №1: проброс внешнего порта 21 на порт 21 компьютера, где установлена программа FTP-сервер.

Правило №2: проброс диапазона портов на такой же диапазон портов на компьютере с установленной программой FTP-сервер.

Сохрание настройки.

Как удалённо подключиться к FTP-серверу

Для доступа к FTP-серверу вы можете использовать либо FTP-клиент, либо браузер, либо даже проводник. Конечно же, предпочтительнее использовать FTP-клиент. Мы рекомендуем бесплатную программу FileZilla client . Скачать его вы сможете на официальном сайте: https://filezilla-project.org/download.php?type=client

В поле Хост введите либо ), либо внешний IP-адрес роутера. Затем, введите имя пользователя, созданное вами в программе FileZilla Server на компьютере, соответствующий ему пароль и нажмите кнопку Быстрое соединение :

Если в пробросе портов в настройках роутера вы не изменяли порт №21 на нестандартный, то поле Порт можно оставить пустым — программа по умолчанию подключится на 21-ый порт.

Обзор настройки FTP-сервера под Windows на примере Serv-U 6.4.

1. Что же такое — «FTP»?

Для чего вообще писался этот текст? Уже много раз меня спрашивают начинающие пользователи многих локалок — «как обменяться файлами с соседом»? Ведь соединиться через сетевое окружение, как это было раньше, уже не получается — в локалке запретили протокол NetBIOS, отвечающий за поддержку сетевых возможностей Windows. Кстати, сделано это было не просто так, а из-за того, что этот протокол — одна из наиболее опасных дырок в защите компьютеров, так как именно через эту дырку попадает большая часть вирусной заразы...

Наверняка, многие слышали про FTP, но не все знают, что это не таинственное заклинание древних инков, а английское сокращение, расшифровывающееся как File Transfer Protocol — протокол передачи файлов. Это один из базовых протоколов Интернета, разработанных для обмена информацией. В отличие от HTTP, который служит главным образом для передачи web-текстов и изображений, FTP применяется для обмена произвольными файлами, часто большого размера.

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

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

Немного пояснений:

Для обмена файлами существуют и другие способы — пиринговые клиенты (типа DC++, Emule, Torrent), HTTP, FTP и еще несколько вариантов. Но пиринговые клиенты требуют сложной настройки и содержимое общих ресурсов доступно для скачивания всем.

Доступ к файлам на удаленном компьютере по протоколу FTP осуществляется с помощью программ, которые называются FTP-клиентами (в качестве примитивного FTP-клиента может использоваться www-браузер, например Opera, Firefox или Microsoft Internet Explorer). Практически все современные операционные системы включают также FTP-клиент для работы в командной строке, который так и называется «ftp».
Если у вас есть интернет, то вы можете получить доступ к большому количеству информации, расположенной в различных уголках Сети. Для использования FTP необходим так называемый FTP-клиент, подключающийся к FTP-серверу (сервер, откуда скачиваются данные). Анонимный FTP позволяет подключаться к серверу даже не будучи на нем зарегистрированным (не имея на нем логина и пароля). Как правило, в качестве логина (имени пользователя) указывается anonymous, а в качестве пароля — ваш e-mail. Это делается на больших серверах для того, чтобы каждый мог скачать, к примеру, бесплатный дистрибутив Linux или какие-нибудь другие полезные программы.

Файлы передаются в нескольких режимах — режим ASCII (сокращение от American Standard Code for Information Interchange) используется для передачи преимущественно текстовых файлов (не забывайте, что HTML, по своей сути, тоже текстовый файл). Binary режим, как следует из названия, используется для передачи двоичного кода (проще говоря, используется для нетекстовых файлов, например, картинок).
Когда мы бродим по интернету, открываем сайты, то используем HTTP — этот протокол специально предназначен для загрузки веб-страниц. В то же время HTTP используется и для загрузки файлов. Поэтому у многих пользователей возникает закономерный вопрос — зачем использовать FTP для закачки, если это позволяет делать HTTP? Каждый из этих протоколов задумывался для своих целей. Как мы уже выяснили, FTP был разработан специально для передачи файлов, поэтому этот процесс в нем реализован наиболее эффективно, чем больше размер файла, тем более оправдано использование FTP.

Понятия «клиент» и «сервер» часто встречаются в компьютерной литературе. Сервер — это программа или компьютер, предоставляющий свои ресурсы клиентам. Сервер принимает запросы от клиента и выполняет затребованные действия.
Любой сервер представляет собой программу, службу (в терминах Windows) или демон (daemon, в терминологии Unix). Любая служба принимает запросы от клиентов на том или ином пограммном порте — через этот порт огранизуется установка соединения и передача данных. Например, сервер FTP по умолчанию принимает запросы от клиентов на порте 21 .

FTP-клиент общается с FTP-сервером при помощи специальных FTP-команд (в зависимости от сервера они могут незначительно отличаться, но в целом набор команд более-менее стандартен). Тогда почему бы не дать возможность пользователю вводить эти команды, чтобы без посредника просматривать содержимое FTP-сервера, закачивать файлы, устанавливать режимы передачи. Именно так и было на заре интернета. Первопроходцы глобальной паутины торопливо набирали команды для FTP-сервера прямо из консоли. Существует такая возможность и поныне. Правда, если для пользователей Unix-систем такая манера общения с FTP весьма привычна, то обладатели Windows наверняка даже и не подозревают, что их система позволяет это делать. Надо отметить, что использовать консольный вариант FTP-клиента поначалу очень даже увлекательно, а в некоторых случаях и чрезвычайно полезно.

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

где user — это имя пользователя, двоеточие — это разделитель для программы между именем пользователя и паролем, password — это пароль. Собачка означает разделение между данными о пользователе и адресом. Дальше идёт непосредственно адрес. Это может быть IP-адрес, а может быть и буквенное значение (как например, ftp.microsoft.com). После адреса опять идёт двоеточие, которое разделяет адрес и номер порта подключения. По умолчанию этим портом является порт 21, но может быть и другой, назначаемый администратором сервера.
Адрес может выглядеть и так: ftp://212.199.28.50 . Это будет означать, что имя пользователя — anonymous, паролем является e-mail адрес, а порт — 21-й.

В качестве клиентской программы удобно использовать следующие программы — Total (Windows) Commander, FAR, FlashFXP, CuteFTP, SmartFTP и даже некоторые менеджеры загрузок, такие как FlashGet и Download Master, у которых FTP клиент встроен в программу.

2. Выбор FTP сервера

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

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

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

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

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

Возможность наблюдения за действиями подключенного пользователя. Это полезно для ведения статистики, настройки, да и просто интересно, кто чем занимается на вашем сервере:)
В принципе, компания Microsoft начиная с Windows 2000 включает в поставку свой FTP сервер. Но он весьма неудобен как в наладке, так и в работе, и имеет множество ограничений. Перепробовав множество продуктов, я выбрал для себя сервер «Serv-U FTP Server», как наиболее отвечающий поставленным выше условиям. Именно о нем я и буду рассказывать дальше.

Также профессиональным и стабильным считается Gene6 FTP Server . Лично мне еще очень нравится совмещенный HTTP/FTP/Mail/DNS/DHCP бесплатный Small HTTP Server . Он отличается простотой и очень малым количеством занимаемой оперативной памяти (порядка 800 Кбайт!!!).

3. Установка FTP сервера Serv-U

Для примера установки возьмем «Serv-U.FTP.Server.v6.4.0.4.Corporate.Edition», этот архив вы можете найти в конце статьи. Распаковав его, вы получите файл «ServUSetup.exe» — это инсталлятор сервера, и файл «keygen.exe» — генератор лицензионного ключа для программы. Ну или вы не хотите пользоваться нелицензионным софтом, вы можете заплатить за использование программы разработчику:)
Запускаем инсталлятор.
Согласившись с лицензией, говорим, куда надо поставить сервер.
Теперь нас попросят указать нужные компоненты. Для установки серверра нам нужны оба.
Если вы купили программу, теперь можете ее зарегистрировать как описано в руководстве к ней. А для остальных последовательность действий такова: справа внизу, в трее, у вас появится значок: это значит, что сервер пока выключен. Необходимо выйти из этой программы, выбрав Exit и запустить keygen, сгенерировать ключ — он будет автоматически скопирован в буфер обмена.
Установка программы-сервера закончена. Щелкаем правой кнопкой мыши по иконке и выбираем из всплывающего меню «Start Administrator...»

4. Настройка сервера, создание учетных записей

Запустив программу администрирования, мы увидим окно следующего вида:

В Главном меню программы находятся основные управляющие элементы, но подробно мы их изучать не будем, вы сами сможете это сделать потом, прочитав справку к программе. То же самое касается элементов управления и статус-панели. Принцип настройки сервера такой — в дереве настроек мы выбираем нужный раздел и в панели настроек и отчетов видим одну или несколько закладок с настройками и (или) статистикой. Для начала создадим свой FTP сервер. Войдя в раздел «Local server», вы сможете управлять установленным у вас на машине сервером. При входе в раздел в панели настроек появится следующая информация:

Если поставить галочку на пункте «Start automatically», ваш сервер будет стартовать вместе с Windows при каждой загрузке. Далее идет статус сервера (зеленый цвет — работает, красный — выключен). Далее кнопка, включающая/выключающая сервер. И кнопка, задающая главный пароль администратора. Если вы его зададите, никто кроме вас не сможет менять настройки вашего сервера. Здесь и далее я буду описывать только основные ходы для развертывания своего FTP сервера, об остальных дополнительных возможностях вы можете узнать из справки к программе. Для начала проведем настройку глобальных параметров сервера, войдя в раздел «Settings».

В закладке «General» нам интересны пункты:

Max. Upload speed: максимальная скорость загрузки файлов на ваш сервер с клиента
Max. Download speed: максимальная скорость отдачи файлов клиентам (всем вместе — это глобальная настройка)
Max. no. of users: максимальное количество одновременно подключившихся клиентов (также глобальная настройка)
Delete partially uploaded files: если клиент пытался закачать к вам на сервер файл, но не до конца его закачал, надо ли удалять такой незавершенный файл. Если стоит галка — то удалять.
Во всех остальных закладках оставляем настройки по умолчанию.

В разделе «Activity» можно посмотреть отчет о работе программы, добавить IP адрес в список запрещенных IP адресов, или отправить сообщение подключенным клиентам. Углубляться в эти возможности мы не будем, поэтому идем к следующему разделу.

Раздел «Domains» — основной рабочий инструмент администратора. Пока в нем пусто. Правой кнопкой мыши щелкнем на пустой панели настроек и выберем из меню пункт «New Domain» (можно просто нажать клавишу Ins). Появится мастер создания домена. В первом окне вам предложат выбрать IP адрес, по которому будет «жить» ваш FTP сервер. Если оставить поле пустым, сервер будет отвечать по всем адресам (например и в локалке и в интернете). Если сервер делается только для локалки — из выпадающего списка выберите свой IP адрес в локальной сети:

Нажав кнопку «Next», переходим к следующему вопросу — надо ввести имя домена. Если вы делаете интернетовский FTP, можете в качестве названия ввести его адрес, это даст возможность не запутаться при большом количестве доменов. А можете просто ввести название своего FTP, к примеру «Мой FTP сервер»:

Снова «Next», выбираем порт для FTP сервера. Стандартно для FTP используется 21 порт TCP, но если вы хотите спрятать ваш FTP порт от сканеров, можете указать другой, главное, чтобы на нем не сидела другая программа. Также не забудте открыть этот порт в файрволе или брэндмауэре (если он у вас стоит), иначе никто не сможет попасть к вам на FTP сервер! Выбор порта для домена позволяет организовать несколько FTP на разных портах с разным содержимым. Именно для этого и нужны домены.

2 раза нажимаем «Next» и выходим из мастера. Видим вот такой экран глобальных настроек домена:

Элементы в закладке «Domain» означают:

Name: имя домена
Domain IP address: IP адрес домена
Domain type: где храняться настройки домена (в INI файле или в реестре)
Security: поддерживать ли SSL секретность
FTP port number: номер порта сервера
Enable dynamic DNS: используется в интернете при работе службы DynDNS
Domain is... (online/offline): текущее состояние домена (зеленый — включен, красный — выключен)
Put Domain offline: кнопка выключения домена

Теперь проведем «тонкую настройку» полученного домена. Для этого перейдем в раздел «Settings» нашего домена:

В закладке «General» обращаем внимание на следующие значения:

Max no. of users: максимум клиентов, которые могут одновременно подключится к домену.
Minimum password length: минимальная длина пароля для пользователя. Если не задано — не проверяется

На закладке Vitual Paths указываются виртуальные папки и пути в ним! Папке дается виртуальное имя (Vitual name) которое и будет отображаться у пользователя, вошедшего по ftp, вместо реального. При этом эти папки надо разрешить хотя бы для чтения (Read) в настройках у каждого конкретного пользователя. Как это сделать — читай ниже.
Mapped to — это путь к папке пользователя, к котрой будет присоединяться (монтироваться) виртуальная папка. К ней также у пользователя должен быть доступ.

Еще одна закладка, на которую можно обратить внимание - «Messages»:

Здесь можно заменить стандартные сообщения сервера на свои собственные, к примеру с названием своего FTP или почтовым адресом для связи. Внимание! Сообщения могут быть только на английском языке или написаны транслитом!
Идем в раздел «Users» и создаем нового пользователя также, как создавали до этого домен. Появится мастер создания пользователя. Для начала вас попросят ввести имя пользователя. Под этим именем пользователь будет заходить на ваш FTP. Если FTP открыт для всех, то в качестве имени надо использовать имя anonymous . Для любого другого пользователя у вас попросят ввести пароль, для пользователя anonymous пароль спрашивать не будут. Далее указываем начальный каталог, в котором будет содержимое вашего FTP, видимое для данного пользователя:

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

5. Проверка работы

Запустите свой FTP клиент, выберите создание нового соединения, в параметрах соединения укажите адрес FTP сервера, порт (если он не стандартный) и имя/пароль пользователя (если не указывать, то будет использован пользователь anonymous и в качестве пароля подставится нечто, напоминающее E-Mail адрес (мало кто указывает свой реальный e-mail). Не забудте указать прокси сервер, если вы соединяетесь не на прямую! Теперь попробуйте подключиться к своему FTP серверу. Если все сделано правильно, сервер должен ответить сразу.
Можно также обратиться в своему серверу через браузер в пассивном режиме: ftp://login:password@ваш_ip или просто ftp://localhost.

P.S. Не забудьте, что если вы закрыты от внешнего мира файрволом или роутером, то в них необходимо открыть порт 21 на входящие подключения (в роутере из WAN в LAN с любого ip).

Дистрибутив Serv-U FTP Server v6.4 Corporate Edition с видеоинструкцией можно скачать .

    Аббревиатура 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 .

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

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

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

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

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

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

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

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

    PASSV - команда на переключение в пассивный режим, передаваемая 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

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

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

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

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

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

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

    После ввода 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-адреса.

        Данная проблема не требует решения в тех случаях, когда при подключении к интернет используется статический 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-именем.

    Порядок действий следующий:

  • Идем на сайт No-IP.org . Для работы с уже имеющейся или новой учетной записью используется кнопка "Sign In" (в верхней правой части страницы).

  • Создаем, если она еще не создана, свою учетную запись - жмем "Create Account" . Форма регистрации периодически меняется, но обязательными являются ввод желаемого имени пользователя, пароля и вашего E-mail. На указанный при регистрации e-mail приходит письмо с ссылкой для подтверждения регистрации. При регистрации выбираем бесплатный доступ - жмем кнопку Free Sign Up после заполнения всех требуемых полей формы.
  • После успешной регистрации входим на сайт и добавляем запись для своего узла - жмем кнопку "Add Hosts"

    Фактически, необходимо ввести только выбранное имя узла, в данном случае - myhost8.ddns.net . Остальные параметры менять не нужно. Затем необходимо скачать и установить специальное программное обеспечение - Dynamic Update Client (DUC), ссылка на который размещена на главной странице сайта. После завершения установки DUC выполнится его запуск и откроется окно авторизации, где нужно ввести имя пользователя или E-mail и пароль, полученные при регистрации на сайте no-ip.org. Затем нажать кнопку Edit Hosta и поставить галочку напротив созданного ранее имени узла (myhost8.ddns.net) . Теперь, выбранному имени узла будет постоянно соответствовать "белый IP-адрес" вашего подключения к Интернет. При возникновении проблем с обновлением IP-адреса, проверьте, не блокируется ли сетевая активность клиента DUC брандмауэром.

    Настройка FTP-сервера

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

    Настройки FileZilla Server выполняются через меню "Edit" -"Settings"

    Окно General Settings предназначено для общих настроек FTP-сервера.

    В поле "Listen on this port" можно указать номер порта для входящих TCP-соединений. По умолчанию в данном поле установлено значение 21 , и для использования нестандартного номера нужно указать выбранное значение, например - 12321 . Использование нестандартного TCP-порта имеет некоторое неудобство, поскольку требует обязательное указание его значения при создании сеанса:

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

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

    Welcome Message - текст, который передается клиенту при подключении.

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

    IP Filter - настройка правил фильтрации IP-адресов клиентов. По умолчанию - разрешены подключения для любых IP.

    Раздел Passive mode settings служит для настроек пассивного режима FTP и потребует изменения практически всех параметров, принятых по умолчанию.

    Номера портов, которые будут использоваться для передачи данных в пассивном режиме, нужно задавать вручную, поскольку потребуется настройка маршрутизатора для перенаправления их на слушаемый сервером сетевой интерфейс. Поэтому нужно установить галочку на разрешение режима "Use custom port range" и задать диапазон - например от 50000 до 50020 . Количество портов, слушаемых сервером, определяет предельное число одновременных сеансов передачи данных.

    Подраздел IPv4 specific определяет IP - адрес, который будет отправляться сервером в ответ на команду PASV. В данном случае, это должен быть не собственный IP сервера 192.168.1.3, а "белый IP" нашего подключения к Интернет. Поэтому нужно установить режим "Use the following IP" и вместо IP-адреса ввести имя, полученное при регистрации на сервисе динамического DNS - myhost8.ddns.net . В качестве альтернативы, можно использовать режим определения внешнего IP-адреса средствами проекта FileZilla, включив. "Retrieve external IP Address from:". Данный вариант можно выбрать в тех случаях, когда нет возможности использовать средство динамического DNS. Если предполагается использование FTP - сервера в своей локальной сети, нужно установить режим "Don"t use external IP for local connections" (не использовать внешний IP-адрес для соединений внутри локальной сети)

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

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

    Admin Interface settings - настройки панели управления сервером. Можно указать сетевой интерфейс, номер слушаемого порта, IP-адреса, с которых разрешено подключение к панели управления и пароль.

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

    Speed Limit - настройки ограничения скорости передачи данных. По умолчанию - без ограничений.

    Filetransfer compression - настройки сжатия файлов при передаче. По умолчанию - без сжатия.

    SSL/TLS settings включение режима шифрования передаваемых данных. По умолчанию - без шифрования.

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

    Настройка перенаправления портов и брандмауэра

    Для того, чтобы FTP-сервер был доступен из Интернет, необходимо выполнить настройки маршрутизатора таким образом, чтобы входящие соединения, пришедшие на определенные TCP-порты внешнего интерфейса, перенаправлялись на TCP - порты, слушаемые FTP-сервером внутренней сети. Для различных моделей маршрутизаторов настройки могут отличаться терминологией, но смысл их один и то же - принятый на внешнем (WAN) интерфейсе TCP-пакет с определенным номером порта переслать в локальную сеть на нужный IP-адрес и порт. Пример настроек маршрутизатора D-Link DIR-320NRU для перенаправления портов, используемых для пассивного режима FTP:

    Пакеты, принятые на интерфейсе с "белым IP" и имеющие номера портов в диапазоне 50000-50020 будут перенаправляться на IP-адрес, задаваемый полем "Внутренний IP" (в нашем случае - 192.168.1.3). Аналогичным образом создается перенаправление для порта 50021, если вы изменили номер стандартного порта, или на порт 21 FTP-сервера, если вы оставили его без измененния.

    После применения данных настроек, FTP-сервер будет доступен по URL ftp://myhost8.ddns.net:50021 или, для соединения внутри локальной сети:

    ftp://192.168.1.3 - если вы не изменяли стантартный номер порта (21) в настройках FTP-сервера.

    ftp://192.168.1.3:50021 - если используется нестандартный номер порта.

    Вместо IP-адреса можно использовать имя компьютера, если оно может быть разрешено в IP-адрес

    ftp://comp1

    ftp://comp1.mydomain.ru

    Диагностика проблем

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

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

    telnet localhost 21 - если используется стандартный номер порта.

    telnet localhost 50021 - если был изменен стандартный номер порта.

    При выполнении данной команды происходит подключение к FTP-серверу по петлевому интерфейсу и в окне telnet должно отобразиться приглашение сервера (Welcome Message). Если этого не происходит, возможно, сервер остановлен, имеет место конфликт портов, или слушается не порт 21 (50021) . Для диагностики можно использовать команду netstat :

    netstat –nab

    Параметры командной строки означают:

    n - использовать числовые номера портов и адреса IP

    a - отображать все соединения и слушаемые порты

    b - отображать имена программ, участвующих в создании соединений.

    Пример отображаемых результатов выполнения команды:

    Активные подключения

    Имя     Локальный адрес     Внешний адрес     Состояние
    TCP         0.0.0.0:21                 0.0.0.0:0                 LISTENING
    TCP         0.0.0.0:135               0.0.0.0:0                 LISTENING
    RpcSs

    В колонке Локальный адрес имеется значение 0.0.0.0:21 , которое говорит о том, что программа с именем FileZilla Server.exe слушает (состояние LISTENING ) TCP порт с номером 21 на всех сетевых интерфейсах. Если в настройках FTP-сервера был указан конкретный интерфейс и другой номер порта, то это значение будет содержать IP:порт , например – 192.168.1.3:50021

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

    netstat -nab | more

    Или использовать поиск результатов по номеру порта: netstat -nab | find ":21"

    Если сервер недоступен на непетлевом интерфейсе, и доступен на петлевом - нужно разбираться с настройками брандмауэра.

    Настройка пользователей и групп.

    Настройка пользователей и групп выполняется через меню "Edit" - "Users" ("Groups"). Группы создавать необязательно, но иногда удобно, для тех случаев, когда имеется большое количество пользователей, и их права по отношению к FTP-серверу различаются. Настройки и групп и пользователей практически идентичны:

    В данном примере отображен результат добавления пользователя FTP-сервера с именем user1 имеющего полные права на запись, чтение, удаление и слияние файлов, а также на просмотр содержимого, удаление и создание подкаталогов в каталоге C:\ftp\public

    На странице General выполняется добавление, удаление и изменение свойств пользователей.
    На странице Shared Folders выполняются настройки, определяющие перечень каталогов файловой системы, которые будут использоваться FTP-сервером для предоставления доступа к ним по протоколу FTP. Каждому пользователю или группе пользователей может предоставлен свой каталог с определенными правами по отношению к его содержимому.
    На странице Speed limits можно задавать ограничения по скорости обмена данными.
    На странице IP Filter можно задать правила фильтрации для IP - адреса пользователя, указав адреса с которых запрещено или разрешено подключение к серверу.

    Список основных команд FTP

    ABOR - Прервать передачу файла
    CDUP - Сменить директорию на вышестоящую.
    CWD - Сменить текущую директорию.
    DELE - Удалить файл (DELE filename).
    HELP - Выводит список команд принимаемых сервером.
    LIST - Возвращает список файлов директории. Список передается через соединение данных (20 порт).
    MDTM - Возвращает время модификации файла.
    MKD - Создать директорию.
    NLST - Возвращает список файлов директории в более кратком формате чем LIST. Список передается через соединение данных (20 порт).
    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 - Установить тип передачи файла(A- текстовый ASCII, I - двоичный)
    USER - Имя пользователя для входа на сервер

    Пример FTP-сессии

    FTP-клиент подключается к серверу с именем пользователя user1 , пустым паролем и скачивает файл с именем cpu-v . Красным цветом выделены сообщения FTP-сервера, синим - FTP-клиента. Обмен директивами и параметрами может незначительно отличаться для разных версий программного обеспечения FTP-клиента и FTP-сервера.

    После подключения, сервер передает клиенту сведения о себе:
    220-FileZilla Server version 0.9.45 beta
    220-written by Tim Kosse ([email protected])
    220 Please visit http://sourceforge.net/projects/filezilla/
    Клиент передает имя пользователя:
    USER user1
    Сервер запрашивает ввод пароля:
    331 Password required for user1
    Клиент передает пустой пароль:
    PASS
    Сервер проверяет учетную запись пользователя и сообщает о начале сеанса:
    230 Logged on
    Клиент запрашивает тип операционной системы на сервере:
    SYST
    Сервер сообщает, что тип Unix , эмулируемый Filezilla-сервером:
    215 UNIX emulated by FileZilla
    Клиент запрашивает перечень параметров, поддерживаемых сервером:
    FEAT
    Сервер отвечает перечнем поддерживаемых параметров:
    211-Features:
    MDTM
    REST STREAM
    SIZE
    MLST type*;size*;modify*;
    MLSD
    UTF8
    CLNT
    MFMT
    211 End

    Клиент запрашивает текущий каталог сервера:
    PWD
    Сервер сообщает, что текущий каталог – корневой ("/"):
    257 "/" is current directory.
    Клиент сообщает, что будет передавать двоичные данные:
    TYPE I

    Сервер подтверждает тип передаваемых данных:
    200 Type set to I
    Клиент сообщает, что будет использовать пассивный FTP-режим:
    PASV
    Сервер сообщает о переходе в пассивный режим и передает IP и порт для пассивного FTP-режима.
    227 Entering Passive Mode (212,248,22,114,195,97)
    Клиент запрашивает прием файла с именем cpu-v из текущего каталога сервера
    RETR cpu-v
    Сервер сообщает о начале передачи данных:
    150 Opening data channel for file download from server of "/cpu-v"
    По завершении, сервер сообщает об успешной передаче:
    226 Successfully transferred "/cpu-v"

    В заключение добавлю, что проект Filezilla включает в себя не только разработку и поддержку качественного бесплатного FTP-сервера, но и популярного бесплатного FTP-клиента

    Статья с кратким описанием бесплатного FTP клиента для Linux, Mac OS и Windows. Данный FTP клиент поддерживает множество прикладных протоколов передачи данных - FTP, FTP поверх SSL/TLS (FTPS), SSH File Transfer Protocol (SFTP), HTTP, SOCKS и FTP-Proxy. Другими словами, Filezilla FTP Client - это универсальное программное обеспечение для приема и передачи файлов по всем современным прикладным протоколам между узлами на различных платформах.