Передача файлов по FTP

2 Августа 2018

Написать уникальный текст о FTP, когда по запросу “ftp что это” Гугл возвращает более 7 миллионов материалов – задача непростая. Но мы попытаемся.

Что такое FTP и с чем его едят?

FTP – древнейший протокол обмена файлами (собственно, аббревиатура FTP так и расшифровывается – File Transfer Protocol). Появился он в 1971 году, задолго до появления HTTP и даже TCP/IP. По возрасту он ровесник системы электронной почты.

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

Для личного обмена файлами между пользователями можно использовать самые разные средства – можно передать файл через мессенджер (Skype, Viber, Telegram и т.д.), можно отправить по электронной почте, загрузить в облако (Яндекс.Диск, Google Drive) и поделить ссылкой. Но у всех этих способов есть, как правило, ограничение по размеру передаваемого файла/размеру хранилища облачного диска. В случае с протоколом FTP нет никаких ограничений на размер файла (разве что ограничение файловой системы), а размер хранилища ограничен только размером диска сервера. 

Список команд можно получить путем ввода команды help, а описание каждой команды – с помощью команды

 help > имя команды 

Если вы заинтересовались командами FTP, с полным списком можно ознакомиться по  ссылке

File Transfer Protocol

Рис. 1. Набор команд File Transfer Protocol

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

Что такое FTP-сервер? Это просто компьютер, на который установлено соответствующее программное обеспечение. По сути, в FTP-сервер можно превратить любой компьютер – совсем не обязательно, чтобы на нем была установлена серверная операционная система. Но, как правило, такое ПО устанавливается на полноценные серверные ОС – так безопаснее. Ранее мы писали, как можно организовать файловый сервер в Windows Server 2016.

В Linux для установки файлового сервера достаточно установить пакет proftpd. В Ubuntu команда установки будет выглядеть так:

sudo apt-get install proftpd 

Сегодня FTP-сервер – неотъемлемая часть хостинга. Когда пользователь покупает хостинг, то есть услугу по хранению файлов его сайта, доступ к файлам осуществляется, как правило, по FTP. В некоторых случаях в панели управления хостингом есть файловый менеджер, но работать с файлами по FTP обычно удобнее, чем через браузер – хотя бы потому, что нет ограничений на upload файла (по протоколу HTTP устанавливается максимальный размер загружаемого файла, по протоколу FTP размер загружаемого файла ограничен только размером доступного пользователю дискового пространства). При желании развернуть FTP-сервер можно и в корпоративной среде, на виртуальном сервере VDS – для более удобного доступа к файлам. 

Ранее был показан стандартный клиент – команда ftp. Аналогичные команды есть и в Linux, и в macOS. Но интерфейс командной строки в 2018-ом году выглядит очень архаично, поэтому стандартной программой-клиентом пользуются разве что администраторы на Linux-серверах, когда ничего другого под рукой, как правило, нет. А обычные пользователи устанавливают более удобные программы с графическим интерфейсом. Одним из самых удобных клиентов является FileZilla. Кстати, на сайте проекта FileZilla можно скачать не только клиент, но и сервер. Приложение FileZilla Server можно установить на настольную «операционку» («семерку» или «десятку») и превратить обычный десктоп в FTP-сервер. 

Приложение FileZilla

Рис. 2. Приложение FileZilla

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

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

  • имя или IP-адрес сервера

  • логин

  • пароль

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

Некоторые FTP-серверы поддерживают анонимный режим: к ним можно подключиться, указав в качестве имени пользователя anonymous (или guest), а в качестве пароля – свой email. В анонимном режиме пользователи обычно не имеют права загружать файлы на сервер, а только скачивать файлы с него. Такой режим обычно используется для доступа к публичной информации, когда файлы разрешено скачать всем желающим.

Для подключения к FTP-серверу в приложении FileZilla нужно указать параметры доступа и нажать кнопку Быстрое подключение. На рис. 3 показано, что мы подключились к публичному FTP-серверу ftp.redhat.com. Слева изображен список каталогов локального компьютера, а справа – список каталогов FTP-сервера. 

 Подключение к серверу

Рис. 3. Подключение к серверу

Если облака для вас
не просто теория
Широкий спектр услуг
по выделенным северам
и мультиклауд-решениям
Конфигурация VPS и бесплатный тест уже через 2 минуты
Организация вашей IT-инфраструктуры на основе мультиклауд-решения

Безопасный FTP

Не нужно думать, что с 1971 года в протоколе FTP ничего не изменилось. Появлялись новые режимы работы, новые команды, совершенствовалось программное обеспечение (одних только серверов насчитывается десятка два). Появлялись и различные расширения самого протокола. Одно из таких расширений – FTPS, то есть FTP Secure. Данное расширение позволяет зашифровать FTP-сеанс. Если обычный FTP-сеанс не зашифрован, что очень небезопасно хотя бы потому, что даже пароль пользователя передается по Сети в открытом виде и доступен для перехвата, то расширение FTPS устраняет этот недостаток. Недостатков у этого расширения два – используется другой порт, отличный от 21, и далеко не все серверы поддерживают его. 

Если вам нужен клиент с поддержкой FTPS, посмотрите в сторону Bitvise SSH Client – это приложение, позволяющее не только подключаться к серверу по протоколу SSH (Secure Shell), но и обмениваться файлами по FTPS.

Недостатки FTP

У всего есть недостатки. Поскольку наш протокол довольно древний, то и недостатков у его тоже много. Но основных недостатков всего два:

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

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

Получить консультацию специалиста
Персональный ассистент
Cloud.Xelent