FTP «425 Невозможно открыть подключение к данным» происходит только при использовании командной строки

FTP «425 Невозможно открыть подключение к данным» происходит только при использовании командной строки

Все мои компьютеры находятся за одним маршрутизатором. На одном из них запущен сервер FileZilla.

Я пытаюсь автоматизировать загрузку на сервер с помощью пакетного скрипта и встроенного в Windows ftp.exe. Я настроил динамическую службу DNS, чтобы иметь возможность доступа к моему серверу извне маршрутизатора, и настроил переадресацию портов в маршрутизаторе на мой сервер. Я могу подключиться и передавать данные без проблем с помощью Google Chrome, Windows Explorer и клиента FileZilla.

Однако всякий раз, когда я пытаюсь использовать ftp.exe (вручную или в пакетном скрипте), я могу подключиться к серверу, но если я пытаюсь сделать что-либо, что открывает соединение с данными ( LIST, STOR, или RETR), я получаю следующую ошибку:425 Can't open data connection.

Я разрешил ftp.exe в брандмауэрах обоих компьютеров. Есть идеи, что происходит или как это исправить? Мне не нужно использовать ftp.exe, если кто-то знает портативный независимый (просто exe без других файлов) клиент командной строки.

РЕДАКТИРОВАТЬЯ знаю, что мой провайдер блокирует много портов, включая 21 и несколько других в этом диапазоне. Все это настроено на порт 2121, а пассивные порты настроены на 2122-2142, все они были перенаправлены в маршрутизаторе.
Возможно, ftp.exe будет использовать только определенный порт для подключения к данным, который заблокировал мой провайдер? Если так, то как мне это изменить?

решение1

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

Похоже, что клиент Windows CLI FTP по умолчанию не поддерживает пассивный режим. Поэтому вам нужно переключиться наNcFTP. Альтернативный вариант, и я думаю, что, вероятно, лучший вариант, это просто использовать SFTP. FTP небезопасен и действительно может использоваться только в локальных сетях. SFTP полностью зашифрован и также использует только один канал для данных и команд. Если вам нужен клиент CLI SFTP,ПСФТПэто хороший вариант.

решение2

У меня тоже была такая проблема. Решением было отключение брандмауэра антивируса (в моем случае McAfee), он блокировал порты FTP.

решение3

Windows FTP CLI поддерживает режим PASSIVE. Используйте "quote pasv" для входа в пассивный режим.

Связанный контент