Ответ
FTP использует несколько портов в зависимости от режима работы:
- Порт 21 (TCP) — Канал управления (Control Channel). Используется для отправки команд (LOGIN, LIST, RETR) и получения ответов сервера.
- Порт 20 (TCP) — Канал данных (Data Channel) в активном режиме (Active Mode). Сервер сам инициирует соединение с клиента для передачи файлов или списков каталогов.
Пассивный режим (Passive Mode) решает проблемы с фаерволом на стороне клиента:
- Клиент подключается к порту 21 для управления.
- Клиент отправляет команду
PASV. - Сервер отвечает, открыв случайный высокий порт (например, 49152) и сообщая его клиенту.
- Клиент инициирует второе соединение к этому случайному порту для передачи данных.
Пример проверки доступности FTP-сервера:
# Проверка канала управления
telnet ftp.example.com 21
Важно: Для работы FTP в активном режиме фаервол клиента должен разрешать входящие соединения на высокие порты. Пассивный режим часто предпочтительнее, так как все соединения инициирует клиент.
Ответ 18+ 🔞
А, слушай, вот эта штука с FTP — это же классика, просто пиздец! Как будто архитекторы его проектировали после пятничной пьянки. Два порта, блядь, как будто одного мало!
Смотри, как это работает, тут без бутылки не разберёшься, но я попробую.
Основная лабуда, канал управления: Это как твой начальник, который только команды раздаёт. Сидит на порту 21, такой важный, и орет: «Логинься!», «Покажи, что в папке!», «Тащи файл сюда, сука!». Всё общение с ним — через этот порт. Чистая бюрократия, блядь.
# Это типа позвонить начальнику и спросить, жив ли он
telnet ftp.example.com 21
А теперь, внимание, ебля с данными! Тут два режима, и один из них — просто ёперный театр.
Активный режим (Active Mode): Это когда сервер, такой наглый мудак, решает сам к тебе в гости зайти. Ты с портом 21 поговорил, а он тебе в ответ: «Ща, я к тебе на порт 20 подключусь и данные принесу!». И лезет к тебе в комп. Естественно, если у тебя на входе стоит фаервол (здравый мужик, кстати), он такого наглеца по IP и порту отфильтрует и скажет: «Нахуй иди со своим портом 20». Соединение не сложится, и всё, пизда.
Пассивный режим (Passive Mode): Вот это уже умнее, его придумали, когда все уже окончательно заебались с этими активными костылями. Тут вся инициатива — на клиенте, как и должно быть!
- Ты к порту 21 подключился, всё как обычно.
- Говоришь волшебное слово
PASV. Типа «Эй, сервак, давай по-пассивному, я сам всё сделаю». - Сервер, такой хитрая жопа, открывает у себя какой-то случайный высокий порт (типа 49152) и говорит тебе его номер. «На, — говорит, — приходи сюда за данными».
- И вот ты, клиент, уже сам инициируешь второе соединение, уже к этому левому порту, чтобы файлы скачать. Фаервол твой смотрит на это и думает: «Ну, раз ты сам вышел и подключился — окей, проходи». Гениально и просто, ёпта!
Итог, блядь: Если не хочешь головной боли с настройкой фаервола, чтобы он входящие соединения от сервера пропускал (а зачем тебе это, в рот меня чих-пых?), всегда юзай пассивный режим. Клиент всё делает сам, сервер просто услужливо дырочку на своем фаерволе открывает и ждёт. Красота!