Добавить в корзинуПозвонить
Найти в Дзене
Сисадмин

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

Сейчас разложу вам эту вечную тему FTP, активный против пассивного, какой режим лучше/хуже и чем они отличаются. FTP (File Transfer Protocol) — это динозавр среди протоколов, но до сих пор живёт. Работает он на двух каналах: И вот тут начинается веселье: как именно установить второй канал — и есть отличие между активным и пассивным режимом. Тут инициатива на стороне сервера. Клиент говорит: "Привет, я на IP такой-то, порт такой-то, звони туда!" И сервер такой: "Окей, ща позвоню" — и делает входящее соединение на указанный клиентом порт. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны TCP20, который используется для передачи данных. Проблема: клиент за NAT-ом или в офисе с фаерволом — и серверу туда нельзя позвонить!
Это как если бы ты дал номер телефона, но был в тоннеле без сигнала. "Ну а как же, я же указал порт?!"
Да, только у NAT'а свои планы. Он не пускает левых гостей. Потому 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 без шифрования — можно использовать только в музее и в локалке дома на даче.

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