FTP "425 Неможливо відкрити з'єднання даних" відбувається лише при використанні командного рядка


8

Весь мій комп'ютер знаходиться за одним маршрутизатором. У мене на одному з них працює сервер FileZilla. Я намагаюся автоматизувати завантаження на сервер за допомогою пакетного сценарію та вбудованого ftp.exe Window. Я створив динамічну службу DNS, щоб мати доступ до мого сервера за межами маршрутизатора, і я налаштував переадресацію портів у маршрутизаторі на свій сервер. Я можу підключитися та перенести просто чудово за допомогою Google Chrome, Windows Explorer та клієнта FileZilla. Однак, коли я намагаюся використовувати ftp.exe (вручну або в пакетному скрипті), я можу підключитися до сервера, але якщо я спробую зробити щось, що відкривало б з'єднання для передачі даних (СПИСОК, ЗБОР або RETR), я отримую таку помилку: 425 Не вдається відкрити з'єднання даних. Я дозволив ftp.exe в обох брандмауерах комп'ютера. Будь-які ідеї, що відбувається або як я можу це виправити? Мені не потрібно використовувати ftp.

EDIT Я знаю, що мій провайдер блокує багато портів, включаючи 21 та кілька інших у цьому діапазоні. Це все налаштовано на порт 2121, при цьому встановлено, що пасивні порти становлять 2122-2142, і все це передано в маршрутизатор. Можливо, ftp.exe використовуватиме лише певний порт для з'єднання даних, який мій провайдер заблокував? Якщо так, як би я змінив це?

Відповіді:


5

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

Здається, що клієнтський клієнт CLI FTP за замовчуванням не підтримує пасивний режим. Тому вам потрібно буде перейти на NcFTP . Крім того, і я думаю, що, мабуть, кращим варіантом є просто використовувати SFTP замість цього. FTP не є безпечним і його можна використовувати лише в локальних мережах. SFTP повністю зашифрований, а також використовує лише один канал для даних та команд. Якщо вам потрібен клієнт CLTP SFTP, PSFTP - це хороший варіант.


Я вже спробував це без удачі
Гаррет

@Garrett: Hrmm ... виявляється, що стаття в блозі, до якого я посилався, неправильна, і клієнт CLTP FTP за замовчуванням не підтримує пасивний режим. У такому випадку вам доведеться перемикати клієнтів FTP. NcFTP - це один варіант, і він, безумовно, підтримує пасивний режим.
Lèse majesté

Я переглядав запит / відповідь під час передачі через Провідник Windows, використовував цитату, щоб вручну надсилати такі самі команди, але все-таки отримав ту саму помилку
Гаррет

@Garrett: Я думав, що Провідник Windows працює? Якщо клієнт не підтримує пасивний режим, то сказати серверу перейти на нього не має значення.
Lèse majesté

Чи підтримує він командний рядок і чи це незалежний exe?
Гаррет


0

У мене була і ця проблема. Рішення було зупинити брандмауер антивірусу (в моєму випадку McAfee), він блокував порти FTP.


Це насправді не рішення.
ivan_pozdeev
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.