[FTP] FTP passive VS. FTP active

На днях задались вопросом с коллегой: “А в чем собственно различия между активным и пассивным режимом при работе по FTP?” И быстренько загуглив этот вопрос нашли вполне внятное объяснение, которое я и выложил тут, дабы всегда можно было вспомнить если мозг забудет. При работе по протоколу FTP между клиентом и сервером устанавливается два соединения:

  1. Управляющее - по нему идут команды;
  2. Соединение передачи данных - по нему передаются файлы;

Управляющее соединение одинаково для Активного и Пассивного режима. Клиент инициирует TCP-соединение с динамического порта (1024-65535) к порту номер 21 на FTP-сервере и говорит примерно следующее: “Привет! Я хочу подключится к тебе. Вот мои логин и пароль”. Дальнейшие действия зависят от того, какой режим FTP (Активный или Пассивный) выбран.

В активном режиме, когда клиент говорит “Привет!” он так же сообщает серверу номер порта (из динамического диапазона 1024-65535) для того, чтобы сервер мог подключиться к клиенту для установки соединения для передачи данных. FTP-сервер подключается к заданному номеру порта клиента используя со своей стороны номер TCP-порта 20 для передачи данных.

В пассивном режиме, после того как клиент сказал “Привет!”, сервер сообщает клиенту номер TCP-порта (из динамического диапазона 1024-65535), к которому можно подключится для установки соединения передачи данных.

Главное отличие между активным режимом FTP и пассивным режимом FTP - это сторона, которая открывает соединение для передачи данных. В активном режиме, клиент должен принять соединение от FTP-сервера. В пассивном режиме, клиент всегда инициирует соединение.

Обсудить статью в чате TG или в Slack