Порты для пассивного режима FTP

Я открыл через брандмауэр порт 21 для FTP в Google Cloud Engine, но я могу подключиться только через активный мод к FTP. Я тоже хочу использовать пассивный мод.

Согласно https://stackoverflow.com/questions/24566692/filezilla-ftp-server-fails-to-retrieve-directory-listing порт 50000-55000 должен быть открыт, но я пробовал это. Этот ответ не сработал в моей ситуации. Когда я открываю все порты для TCP, я могу подключиться через пассивный мод, но я не хочу открывать все порты (или мне нужно открыть все порты??)

Здесь я нашел все портовые вещи:

Пассивный режим

В пассивном режиме клиент не может контролировать, какой порт сервер выберет для подключения к данным. Поэтому, чтобы использовать пассивный режим, вам нужно разрешить исходящие подключения ко всем портам вашего брандмауэра.

Мой вопрос: мне нужно открыть все порты для пассивного мода или я могу что-то еще?

система

ОС: CentOS 7 с последними пакетами

Служба FTP: PureFTPd

Обновить

Когда я пытаюсь использовать пассивный мод, logs говорит, что вошел в систему, после того, как застрял в списке получения файлов (я не могу опубликовать журналы, потому что мой файл журнала не английский)

С уважением

1 ответ

Решение

Добавьте следующее:

PassivePortRange 50000 55000

в

/etc/pure-ftpd.conf

и я думаю, что ваша проблема будет решена. Имейте в виду, что этот диапазон портов также должен быть разрешен в вашем брандмауэре.

РЕДАКТИРОВАТЬ:

Цитируется из этого замечательного источника:

В пассивном режиме FTP клиент инициирует оба подключения к серверу, решая проблему межсетевых экранов, фильтрующих входящее соединение порта данных с клиентом с сервера. При открытии FTP-соединения клиент открывает два случайных непривилегированных порта локально (N > 1023 и N+1). Первый порт связывается с сервером через порт 21, но вместо того, чтобы затем выполнить команду PORT и разрешить серверу подключиться к своему порту данных, клиент выдаст команду PASV. В результате сервер открывает случайный непривилегированный порт (P > 1023) и отправляет P обратно клиенту в ответ на команду PASV. Затем клиент инициирует соединение от порта N + 1 к порту P на сервере для передачи данных.

Хитрость в том, что с

PassivePortRange 50000 55000

Директива заставит pureFtp выбирать случайные порты из этого диапазона, которые вы ранее разрешили в брандмауэре.

Другие вопросы по тегам