Интернет служба ftp обеспечивает. Протокол FTP (SFTP, FTPS) — что это такое, соединение между клиентом и сервером по ФТП

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

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

Данные передаются без шифрования трафика, поэтому доступ к логинам и паролям легко могут получить злоумышленники. Для безопасной передачи файлов рекомендуется использовать протокол с TLS-защитой - FTPS, шифрующий данные.

Собственный FTP-сервер имеет определённые преимущества:

  • позволяет управлять сервером и его ресурсами;
  • предоставлять пользователям разные права доступа;
  • для него не нужен статический IP-адрес.
  • нет ограничений скорости;
  • отсутствие оплаты хостеру за его размещение;

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

Компанией Майкрософт в Windows 7 добавлена функция Internet Information Services (IIS), осуществляющая общий доступ из сети к выделенной для этой цели папке. Поэтому, чтобы создать FTP-сервер для Windows 7, не требуется дополнительно устанавливать ПО.

Установка FTP-сервера

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

Для создания ФТП-сервера на Windows 7 необходимо:

  • Нажать «Пуск» и открыть раздел «Панель управления». Для удобства просмотра можно выбрать режим «Мелкие значки».

  • Перейти в раздел «Программы и компоненты», где выбрать «Включение или отключение компонентов Windows».

  • В списке открывшегося меню нужно отметить компоненты, которые следует активировать, поставив рядом галочку. Это папка «FTP-сервер», в ней два пункта: «Расширяемость FTP» и «Служба FTP», а также папка «Средства управления веб-сайтом», а в ней- «Консоль управления IIS». Для запуска нажать OK.

Настройка ФТП-сервера

  1. Теперь нужно снова зайти через «Пуск» в «Панель управления».
  2. Найти раздел «Администрирование» и открыть в этом разделе «Диспетчер служб IIS».
  3. Перейти во вкладку «Сайты», щёлкнув на название правой кнопкой, выбрать из списка «Добавить FTP сайты».
  4. В новом окне требуется указать имя будущего ФТП-сервера, и путь к каталогу с его данными. К следующему этапу настройки можно перейти, нажав кнопку «Далее».
  5. Теперь устанавливаются параметры сервера. В поле IP-адреса выбрать нужный из списка. Можно привязать его к определённому адресу или сделать расширенный доступ, выбрав пункт «Все свободные». При этом должен быть отмечен стандартный порт- 21. Если планируется постоянно использовать FTP-сервер, то следует поставить отметку галочкой «Запускать FTP-сайт автоматически». Выбрать опцию «Без SSL», её можно включить в случае необходимости позже. Снова нажать «Далее».
  6. В новом окне задаётся тип авторизации. В пункте «Проверка подлинности» можно разрешить вход для обычных или анонимных пользователей. Здесь же можно настроить для них права. Нажать«Готово».

После завершения установки в разделе «Сайты» появится новый ФТП-сервер.

Настройка брандмауэра Windows

Теперь обязательно необходимо настроить брандмауэр Windows для открытия портов и функционирования служб.

Снова войти в «Панель управления», затем «Брандмауэр Windows». Найти раздел «Дополнительные параметры».

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

Подключение пользователей

Чтобы на сервер могли заходить пользователи, их необходимо подключить.

  • Во вкладке «Панель управления» открыть папку «Администрирование».

Раздел Администрирование

  • Найти раздел «Управление компьютером», затем перейти к папке «Локальные пользователи». Нажав правой кнопкой на строку «Группы», выбрать функцию «Создать группу». В новом окне указать имя и короткое описание группы, нажать «Создать».
  • Теперь можно подключить пользователей к созданной группе. В папке «Локальные пользователи» нажать правой кнопкой на строку «Пользователи» и выбрать из списка меню «Новый». Заполнить поля, введя имя и пароль, здесь же следует установить галочкой запрет на смену пароля.
  • Для подключения пользователя нажать правой кнопкой на его учётную запись и выбрать из списка меню пункт «Свойства», далее - вкладка «Членство в группах» и кнопка «Добавить». Найти созданную группу, добавить и нажать OK. Эту процедуру нужно выполнить для всех пользователей сервера.
  • На следующем этапе определяются права доступа пользователей группы к рабочему каталогу. Для этого нужно перейти к каталогу «Сайт», щёлкнуть по названию правой кнопкой и открыть «Свойства». Далее - вкладка «Безопасность», в пункте «Изменить» указать название группы и нажать ОК. Затем нужно настроить права для пользователей.
  • Войти в «Диспетчер служб IIS», нажав правой кнопкой на строку «Правила авторизации FTP», добавить разрешающее правило. Можно позволить пользователям запись и удаление данных, а можно только чтение.

Установка и настройка сервера завершена. Однако, теперь нужно знать, как зайти на FTP-сервер.

Стандартные функции Windows позволяют сделать это просто. Достаточно открыть папку «Мой компьютер», затем в адресной строке указать путь к серверу.

Другой способ - создать ярлык подключения к ФТП на рабочем столе компьютера.

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

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

сценарий VBScript iisftp.vbs , обеспечивающий управление службами FTP через командную строку.

Консоль Computer Management используется администраторами, которые управляют своими серверами Windows с помощью MMC . Оснастка Computer Management применяется и для удаленного администрирования , поскольку ее можно запускать на рабочей станции и подключать к администрируемому серверу.

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

Давайте подробно рассмотрим оснастку ММС Computer Management (Управление компьютером).

  1. В меню Start (Пуск) выберите All Programs\Administrative Tools\ Computer Management (Программы\Администрирование\Управление компьютером).
  2. Щелкните на значке Services And Applications (Службы и приложения).
  3. Щелкните на значке Internet Information Services (IIS) Manager (Диспетчер IIS), затем – на папке с именем FTP Sites (FTP-узлы).
  4. Если папка FTP Sites отсутствует, то, вероятно, служба FTP не установлена. Установку служб FTP нужно хорошо обдумать и спланировать, поскольку при инсталляции IIS этот компонент не устанавливается по умолчанию. Для установки службы FTP откройте Control Panel (Панель управления).
  5. Выберите Add And Remove Programs (Установка и удаление программ).
  6. В левой части окна Add And Remove Programs выберите Add And Remove Windows Components (Установка и удаление компонентов Windows). Откроется окно Windows Components Wizard (Мастер компонентов Wndows).
  7. В списке компонентов Windows Component Wizard выберите Application Server (Сервер приложений), затем нажмите на кнопку Details (Состав).
  8. В окне Application Server в списке Subcomponents Of Application Server (Компоненты сервера приложений) выберите Internet Information Services. Затем нажмите на кнопку Details (Состав).
  9. В окне Internet Information Services в списке Subcomponents Of Internet Information Services (Компоненты Internet Information Services) появится выделенный пункт File Transport Protocol (FTP) (Протокол передачи файлов FTP). Щелкните на нем для установки служб FTP.

В консоли MMC разверните все значки, связанные с нужными узлами, для отображения иерархической связи служб и вхождений конфигураций сайта. После установки службы FTP разверните узел FTP Sites ( FTP -узлы) для отображения FTP -сайтов узла. Щелкните на любом из узлов FTP (если таковые существуют) для отображения виртуальных каталогов FTP -сайта (если таковые существуют). При первоначальной установке компонента FTP Services (Службы FTP ) создается FTP - сайт по умолчанию с именем Default FTP Site ( FTP - сайт по умолчанию).

Для выполнения сценария iisftp.vbs выберите Start/Run (Пуск/Выполнить), введите в строке команду CMD и нажмите на клавишу OK. Выполните сценарий iisvbs в открывшемся командном окне. При запуске сценария iisftp.vbs непосредственно из командной строки Run откроется командное окно, команда выполнится, и окно закроется. Таким образом, исключается обратная связь , и вы не узнаете об успешном или ошибочном выполнении команды. Запуск iisvbs в открытом командном окне обеспечит вывод информации о состоянии работы. Окно останется открытым после окончания выполнения команды, и вы сможете просмотреть результаты.

В командном окне введите с клавиатуры iisftp с ключами и аргументами, определяющими действия сценария. Сценарий iisftp.vbs расположен в каталоге \Windows\System32\ ; переменная PATH , установленная на сервере, описывает данное место расположения, поэтому не нужно вводить полный путь к сценарию. Для получения справки по iisftp выполните следующую команду:

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

Предварительные сведения о Windows Script Host

Windows Script Host (WSH) представляет собой программный компонент операционной системы Windows, обрабатывающий сценарии. Сценарии позволяют формировать выходные данные для диалоговых или командных окон. Исполняемый файл WSH, обрабатывающий сценарий с использованием окна, называется Wscript.exe . Исполняемый файл WSH, обрабатывающий сценарий с использованием командного окна, называется Cscript.exe . Windows использует один из этих файлов по умолчанию для обработки сценариев. Стандартную настройку можно изменить при помощи следующей команды:

<имя файла WSH для обработки сценария> //h: <имя файла WSH для обработки сценария>

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

CScript //h: CScript

Для разных сценариев требуются различные исполнители. Администраторы, как правило, отдают предпочтение исполнителю CScript . Для сценария iisftp данный исполнитель является обязательным. Если WS03 настроен на использование Wscript по умолчанию, при первом выполнении iisftp откроется диалоговое окно с сообщением, что для выполнения сценария требуется Cscript . После его закрытия появится второе диалоговое окно, предлагающее изменить стандартную настройку WS03 на использование CScript . При нажатии на кнопку Yes (Да) CScript будет установлен в качестве стандартного исполнителя WSH. При повторном запуске сценарий iisftp выполнится с использованием CScript .

Сетевая файловая служба на основе протокола FTP (File Transfer Protocol) представляет собой одну из наиболее ранних служб, используемых для доступа к удаленным файлам. До появления службы WWW это была самая популярная служба доступа к удаленным данным в Интернете и корпоративных IP-сетях. Первые спецификации FTP относятся к 1971 году. Серверы и клиенты FTP имеются практически в каждой ОС семейства UNIX, а также во многих других сетевых ОС. Клиенты FTP встроены сегодня в программы просмотра (браузеры) Интернета, так как архивы файлов на основе протокола FTP по-прежнему популярны и для доступа к таким архивам браузером используется протокол FTP.

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

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

Протокол FTP выполнен по схеме клиент-сервер. Клиент FTP состоит из нескольких функциональных модулей:

User Interface -- пользовательский интерфейс, принимающий от пользователя символьные команды и отображающий состояние сеанса FTP на символьном экране.

User-Pi -- интерпретатор команд пользователя. Этот модуль взаимодействует с соответствующим модулем сервера FTP.

User-DTP -- модуль, осуществляющий передачу данных файла по командам, получаемым от модуля User-Pi по протоколу клиент-сервер. Этот модуль взаимодействует с локальной файловой системой клиента.

FTP-сервер включает следующие модули:

Server-Pi -- модуль, который принимает и интерпретирует команды, передаваемые по сети модулем User-PL

Server-DTP -- модуль, управляющий передачей данных файла по командам от модуля Server-PL Взаимодействует с локальной файловой системой сервера.

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

Общая схема взаимодействия клиента и сервера выглядит следующим образом:

1. Сервер FTP всегда открывает управляющий порт TCP 21 для прослушивания, ожидая приход запроса на установление управляющего сеанса FTP от удаленного клиента.

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

имя и пароль клиента;

роль участников соединения (активная или пассивная);

порт передачи данных;

тип передачи;

тип передаваемых данных (двоичные данные или ASCII-код);

3. После согласования параметров пассивный участник соединения переходит в режим ожидания открытия соединения на порт передачи данных. Активный участник инициирует это соединение и начинает передачу данных.

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

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

Протокол FTP использует при взаимодействии клиента с сервером несколько команд (не следует их путать с командами пользовательского интерфейса клиента, которые использует человек).

Эти команды делятся на три группы:

команды управления доступом к системе;

команды управления потоком данных;

команды службы FTP.

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

USER -- доставляет серверу имя клиента. Эта команда открывает управляющий сеанс и может также передаваться при открытом управляющем сеансе для смены имени пользователя.

PASS -- передает в открытом виде пароль пользователя.

CWD -- изменяет текущий каталог на сервере.

REIN -- повторно инициализирует управляющий сеанс.

QUIT -- завершает управляющий сеанс.

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

PORT -- определяет адрес и порт хоста, который будет активным участником соединения при передаче данных. Например, команда PORT 194,85,135,126,7,205 назначает активным участником хост 194.85.135.126 и порт 1997 (вычисление номера порта не тривиально, но вполне однозначно).

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

TYPE -- задает тип передаваемых данных (ASCII-код или двоичные данные).

STRU -- определяет структуру передаваемых данных (файл, запись, страница).

MODE -- задает режим передачи (потоком, блоками и т. п.).

Как видно из описания, служба FTP может применяться для работы как со структурированными файлами, разделенными на записи или страницы, так и с неструктурированными.

Команды службы FTP инициируют действия по передаче файлов или просмотру удаленного каталога:

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

STOR -- инициирует передачу файла от клиента на сервер. Параметры аналогичны команде RETR.

RNFR и RNTO -- команды переименования удаленного файла. Первая в качестве аргумента получает старое имя файла, а вторая -- новое.

DELE, MKD, RMD, LIST -- эти команды соответственно удаляют файл, создают каталог, удаляют каталог и передают список файлов текущего каталога.

Каждая команда протокола FTP передается в текстовом виде по одной команде в строке. Строка заканчивается символами CR и LF ASCII-кода.

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

Символьные клиенты обычно поддерживают следующий основной набор команд:

open имя_хоста -- открытие сеанса с удаленным сервером.

bye -- завершение сеанса с удаленным хостом и завершение работы утилиты ftp.

close -- завершение сеанса с удаленным хостом, утилита ftp продолжает работать.

ls (dir) -- печать содержимого текущего удаленного каталога.

get имя_файла -- копирование удаленного файла на локальный хост.

put имя_файла -- копирование удаленного файла на удаленный сервер.

FTP расшифровывается как File Transfer Protocol (протокол передачи файлов). Основное назначение FTP - пересылать (копировать, передавать) файлы в Интернете (с удаленного компьютера на локальный и наоборот). Кроме того, при помощи FTP можно работать со своими файлами прямо на удаленном компьютере (переименовывать их, удалять, создавать каталоги и т.п.).

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

FTP-клиентом может служить интернет-браузер (MS Internet Explorer, Netscape Navigator), программа управления файлами FAR, специализированная программа CuteFTP и другие. FTP-клиент встроен также в некоторые HTML-редакторы, такие как HomeSite, Dreamweaver или FrontPage.

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

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

Алгоритм работы протокола FTP

Работа FTP на пользовательском уровне содержит несколько этапов:

1.Идентификация (ввод имени-идентификатора и пароля).

2.Выбор каталога.

3.Определение режима обмена (поблочный, поточный, ASCII или двоичный).

4.Выполнение команд обмена (get, mget, dir, mdel, mput или put).

5.Завершение процедуры (quit или close).

FTP довольно необычная процедура, так как поддерживает две логические связи между ЭВМ (Рис. 1). Одна связь служит для удаленного доступа и использует протокол Telnet. Другая связь предназначена для обмена данными. Сервер производит операцию passive open для порта 21 и ждет соединения с клиентом. Клиент осуществляет операцию active open для порта 21. Канал остается активным до завершения процедуры FTP. TOS (тип IP-сервиса) соответствует минимуму задержки, так как этот канал используется для ручного ввода команд. Канал для передачи данных (TCP) формируется каждый раз для пересылки файлов. Канал открывается перед началом пересылки и закрывается по коду end_of_file (конец файла). IP-тип сервиса (TOS) в этом случае ориентирован на максимальную пропускную способность.

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

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

Рис. 1. Схема работы протокола FTP.

Организация информационного обмена между двумя удаленными машинами

Возможна и другая схема взаимодействия, когда по инициативе клиента осуществляется файловый обмен между двумя ЭВМ, ни одна из которых не является машиной клиента (рис. 2).

Рис. 2. Организация информационного обмена между двумя удаленными машинами

На фазе задания режима обмена предоставляются следующие возможности:

1. Команда Block сохраняет структуру логических записей файла. 2. Команда Stream устанавливает режим, при котором не производится пересылки контрольной информации для блоков. Это наиболее быстрый режим обмена, он работает по умолчанию. 3. Команда TYPE может задать режимы обмена IMAGE, ASCII или EBCDIC. Из них ASCII - используется по умолчанию. Режим EBCDIC применяется для обменов между ЭВМ, работающими с набором символов EBCDIC. Режим IMAGE предполагает обмен 8-битными байтами, используется для передачи двоичной (а не текстовой) информации. Более подробный список команд помещен ниже. Структурно информация может передаваться в виде файлов (структура по умолчанию), в виде последовательности записей (применимо для текстовых файлов ASCII или EBCDIC) или постранично (последняя структура не относится к числу рекомендуемых). 4. Для копирования файла из удаленного сервера используется команда GET, для копирования группы файлов - MGET, в последнем случае применяются символы заменители, например, MGET *.txt (или RFC-18*.txt, при этом скопируются файлы с RFC-1800.txt до RFC-1899.txt, если таковые существуют в текущем каталоге). Аналогом команды GET в какой-то степени является команда DIR (ls), только она переносит содержимое каталога, что для некоторых операционных систем эквивалентно. При использовании модификации mget проявляйте осторожность - вы можете заблокировать телекоммуникационный канал длительным копированием. Для записи файла в удаленный сервер применяется команда PUT. При операциях обмена обычно используется текущий каталог локальной ЭВМ. В вашем распоряжении всегда имеется возможность поменять местный каталог с помощью команды LCD или ее аналога.

Любая команда обмена выполняется в несколько этапов:

  • Формирование канала под управлением клиента, так как именно клиент выдал команду get, dir, put и т.д.
  • Клиент выбирает произвольный номер порта на своей ЭВМ и осуществляет процедуру passive open для этого порта.
  • Клиент посылает номер порта серверу по каналу управления (порт 21), используя команду PORT. Можно обойтись и без команды PORT (используется тот же порт, что и в командном канале), но это увеличивает задержки и по этой причине не рекомендуется.
  • Сервер получает номер порта по каналу управления и выдает команду active open в указанный порт ЭВМ-клиента. Сервер для канала данных всегда использует порт с номером 20.

Список команд FTP:

  • open имя_сервера - открыть соединение. Открывает соединение с сервером. Это имя можно указать сразу при вводе команды, загружающей клиента: ftp ftp.karelia.ru.
  • cd имя_директории - сменить каталог. Осуществляет переход в другой рабочий каталог на FTP-сервере.
  • dir [имя_файла] - выдать список файлов. Выдает список файлов в текущей директории. Если Вам интересен формат списка каталога, нажмите здесь. Не забывайте, что можно использовать шаблоны групповых операций.
  • get имя_файла [имя_локального_файла] - переписать файл. Переписывает файл с удаленного компьютера на локальный. Если указано имя локального файла, то записывает его под этим именем, иначе - в каталог по умолчанию.
  • mget [имя_файла] - переписать группу файлов. То же самое, что и get, но разрешается использовать шаблоны. Перед копированием каждого файла будет запрашиваться подтверждение. Для отмены подтверждений введите prompt.
  • prompt - отменяет подтверждение в командах mget и mput.
  • put имя_файла [имя_удаленного_файла] - записать файл на сервер. Переписывает файл с локального компьютера на удаленный под именем имя_удаленного_файла. Если оно не указано, то файл записывается в текущий каталог с именем локального файла. Команда запрещена для анонимных пользователей
  • mput [имя_файла] - записать группу файлов. То же самое, что и put, но разрешается использовать шаблоны. Перед записью каждого файла будет запрашиваться подтверждение. Для отмены подтверждений введите prompt.
  • ascii - устанавливает ascii-способ передачи файлов. Используется для пересылки файлов-текстов на английском языке. Однако для надежности лучше использовать binary.
  • binary - устанавливает двоичный способ пересылки файлов. При этом файл при передаче не перекодируется и записывается в неизмененном виде. Это наиболее надежный способ передачи файлов.
  • close - закрывает соединение с данным сервером и производит возврат в командный режим. Эта команда автоматически выполняется при выходе из FTP-клиента.
  • quit - выход из FTP-клиента.
  • user - регистрирует на текущем сервере с новым именем. Используйте эту команду, если Вы первый раз по ошибке неправильно ввели имя анонимного пользователя и не хотите снова перенабирать команду open.
  • lcd [имя_директории] - осуществляет переход на локальном компьютере в указанный каталог.
  • pwd - выводит на экран текущий каталог на удаленном компьютере.
  • system - выводит на экран тип операционной системы на удаленном компьютере.
  • help - помощь. Выдает краткую информацию о командах FTP-клиента или о конкретной указанной команде.

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

В чем суть технологии FTP

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

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

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

Какое предназначение протокола FTP

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

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

Некоторые путают FTP и TCP. Хотя эти понятия невозможно сравнивать. FTP является протоколом, а TCP — это канал, по которому он работает. А устанавливается этот канал между устройством-сервером и устройством-клиентом. «Устройством», а не компьютером, потому что FTP можно использовать и на смартфонах при помощи специальных программ, не только на ПК.

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

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

Как работает FTP протокол

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

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

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

А вот в чем заключается общий алгоритм работы для любого протокола FTP на сервере:

  1. Сервер всегда находится в некотором состоянии ожидания со стороны пользователя. В любой момент клиент может подключиться к серверу, потому управляющий канал держит открытым 21-й порт. Именно по нему переходят все управляющие команды. Порт 21 установлен по умолчанию, но его могут изменить. Тогда пользователю придется вводить номер порта вручную, иначе он не сможет выйти на управляющий канал.
  2. После соединения через порт канала управления, программа со стороны клиента может отдавать команды интерпретатору сервера. Эти команды определяют как изменения внутри файловой системы сервера, так и способ передачи данных, их содержание, объем, тип режима работы и многое другое.
  3. После того, как все команды для передачи данных согласованы, один из участников соединения становится в пассивный режим ожидания (сервер или клиент). Он ждет, пока ему выдадут номер порта, чтобы открыть его и получить или отправить данные по нему.
  4. После окончания процесса передачи данных соединение закрывается, но управляющий канал по-прежнему остается открытым. Это позволяет пользователю все проделать снова: дать команду серверу и вновь начать передачу данных. При этом не нужно заново создавать сессию. Потому-то FTP и работает при помощи двух типов соединения.

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

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

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

Какие команды использует FTP протокол

Скорее всего, вам они в работе не понадобятся, поскольку вы будете использовать юзер-агент в виде программы с удобным интерфейсом. Одна из таких программ — это FileZIlla. Но всякое бывает. Возможно, у вас под рукой будет только Far Maneger, где все необходимо делать через терминал. В таком случае вы должны познакомиться с основными командами для FTP.

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

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

Если в каком-то случае вам необходимо провести реинициализацию, то есть опустить все данные и настройки текущего соединения, то используйте команду REIN. Во время ее использования передача данных не прекращается, и параметры передачи остаются прежними, какими были до команды REIN. Либо можете сделать это еще более радикальным способом — закрыть управляющее соединение при помощи команды QUIT. Она также не прерывает передачу данных, и только после окончания загрузки сессия полностью прерывается.

Для того, чтобы прописать порт в активном режиме, то есть назначить его для пассивного участника, вам нужно воспользоваться командой PORT. Проблема в том, что эта команда очень сложная для написания — вам нужно будет указать 32 бита IP сервера и 16 бит номера порта, что совсем неудобно. Потому лучше найдите способ использовать упрощенный клиент для работы по FTP протоколу, чтобы сильно не нагружать себя. В подобном клиенте изменить номер порта — это плевое дело. Достаточно зайти в настройки, найти нужный пункт и вписать в него другую цифру вместо текущей.

Команды RETR и STOR вы будете использовать для того, чтобы передавать данные с сервера и на сервер. Первая команда нужна для того, чтобы отправить выделенный файл на устройство клиента, а вторая — на сервер. А чтобы переименовать файл, вам нужно использовать две последовательные команды. Сначала пропишите RNFR со старым именем файла, а затем RNTO, указав новое имя файла. Также вам понадобится команда DELE, которая нужна для удаления данных с файловой системы, точнее того файла, который выделен в текущий момент.

Для удаления каталогов используются другие команды. Чтобы удалить выделенный каталог, вам понадобится команда RMD. А чтобы создать новую папку, используйте строку MKD. Также пользователям часто нужна функция просмотра файлов, которые имеются в каталоге. Для этого используйте команду LIST, либо NLST.

Какие есть аналоги у FTP

У протокола передачи данных FTP есть его прямые «наследники», то есть протоколы, которые образованы из ФТП. Это два протокола: TFTP и SFTP. Первый протокол не самый популярный, потому как сильно ограничен в плане команд. Он гораздо хуже подходит для управления файловой системой сервера, чем FTP. Вы не сможете даже просмотреть список файлов каталога при помощи него. Нужен TFTP только для передачи простейшей 8-битной информации, не более. И в этом протоколе есть всего 5 команд, которые нужны для чтения, записи, запроса пакета данных и других простых операций.

А вот протокол SFTP куда более удачный, чем TFTP и в некоторых случаях — чем FTP. Дело в том, что это защищенный FTP протокол. Он является комбинацией шифрованного SSH соединения и протокола передачи данных FTP. Кроме того, в SFTP многие лишние функции исключены, которые были введены в FTP уже давно, но никем не используются. Потому SFTP и безопаснее, чем FTP, и при этом скромнее в хорошем смысле этого слова. Рекомендуется выбирать именно SFTP в тех случаях, когда вы работаете с какими-то конфиденциальными данными. Тогда даже если хакеры и перехватят отправляемые данные по управляющему соединению, они все равно будут зашифрованными и никакой ценности взломщикам не принесут.

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