Найти в Дзене
Сисадмин

Чем отличается активный режим передачи по ftp от пассивного?

Оглавление
active ftp vs passive ftp
active ftp vs passive ftp

Сейчас разложу вам эту вечную тему FTP, активный против пассивного, какой режим лучше/хуже и чем они отличаются.

FTP в двух словах

FTP (File Transfer Protocol) — это динозавр среди протоколов, но до сих пор живёт. Работает он на двух каналах:

  • Один для команд — типа "покажи список файлов", "скачай", "загрузи"
  • Второй для данных — чтобы реально пересылать файлы

И вот тут начинается веселье: как именно установить второй канал — и есть отличие между активным и пассивным режимом.

Активный режим (Active FTP)

Тут инициатива на стороне сервера. Клиент говорит:

"Привет, я на IP такой-то, порт такой-то, звони туда!"

И сервер такой:

"Окей, ща позвоню" — и делает входящее соединение на указанный клиентом порт.

FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны TCP20, который используется для передачи данных. Проблема: клиент за NAT-ом или в офисе с фаерволом — и серверу туда нельзя позвонить!

Это как если бы ты дал номер телефона, но был в тоннеле без сигнала.

"Ну а как же, я же указал порт?!"

Да, только у NAT'а свои планы. Он не пускает левых гостей. Потому FTP в активном режиме часто обламывается в обычных домашних/корпоративных сетях.

Пассивный режим (Passive FTP)

Тут клиент говорит:

"Слушай, дорогой сервер, давай ты просто откроешь порт, скажешь мне какой — а я сам к тебе подключусь, ладно?"

Сервер отвечает:

"Конечно, вот тебе IP и порт, заходи как домой!"

Клиент подключается сам — и всё хорошо. Никаких входящих соединений на клиент, только исходящие. А NAT и фаерволы такое любят.

Плюс: работает почти везде. Особенно когда клиент за роутером, в корпоративной сети, на ноуте в кафе, в Макдональдсе или на борту МКС.

Простое сравнение на примере

Активный режим — это как если курьер (сервер) хочет вручить тебе посылку и звонит к тебе домой.

Если у тебя консьерж или домофон без кнопки "открыть" — посылка зависнет в лифте.

Пассивный режим — это ты сам едешь на склад (сервер открыл ворота), берёшь коробку и уезжаешь. Никто не ломится к тебе домой — идеально.

Когда и какой режим использовать?

🎯 Используй пассивный, если:

  • ты клиент и сидишь за NAT, Wi-Fi, роутером, офисной сетью
  • ты не хочешь настраивать фаерволы вручную
  • ты хочешь, чтобы "просто работало"

🛡️ Используй активный, если:

  • ты сервер в датацентре и клиент — другой сервер (тоже в открытой сети)
  • тебе нужно максимально строгий контроль над исходящими соединениями (редко)
  • ты любишь боль, конфиги iptables и встречаешь новый день с tcpdump

💡 А если ты админ FTP-сервера?

Тогда:

  • Разреши пассивный режим, прописав диапазон портов в конфиге (например, 50000–51000)
  • Открой эти порты на фаерволе

Укажи явный внешний IP (если сервер за NAT’ом)

Например, в vsftpd.conf:

pasv_enable=YES
pasv_min_port=50000
pasv_max_port=51000
pasv_address=123.45.67.89

FTP сам по себе — дедушка с палочкой, но ему всё ещё доверяют передачу файлов.

Пассивный режим — почти всегда твой выбор.

Он как бесконтактная доставка: безопасно, удобно, никто не ломится в гости.

НО!

FTP — старый, голый и небезопасный

Простой FTP — это как курьер без удостоверения, который кричит на весь подъезд:

"Здравствуйте, пароль от сервера: admin123, я тут закинул пару файлов!"

Передача идёт в открытом виде. Никакого шифрования. Весь трафик можно подсмотреть с помощью Wireshark.

Вывод: не используем FTP без шифрования в 2025-м, ок?

А что меняется при передаче по FTP, если мы добавим чутка секурности?

FTPS — тот же FTP, но в шубе

Что это:

FTPS = FTP + SSL/TLS.

Он работает точно как обычный FTP,
но всё шифруется (как HTTPS).

Как устроен:

  • Использует те же команды, что и FTP
  • Также использует два канала: командный и для данных
  • Просто добавляет TLS-сертификат (например, от Let's Encrypt)

🛠 Работает на тех же портах, плюс добавляет TLS-рукопожатие. Есть два режима:

  • Explicit FTPS — клиент говорит "давай по TLS", сервер соглашается.
  • Implicit FTPS — TLS сразу, без разговоров. (реже используется)

Важно: FTPS всё ещё использует паспортный контроль с NAT и фаерволами — так же как FTP. Иногда очень капризен, особенно с пассивным режимом, но разница в режимах по сути та же, что и в обычном ftp.

SFTP — вообще не FTP

Вот тут начинается прикол.

SFTP ≠ FTPS

SFTP ≠ FTP с S

SFTP = SSH File Transfer Protocol — вообще другой протокол!

Как устроен:

  • Работает через SSH (порт 22)
  • Один безопасный зашифрованный канал
  • Работает как SCP, но с плюшками: продолжение загрузки, списки файлов, права доступа

Если ты подключаешься к серверу по sftp user@host — ты не используешь FTP вообще. Это чисто SSH-технология.

📦 Отличия по сути:

FTPS vs SFTP
FTPS vs SFTP

Что использовать и когда?

SFTP — это твой выбор в 90% случаев:

  • Без заморочек с фаерволами
  • Только один порт
  • Уже работает на всех серверах с SSH (то есть почти везде)
  • Прост в автоматизации и скриптах

FTPS — если у тебя FTP-сервер, но нужна безопасность:

  • Клиенты на Windows без SSH (всякие старые бухгалтерии, да)
  • Интеграция с промышленными штуками, которые понимают только FTP

FTP без шифрования — можно использовать только в музее и в локалке дома на даче.

Если вы дочитали до сюда, а я что-то забыл, пишите в комментах ниже!