FTP (File Transfer Protocol) — один из старейших интернет-протоколов передачи файлов, стандартизированный в 1971 году (RFC 114) и обновлённый до современного вида в 1985 году (RFC 959). Несмотря на солидный возраст, FTP остаётся в использовании, хотя для безопасной передачи давно вытеснен SFTP и FTPS.
Как работает FTP
FTP использует два TCP-соединения:
- Командный канал (порт 21) — управляющие команды (LIST, STOR, RETR) и аутентификация
- Канал данных (порт 20) — собственно передача файлов
Два режима данных: Active mode — сервер инициирует соединение с клиентом (проблемы с NAT и файрволами). Passive mode (PASV) — клиент инициирует оба соединения; предпочтителен за NAT. Критический недостаток: передача в открытом виде (plaintext), включая логин и пароль.
SFTP — безопасная альтернатива
SFTP (SSH File Transfer Protocol) — расширение протокола SSH, не связанное с FTP несмотря на схожее название. Всё шифруется в рамках SSH-сессии, стандартный порт 22. Поддерживает: загрузку/скачивание, создание директорий, изменение прав, возобновление прерванных передач. Клиенты: FileZilla, WinSCP, Cyberduck, rsync+ssh. FTPS (FTP Secure) — другая альтернатива: добавляет TLS поверх FTP, порты 990/21.
Современное применение
FTP/SFTP используется для деплоя на хостинг, обмена файлами между серверами, интеграции с legacy-системами. Современная рекомендация: использовать SFTP или SCP (Secure Copy); чистый FTP только в изолированных внутренних сетях.
