Тема сообщения: Filezilla - Не удалось получить список каталогов

Я установил самоподписанный сертификат на сервере FileZilla и включил FTP через TLS. Когда я подключаюсь из клиента FileZilla, я могу пройти аутентификацию, 1-2 раза в день я получаю список каталогов ...

Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Status: Directory listing of "/" successful

Но оставшееся время не может получить список каталогов

Status: Connection established, waiting for welcome message...
Status: Initializing TLS...
Status: Verifying certificate...
Status: TLS connection established.
Status: Logged in
Status: Retrieving directory listing...
Command: PWD
Response: 257 "/" is current directory.
Command: TYPE I
Response: 200 Type set to I
Command: PORT 192,168,1,119,88,109
Response: 200 Port command successful
Command: MLSD
Response: 150 Opening data channel for directory listing of "/"
Response: 425 Can't open data connection for transfer of "/"
Error: Failed to retrieve directory listing
3
задан 30 April 2016 в 20:30
1 ответ

FTP как протокол - это немного странная утка. Он использует два TCP-соединения ,а не только тот, который используется большинством протоколов. У вас есть порт 21 для команды и подключения для входа и второе подключение для передачи данных.

При пассивном FTP второе подключение осуществляется к случайно назначенному доступному порту TCP с номером выше 1024.

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

Обычно с достаточно интеллектуальным брандмауэром. этот второй порт открывается автоматически. Поскольку FTP - это протокол открытого текста, ваш брандмауэр может сканировать трафик по командному соединению на порту 21. Он распознает порт PASV, который будет назначен, и динамически открывает брандмауэр и разрешает трафик между этим конкретным клиентом и портом PASV, используемым в нем. session.

Поскольку вы по праву используете шифрование TLS, которое не работает. С FTPS межсетевой экран больше не может отслеживать канал COMMAND.

Решение: исправьте порт PASV (-range):

Одним из решений является настройка вашего FTP-сервера для использования небольшого диапазон портов или только один порт и создайте правило брандмауэра для открытия этих портов. Это объясняется в документации FileZilla :

Общие настройки ==> Настройки пассивного режима ==> Пользовательский диапазон портов

https://wiki.filezilla-project.org/File:Settings_passivemode_FZServer.png

А затем откройте этот диапазон портов в вашем брандмауэре.

Кроме того, если вы находитесь за NAT-маршрутизатором, у вас есть вторая проблема, а именно, что ответ PASV включает не только номер порта, но также IP-адрес FTP-сервера.

Если вы по-прежнему будете использовать FTP в открытом виде, тогда NAT-маршрутизатор обычно сможет переписать этот внутренний IP-адрес в ответ на правильный внешний IP-адрес.

Опять же, потому что вы используете FTP через TLS, который больше не работает.

К счастью, у FileZilla есть решение для этого, он может это исправить и объявляет внешний / общедоступный IP-адрес , а не фактический (внутренний) IP-адрес.

3
ответ дан 3 December 2019 в 06:29

Теги

Похожие вопросы