Назад | Перейти на главную страницу

Тема сообщения: 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

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

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

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

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

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

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

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

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

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

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

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

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

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