FTP-сервер: что это, зачем нужен и как с ним работать — руководство для начинающих

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

Мы простыми словами объясним, что такое FTP-сервер, как он работает, какие бывают типы, и пошагово разберем, как создать свой собственный FTP-сервер на Windows и Linux.

Поиск в интернете
Источник: Unsplash

Главное о FTP-серверах:

  • FTP-сервер — это компьютер или программа, которая позволяет передавать файлы по протоколу FTP между устройствами в сети.
  • Протокол FTP использует два отдельных канала: один для команд, другой — для самой передачи данных.
  • Существуют анонимные FTP-серверы (без логина и пароля) и серверы с авторизацией.
  • Базовый FTP небезопасен, так как передает данные в открытом виде. Для защиты используются протоколы FTPS и SFTP.
  • FTP-сервер можно создать на любой операционной системе с помощью встроенных инструментов или сторонних программ.

Что такое FTP-сервер и для чего он нужен

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

Основные задачи FTP-сервера:

  • Обмен файлами. Можно быстро передавать большие объемы данных между компьютерами, не используя облачные сервисы. Это особенно удобно, когда нужно передать сотни фотографий или целую папку с документами.
  • Администрирование веб-сайтов. Веб-разработчики используют FTP для загрузки файлов сайта на сервер хостинга, обновления движка, установки плагинов и тем.
  • Резервное копирование (бэкапы). FTP позволяет создавать резервные копии важных данных, копируя их с локального компьютера на удаленный сервер или наоборот.
  • Корпоративный обмен данными. В компаниях FTP-серверы используют для обмена документами между филиалами, отделами и партнерами.
  • Публикация открытого ПО. Многие проекты с открытым исходным кодом распространяют свои дистрибутивы через публичные FTP-серверы.

Как работает FTP-сервер

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

Два соединения

В отличие от протокола HTTP, который использует одно соединение, FTP устанавливает сразу два отдельных канала:

  1. Управляющее соединение (командный канал). Обычно работает на 21-м порту. Через него клиент отправляет команды: «открой папку», «скачай файл», «покажи список файлов». Сервер через этот канал отправляет ответы на команды.
  2. Соединение для данных (канал данных). Обычно используется 20-й порт (в активном режиме) или динамические порты (в пассивном режиме). Через него непосредственно передаются файлы.

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

Два режима работы

  • Активный режим. Клиент открывает управляющее соединение и сообщает серверу свой IP-адрес и порт для данных. Сервер сам подключается к клиенту для передачи файлов. Этот режим часто блокируется брандмауэрами.
  • Пассивный режим. Клиент сообщает серверу, что хочет использовать пассивный режим. Сервер в ответ сообщает клиенту свой IP-адрес и порт для данных. Клиент сам подключается к серверу. Этот режим лучше работает через NAT и брандмауэры, поэтому рекомендуется для большинства пользователей.

Аутентификация

FTP-сервер может работать в двух режимах доступа:

  • Анонимный доступ. Для подключения не нужны логин и пароль. Достаточно ввести имя пользователя «anonymous», а в качестве пароля — любой адрес электронной почты или оставить поле пустым. Такие серверы часто используются для публичного распространения файлов.
  • Авторизованный доступ. Требуется ввести логин и пароль. Администратор сервера может гибко настраивать права для каждого пользователя: разрешать только чтение, разрешать запись, ограничивать доступ к определенным папкам.

Передача данных

Файлы могут передаваться в двух режимах:

  • Текстовый режим. Используется для передачи текстовых файлов (например, .html, .txt, .css). В этом режиме FTP может конвертировать окончания строк в зависимости от операционной системы.
  • Бинарный режим. Используется для передачи изображений, видео, исполняемых файлов и архивов. В этом режиме файлы передаются «как есть», без изменений.
Трафик
Источник: Unsplash

Типы FTP-серверов

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

По типу доступа:

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

По уровню безопасности:

  • Обычный FTP. Не шифрует данные. Логины, пароли и сами файлы передаются в открытом виде. Уязвим для перехвата.
  • FTPS (FTP Secure). Расширение FTP, использующее шифрование SSL/TLS. Данные защищены сертификатами.
  • SFTP (SSH File Transfer Protocol). Отдельный протокол, работающий поверх SSH. Обеспечивает полное шифрование и использует один порт (обычно 22). Технически SFTP не является FTP, но выполняет те же задачи и часто рассматривается вместе с ним.

По операционной системе:

  • FTP-серверы для Windows (встроенный IIS, FileZilla Server, Cerberus FTP).
  • FTP-серверы для Linux (vsftpd, ProFTPD, Pure-FTPd).
  • FTP-серверы для macOS (встроенный ftpd, Rumpus, CrushFTP).

Как создать и настроить FTP-сервер

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

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

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

Свойства
Источник: filezilla-project.org

Как подключиться к FTP-серверу и скачать или загрузить файлы

Подключиться к FTP-серверу проще, чем кажется. Для этого нужны всего три вещи: адрес сервера (IP-адрес или доменное имя), логин и пароль. Если сервер разрешает анонимный доступ, логин и пароль не понадобятся — достаточно ввести слово «anonymous» в качестве имени пользователя.

Самый удобный способ для большинства пользователей — использовать специальную программу, FTP-клиент. Например, FileZilla или WinSCP. Они бесплатны, имеют понятный интерфейс и доступны для всех популярных операционных систем. В такой программе достаточно заполнить несколько полей: хост, логин, пароль и порт.

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