Определение простыми словами
FTP — это «почта для файлов»: вы подключаетесь к серверу через FTP-клиент (FileZilla, WinSCP, Total Commander), вводите логин-пароль и видите дерево папок. Можно скачивать, заливать, переименовывать, выставлять права. Стандартный порт 21 для управляющего соединения и динамические порты для передачи данных.
Главная проблема классического FTP — отсутствие шифрования: трафик идёт открытым текстом, любой между вами и сервером может прочитать пароль и скачиваемые файлы. Поэтому современные хостеры дают SFTP (по SSH, порт 22) или FTPS (FTP поверх TLS). Но обиходное «закинуть по FTP» обычно подразумевает любую из этих защищённых версий.
Сравнение
| Параметр | FTP | SFTP | FTPS |
|---|---|---|---|
| Шифрование | Нет | Полное (SSH) | Полное (TLS) |
| Порт | 21 + динамические | 22 | 21/990 + динамические |
| Файервол-friendly | Сложно (passive mode) | Просто | Сложно |
| Аутентификация | Логин/пароль | Пароль или SSH-ключ | Логин/пароль + сертификат |
| Скорость | Высокая | Чуть ниже из-за SSH | Высокая |
| Когда применять | Никогда | Всегда | Совместимость с старым ПО |
Кейсы использования
- Загрузка сайта на хостинг. Самый частый сценарий: WordPress, лендинги, статика — заливаются через SFTP с панели хостера или FileZilla.
- Бэкап конфигов. Скрипты выгружают дампы и архивы на удалённый storage по SFTP в режиме push.
- Передача больших файлов клиентам. Видеомонтаж, фотостудии — анонимные FTP-папки на 100+ ГБ для отправки исходников.
- Embedded-устройства. Камеры наблюдения и старые принтеры умеют только классический FTP — приходится поднимать отдельный изолированный сервер.
- Когда НЕ стоит: любой обмен с конфиденциальными данными по чистому FTP — пароль перехватят на любом публичном Wi-Fi. Используйте SFTP по умолчанию.
Технические детали
Подключение к серверу через консольные клиенты под Linux/macOS:
sftp user@example.com # SFTP-сессия по SSH
scp file.zip user@example.com:/var/www/ # одноразовая загрузка
lftp -u user,pass sftp://example.com # пакетная синхронизация
rsync -avz -e ssh ./site/ user@example.com:/var/www/site/ # умная заливка с дедупликацией
ssh-keygen -t ed25519 && ssh-copy-id user@example.com # вход без пароля
Если нужен именно FTP/FTPS-сервер на VPS, ставьте vsftpd или ProFTPD с TLS-сертификатом и passive-режимом, открыв диапазон портов в firewall. Для большинства задач лучше остановиться на SFTP — он работает из коробки на любом VPS с SSH, не требует отдельной настройки. Хостинг и VPS в каталоге уже включают SFTP-доступ к файлам сайта.
🔥 Где это применяется
Частые вопросы
FTP и SFTP — это одно и то же?
Нет. FTP — старый протокол на порту 21 без шифрования. SFTP — это файловая работа поверх SSH на порту 22, полностью зашифрованная. Это разные протоколы с похожим интерфейсом в клиентах вроде FileZilla.
Какой клиент выбрать?
На Windows — FileZilla или WinSCP, бесплатные и удобные. На macOS — Cyberduck или Transmit. На Linux — встроенный sftp в терминале или GUI Nautilus с протоколом sftp://. Для автоматизации — lftp и rsync.
Почему FTP не работает за NAT?
Классический FTP открывает второе соединение для данных от сервера к клиенту, которое не проходит через NAT. Решение — passive mode: клиент сам подключается ко второму порту. SFTP такой проблемы не имеет, всё в одном соединении.
Чем заменить анонимный FTP для отправки файлов?
Минио или Nextcloud со ссылками на скачивание, Resilio Sync, WebDAV с публичной папкой. Они шифруют трафик и дают временные ссылки с ограничением по времени и количеству скачиваний.