FTP (от англ. File Transfer Protocol — протокол передачи файлов) — это сетевой протокол прикладного уровня для передачи файлов между клиентом и сервером по TCP/IP-сети.
Что такое FTP в работе с сайтом — основной способ загрузки файлов сайта на хостинг, обновления плагинов CMS, скачивания резервных копий и редактирования файлов на сервере.
Протокол разработан в апреле 1971 года Абхай Бхушаном в Массачусетском технологическом институте и описан в RFC 114 — это один из старейших протоколов интернета, остающийся в активном использовании. FTP работает по клиент-серверной модели: на сервере запущен FTP-сервис (vsftpd, ProFTPD, Pure-FTPd), к которому клиент (FileZilla, WinSCP, Total Commander) подключается по логину и паролю через порт 21.
Из-за устаревшей архитектуры классический FTP передаёт данные в открытом виде, что небезопасно в современном интернете — для безопасной передачи используются модернизированные варианты: FTPS (FTP over SSL/TLS) на портах 990 или 21 с шифрованием, SFTP (SSH File Transfer Protocol) на порту 22 поверх SSH.
Что такое FTP
FTP — протокол передачи файлов, который определяет правила обмена данными между клиентом (программой пользователя) и сервером (компьютером, хранящим файлы). По FTP можно скачивать файлы с сервера, загружать на него, удалять, переименовывать, создавать папки, изменять права доступа.
Архитектура FTP включает два параллельных соединения:
- Командное соединение (control connection). Постоянное TCP-соединение по порту 21, по которому клиент отправляет команды (LIST, RETR, STOR, DELE) и получает текстовые ответы сервера в виде трёхзначных кодов (220 — приветствие, 230 — успешный логин, 530 — ошибка авторизации).
- Соединение данных (data connection). Временное TCP-соединение, открываемое только на время передачи файла или списка каталога. Закрывается после завершения операции и открывается заново для следующей.
Такая двухканальная архитектура — историческое наследие 1970-х годов, когда передача данных и команд была технологически разделена. В современных протоколах (HTTP, SFTP) команды и данные передаются через одно соединение, что упрощает работу через файрволы и NAT.
История FTP
Первая спецификация FTP опубликована в апреле 1971 года Абхай Бхушаном в RFC 114. На тот момент протокол работал поверх NCP (Network Control Program), предшественника TCP/IP. Через 9 лет, в 1980 году, FTP был адаптирован под TCP/IP в RFC 765.
Действующая основная спецификация — RFC 959 от октября 1985 года, которая описывает FTP в том виде, в котором он работает сегодня. Дополнительные расширения:
- RFC 2228 (1997). Security Extensions — добавление шифрования через SSL/TLS, основа FTPS.
- RFC 2389 (1998). Feature Negotiation — обнаружение функций сервера через команду FEAT.
- RFC 2428 (1998). Extensions for IPv6 — поддержка IPv6 в командах EPRT и EPSV.
- RFC 4217 (2005). Securing FTP with TLS — полное определение FTPS как стандарта.
В 1990-е годы FTP был основным способом распространения программного обеспечения в интернете. Крупные ftp-серверы (ftp.mozilla.org, ftp.gnu.org, ftp.kernel.org) хранили дистрибутивы программ, исходные коды, документацию. С развитием HTTP-протокола и появлением CDN роль FTP постепенно сократилась, но он продолжает использоваться для веб-разработки и системного администрирования.
Как работает FTP — активный и пассивный режим
FTP поддерживает два режима передачи данных, отличающихся тем, кто инициирует соединение для передачи файлов.
| Режим | Кто инициирует data-соединение | Когда использовать |
|---|---|---|
| Активный (Active mode) | Сервер подключается к клиенту на указанный порт | Когда клиент за пределами файрвола и доступен извне (редко в современных сетях) |
| Пассивный (Passive mode) | Клиент подключается к серверу на указанный сервером порт | Стандартный режим в современных сетях, работает через NAT и файрволы |
В активном режиме клиент сообщает серверу свой IP-адрес и порт командой PORT, сервер открывает соединение с этим адресом для передачи данных. В современных сетях клиент обычно находится за NAT, и серверу не удаётся к нему подключиться — отсюда популярность пассивного режима.
В пассивном режиме клиент отправляет команду PASV, сервер открывает дополнительный порт и сообщает его клиенту. Клиент сам подключается к этому порту — никаких входящих соединений в сторону клиента, всё инициируется клиентом, что обходит большинство файрволов.
FTP, FTPS, SFTP — разница
| Протокол | Основа | Порт | Шифрование |
|---|---|---|---|
| FTP | Классический протокол по RFC 959 | 21 (команды) + динамический (данные) | Нет — данные передаются в открытом виде |
| FTPS (FTP over SSL/TLS) | FTP с шифрованием через SSL/TLS | 21 (Explicit TLS) или 990 (Implicit TLS) | SSL/TLS — стандартное TLS-шифрование |
| SFTP (SSH File Transfer Protocol) | Подсистема SSH-протокола, отдельный стандарт | 22 | Шифрование SSH |
| FTPS Implicit | FTPS с шифрованием с момента подключения | 990 | SSL/TLS с самого начала соединения |
| FTPS Explicit (FTPES) | FTPS с переходом на шифрование после команды AUTH TLS | 21 с upgrade на TLS | SSL/TLS после согласования |
Главный практический момент: FTPS — это расширение FTP с добавлением шифрования, сохраняющее двухканальную архитектуру с командным и data-соединением. SFTP — это совершенно другой протокол, работающий поверх SSH, с одним каналом и принципиально другой архитектурой. Несмотря на похожие названия, FTPS и SFTP — разные технологии.
На современных хостингах в Беларуси и СНГ стандарт — SFTP. Большинство провайдеров не предлагают классический FTP без шифрования, либо предлагают, но с предупреждением о небезопасности. Активно используется и FTPS — особенно на корпоративных серверах под Windows, где SFTP не поддерживается нативно.
Популярные FTP-клиенты
- FileZilla. Бесплатный кроссплатформенный клиент с открытым кодом, поддерживает FTP, FTPS, SFTP. Стандарт в индустрии — самая распространённая программа для веб-разработчиков. Доступна для Windows, macOS, Linux.
- WinSCP. Бесплатный клиент для Windows с поддержкой SFTP, SCP, FTPS, FTP. Удобный двухпанельный интерфейс в стиле Total Commander. Расширенные возможности скриптинга и автоматизации задач.
- Cyberduck. Бесплатный клиент для macOS и Windows, ориентированный на простоту использования. Поддерживает FTP, SFTP, WebDAV, облачные хранилища (S3, Dropbox, Google Drive). Лёгкий интерфейс.
- Total Commander. Двухпанельный файловый менеджер для Windows с встроенным FTP-клиентом. Платный (около 50 USD за лицензию), но широко используется в постсоветских странах. Поддерживает FTP, FTPS, SFTP через плагин.
- Transmit. Премиум-клиент для macOS от Panic Inc, стоит 45 USD. Считается одним из самых удобных FTP-клиентов в мире, особенно популярен среди веб-дизайнеров.
- CuteFTP. Платный клиент для Windows ($50 за лицензию), долгое время был популярен в корпоративном сегменте. Сейчас постепенно уступает место бесплатным альтернативам.
- Встроенные клиенты редакторов кода. Visual Studio Code, Sublime Text, PhpStorm — через плагины или встроенные функции позволяют редактировать файлы на сервере без отдельной программы.
FTP в работе с сайтом
Типичные задачи, для которых вебмастера используют FTP/SFTP:
- Загрузка сайта на хостинг. Перенос файлов CMS, шаблонов, плагинов, изображений с локального компьютера на удалённый сервер.
- Резервное копирование. Скачивание полной копии сайта на локальный компьютер перед обновлениями или большими изменениями.
- Восстановление из бэкапа. Загрузка ранее сохранённой версии сайта при поломке или взломе.
- Установка и обновление плагинов. Загрузка файлов плагинов в папку /wp-content/plugins/ для WordPress, /bitrix/modules/ для 1С-Битрикс.
- Правка конфигов. Изменение wp-config.php, .htaccess, robots.txt напрямую на сервере.
- Очистка после взлома. Удаление подозрительных файлов, замена заражённых на чистые версии.
- Миграция между хостингами. Перенос всего сайта с одного хостинга на другой через скачивание-загрузку.
- Установка SSL-сертификатов. Загрузка файлов сертификатов в системные папки сервера.
На большинстве хостингов параметры FTP/SFTP выдаются после регистрации тарифа: адрес сервера (обычно ftp.домен.by или sftp.хостинг.by), логин (часто совпадает с логином аккаунта хостинга), пароль (выдаётся отдельно). Стандартные порты — 21 для FTP/FTPS Explicit, 22 для SFTP, 990 для FTPS Implicit.
Безопасность и почему FTP заменяется
Классический FTP без шифрования имеет несколько серьёзных уязвимостей:
- Передача пароля в открытом виде. Любой посредник на пути между клиентом и сервером (провайдер, открытый Wi-Fi, MITM-атака) может перехватить логин и пароль.
- Передача файлов в открытом виде. Конфиденциальный контент (исходный код, базы данных, документы) виден всем посредникам в сети.
- Слабая аутентификация. Логин-пароль без двухфакторной аутентификации, без сертификатов клиента, без ограничений по IP.
- Anonymous FTP. Доступ без пароля для всех пользователей — историческая практика, которая сейчас представляет угрозу.
- Проблемы с файрволами. Двухканальная архитектура с динамическими портами усложняет настройку безопасных сетей.
По этим причинам с начала 2010-х индустрия активно переходит на SFTP и FTPS. К 2024 году большинство профессиональных хостингов либо не предоставляют классический FTP вообще, либо предоставляют с явным предупреждением о небезопасности. На корпоративных серверах FTP без шифрования внутри сети ещё встречается, но в публичном интернете — уже редкость.
Альтернативы FTP для веб-разработки:
- Git-деплой. Развёртывание сайта через git push на сервер с автоматическим обновлением. Современный стандарт для проектов на CMS вроде Laravel, Django, Node.js.
- CI/CD-пайплайны. Автоматическая сборка и публикация через GitHub Actions, GitLab CI, Jenkins. Полностью заменяет ручную работу с FTP.
- Веб-интерфейсы хостингов. Файловые менеджеры в панелях управления (cPanel, ISPmanager, Plesk) позволяют управлять файлами через браузер без FTP.
- WebDAV. Расширение HTTP для управления файлами на сервере. Используется в корпоративных решениях, но не очень распространён в веб-хостинге.
- Rsync over SSH. Утилита для синхронизации файлов с сервером через защищённое соединение. Эффективна для больших проектов с инкрементальными обновлениями.
Часто задаваемые вопросы
Чем SFTP отличается от FTP?
SFTP — это совершенно другой протокол, работающий поверх SSH, не имеющий отношения к классическому FTP кроме похожего названия. SFTP передаёт все данные через одно зашифрованное соединение на порту 22, шифрует и команды, и файлы, использует SSH-аутентификацию (пароль или ключ). Классический FTP работает через два соединения на портах 21 и динамическом, передаёт данные в открытом виде, аутентифицирует только по логину и паролю.
Какой порт у FTP?
Стандартные порты: 21 для классического FTP и FTPS в режиме Explicit, 990 для FTPS в режиме Implicit, 22 для SFTP. Также используется динамический диапазон портов для соединений данных в пассивном режиме — обычно 49152–65535. Некоторые хостинги дополнительно ограничивают этот диапазон 10–20 портами для упрощения настройки файрвола.
Можно ли получить пароль к чужому FTP?
Если речь о законном получении (восстановлении своего пароля) — через панель управления хостингом обычно доступна функция сброса пароля. Если о незаконном — это уголовное преступление по статье 349 УК РБ (несанкционированный доступ к компьютерной информации). Брутфорс паролей и подбор по словарю — стандартный вектор атак на FTP-серверы, и большинство хостингов блокируют IP после 5–10 неудачных попыток входа.
Безопасно ли использовать FTP без шифрования в 2024 году?
Только во внутренних сетях без выхода в публичный интернет. Для работы с хостингом и любых задач в интернете обязательно использовать SFTP или FTPS. Использование классического FTP в публичной сети равноценно отправке логинов и паролей открытым текстом — любой посредник может их перехватить.
Как загрузить сайт на хостинг через FTP?
Последовательность действий: получить от хостинга параметры доступа (адрес сервера, логин, пароль, протокол SFTP или FTPS), установить FTP-клиент (FileZilla бесплатно), создать новое подключение с этими параметрами, подключиться к серверу. После подключения выбрать на локальном диске папку с файлами сайта, на сервере — корневую папку сайта (обычно /public_html/, /www/, /htdocs/), скопировать все файлы перетаскиванием или через меню. Загрузка простого сайта 100–500 файлов занимает 5–15 минут на нормальном интернет-соединении.
Почему файлы загружаются на FTP медленно?
Возможные причины: медленный интернет-канал у клиента, высокая загруженность сервера, географически далёкий хостинг (например, белорусский пользователь и сервер в США), большое количество маленьких файлов (каждый файл — отдельная команда FTP с своим overhead), ограничения скорости тарифа хостинга. Ускорение: использовать многопоточные клиенты вроде FileZilla (до 10 параллельных потоков), архивировать множество мелких файлов перед загрузкой, выбирать хостинг ближе к целевой аудитории.
Что делать, если FTP не подключается?
Стандартный чек-лист: проверить правильность адреса сервера, логина, пароля и протокола, проверить доступность сервера через ping или браузер, переключиться между активным и пассивным режимом, проверить настройки файрвола на локальном компьютере, попробовать подключиться с другой сети (например, через мобильный интернет), проверить ограничения по IP в панели хостинга. Если ничего не помогает — обратиться в техподдержку хостинга с указанием точной ошибки.




