Порты для пассивного режима 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 выбирать случайные порты из этого диапазона, которые вы ранее разрешили в брандмауэре.