Написать уникальный текст о FTP, когда по запросу “ftp что это” Гугл возвращает более 7 миллионов материалов – задача непростая. Но мы попытаемся.
FTP – древнейший протокол обмена файлами (собственно, аббревиатура FTP так и расшифровывается – File Transfer Protocol). Появился он в 1971 году, задолго до появления HTTP и даже TCP/IP. По возрасту он ровесник системы электронной почты.
Протокол хоть и древний, но используется по сей день. Он простой и популярный, а программа для обмена файлами (то есть FTP-клиент) есть практически в любой операционной системе (команда ftp) – это и есть залог успеха.
Для личного обмена файлами между пользователями можно использовать самые разные средства – можно передать файл через мессенджер (Skype, Viber, Telegram и т.д.), можно отправить по электронной почте, загрузить в облако (Яндекс.Диск, Google Drive) и поделить ссылкой. Но у всех этих способов есть, как правило, ограничение по размеру передаваемого файла/размеру хранилища облачного диска. В случае с протоколом FTP нет никаких ограничений на размер файла (разве что ограничение файловой системы), а размер хранилища ограничен только размером диска сервера.
Список команд можно получить путем ввода команды help, а описание каждой команды – с помощью команды
help > имя команды
Если вы заинтересовались командами FTP, с полным списком можно ознакомиться по
ссылке.
Рис. 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-сервер.
Рис. 2. Приложение FileZilla
Чтобы подключиться к FTP-серверу нужно знать три основных параметра:
имя или IP-адрес сервера
логин
Как правило, протокол FTP использует порт 21, но если администратор в настройках сервера изменил номер порта, то для подключения необходимо еще и указать нестандартный номер порта.
Некоторые FTP-серверы поддерживают анонимный режим: к ним можно подключиться, указав в качестве имени пользователя anonymous (или guest), а в качестве пароля – свой email. В анонимном режиме пользователи обычно не имеют права загружать файлы на сервер, а только скачивать файлы с него. Такой режим обычно используется для доступа к публичной информации, когда файлы разрешено скачать всем желающим.
Для подключения к FTP-серверу в приложении FileZilla нужно указать параметры доступа и нажать кнопку Быстрое подключение. На рис. 3 показано, что мы подключились к публичному FTP-серверу ftp.redhat.com. Слева изображен список каталогов локального компьютера, а справа – список каталогов FTP-сервера.
Рис. 3. Подключение к серверу
Не нужно думать, что с 1971 года в протоколе FTP ничего не изменилось. Появлялись новые режимы работы, новые команды, совершенствовалось программное обеспечение (одних только серверов насчитывается десятка два). Появлялись и различные расширения самого протокола. Одно из таких расширений – FTPS, то есть FTP Secure. Данное расширение позволяет зашифровать FTP-сеанс. Если обычный FTP-сеанс не зашифрован, что очень небезопасно хотя бы потому, что даже пароль пользователя передается по Сети в открытом виде и доступен для перехвата, то расширение FTPS устраняет этот недостаток. Недостатков у этого расширения два – используется другой порт, отличный от 21, и далеко не все серверы поддерживают его.
Если вам нужен клиент с поддержкой FTPS, посмотрите в сторону Bitvise SSH Client – это приложение, позволяющее не только подключаться к серверу по протоколу SSH (Secure Shell), но и обмениваться файлами по FTPS.
У всего есть недостатки. Поскольку наш протокол довольно древний, то и недостатков у его тоже много. Но основных недостатков всего два:
Тем не менее, преимущества этого протокола перекрывают недостатки. Основное преимущество – низкие накладные расходы при обмене файлами, что позволяет выжать из существующего соединения максимум. Загрузка больших файлов по FTP будет выполнена гораздо быстрее загрузки по HTTP при одинаковой пропускной способности.