8

Все мои компьютеры находятся за одним маршрутизатором. У меня на одном из них работает сервер FileZilla. Я пытаюсь автоматизировать загрузку на сервер, используя пакетный скрипт и встроенный в Windows ftp.exe. Я настроил службу динамического DNS, чтобы иметь возможность доступа к моему серверу извне маршрутизатора, и я настроил переадресацию портов в маршрутизаторе на мой сервер. Я могу подключиться и передать просто отлично, используя Google Chrome, Windows Explorer и клиент FileZilla. Однако всякий раз, когда я пытаюсь использовать ftp.exe (вручную или в пакетном скрипте), я могу подключиться к серверу, но если я пытаюсь сделать что-либо, что может открыть соединение для передачи данных (LIST, STOR или RETR), я получаю следующую ошибку: 425 Не удается открыть соединение для передачи данных. Я разрешил ftp.exe в брандмауэрах обоих компьютеров. Есть идеи, что происходит или как я могу это исправить? Мне не нужно использовать ftp.exe, если кто-нибудь знает о переносимом независимом (просто exe-файле без других файлов) клиенте командной строки.

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

3 ответа3

5

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

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

0

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

0

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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .