Я установил самоподписанный сертификат на сервере 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-адрес.