Функція FTP командного рядка не працює


12

Я використовую Windows 7 і безліч проблем FTP-клієнтів працюють без проблем. Однак, коли я використовую FTP командного рядка, я можу підключитися, увійти (після введення імені користувача та пароля), але він завжди відключається, коли використовується команда dir або ls. Відповідь така:

З'єднання закрите віддаленим хостом.

Як я можу виправити цю проблему?


Відкрийте порти 20, 21 у брандмауері.
Шон Перкінс

Відповіді:


13

Зазвичай ви бачите, що подібне відбувається, коли сервер намагається підключитися до вас, але не може. FTP спочатку використовував два канали TCP . Один був для команд, а другий для передачі даних. При запуску команди dir використовується канал передачі даних. Канал даних встановлюється на вимогу і призводить до того, що сервер намагається підключитися до вас.

Це, швидше за все, блокується вашим маршрутизатором або брандмауером Windows. Вам потрібен клієнт, який підтримує режим PASV .

Ви можете ввімкнути режим PASV в Internet Explorer . Або використовувати іншого клієнта. Я не впевнений, чи може версія командного рядка використовувати режим PASV. Це дуже базовий клієнт.


Спасибі, Метт. Я подумав, що клієнтський FTP-клієнт використовував пасивний режим за замовчуванням, але я щойно знайшов кілька повідомлень про те, що командний рядок Windows FTP фактично виключає пасивний режим. IE завжди добре працює на моїй машині для FTP. Я просто хочу використовувати командний рядок для вивчення деяких необроблених даних з FTP-сервера.
Гонг

Як експеримент, ви можете побачити, чи вмикання або відключення PASV в Internet Explorer має значення .. чи дає подібну чи ту саму помилку.
барлоп

1
ftp> PASV - Недійсна команда. (Windows 7 Ent.). Ця відповідь - це саме те, що відбувається на роботі.
Братч

6
це повинен бути
ЦІТНИЙ

5

У мене виникла проблема з передачею файлів через FTP, як тільки я увійшов у відповідне поле. Це створило б ім'я файлу, але файл був порожнім. Я вирішив це, зробивши наступне:

  • Перейдіть до Панелі управління → Брандмауер Windows → Додаткові налаштування → Вхідні правила
  • Двічі клацніть стовпець Ім'я для сортування за назвою
  • Прокрутіть вниз, доки не з’являться два правила під назвою «Програма передачі файлів»; їх було встановлено на Блок на моєму ПК (велике червоне коло з лінією через нього)
  • Двічі клацніть на правилі
  • На вкладці Загальні в розділі Дія встановіть Дозволити з'єднання
  • Клацніть OK
  • Зробіть це для іншого правила

Слід піти зараз.


Які наслідки для безпеки це роблять?
Пітер Мортенсен

Програми на вашому ПК тепер можуть використовувати ftp.
Марк Девен

Видалення правил, а потім підключення через FTP та видача щось на кшталт команди "dir" (запуск брандмауера Windows, щоб запитати, чи слід дозволити FTP, і відтворення правил, якщо ви скажете так), також може допомогти.
mlvljr

5

Клієнт командного рядка Windows FTP ftp.exeпідтримує лише активний режим FTP.

Налаштування FTP в активному режимі сьогодні може бути громіздким через брандмауери та NAT.

Можливо, через ваш локальний брандмауер чи NAT сервер не зміг підключитися назад до вашого клієнта, щоб встановити з'єднання для передачі даних для переліку каталогів ( lsабо dirкоманд).

Або ваш клієнт не знає про свою зовнішню IP-адресу і надає натомість внутрішню адресу серверу ( PORTкоманді), яким сервер явно не в змозі використовувати.

Дивіться мою статтю Конфігурація мережі для активного режиму .


Якщо можливо, слід використовувати пасивний режим, оскільки він зазвичай не потребує додаткових налаштувань на стороні клієнта.

На жаль, клієнт командного рядка Windows FTP (the ftp.exe) взагалі не підтримує пасивний режим. В даний час це робить його досить марним.

Замість цього скористайтеся будь-яким іншим клієнтом командного рядка Windows FTP. Більшість інших підтримують пасивний режим.

Наприклад, WinSCP за замовчуванням в пасивному режимі, і доступне керівництво для перетворення сценарію Windows FTP в сценарій WinSCP .

(Я автор WinSCP)


Він працює в будь-якій версії Windows (починаючи з XP). Яку помилку ви отримаєте? Спробуйте задати нове окреме запитання з більш детальною інформацією.
Мартін Прикрил

Вам потрібно winscp.comі winscp.exeв одній папці. Я вважаю, що повідомлення про помилку чітко говорить про те, що winscp.comшукає winscp.exeу своїй папці. Дивіться також warscp.net/eng/docs/executables
Мартін

Np, будь ласка, видаліть коментарі.
Мартін Прикрил

4

Я зіткнувся з цією проблемою на сервері Windows 2008.

У цій статті пропонується включити службу шлюзового шару додатків. Це не вирішило для мене проблеми.

Що вирішило проблему, було додавання виключення у брандмауер Windows для C: \ Windows \ system32 \ ftp.exe


1
За замовчуванням брандмауер Windows включає виняток ftp.exe, але лише для домашньої / робочої мережі. Переконайтеся, що ви не знаходитесь у загальнодоступній мережі, інакше дозволяйте також ftp для публічної мережі.
Jags

1

У мене виникла та сама проблема із стороннім програмним забезпеченням POS на машині Windows 7, яка збирає дані про транзакції клієнта назад на SQL-сервер.

Він працював чудово, поки місце розташування клієнта не змінило провайдерів і, отже, статичних IP-адрес. Команди FTP командного рядка не працювали за межами початкового входу, і жоден із засобів захисту, які я знайшов в Інтернеті, або цей потік не працював.

Тільки для ударів, я знову створив правило FTP у брандмауері, маршрутизаторі / брандмауері / брандмауері cheapo D-Link та віолі, воно, здається, працює знову.


0

Випуск FTP

Відкриті порти на лазерному NSG та брандмауері сервера: 21,20,4000-40009,990,14147

Проблема: Клієнт не може підключитися до ftp з командного рядка та Powershell

Ми можемо з'єднатися з testuser, але не можемо побачити каталог / Список

Встановлено Wireshark на сервері та на моєму ноутбуці для зйомки пакетів. Створений фільтр на проводці з "ftp" та "IP" Захоплення пакетів не вказує погоду, чи це пасивний чи активний режим, і IP-код джерела правильний. (ми налаштовуємо основний IP та вторинний IP на сервері)

Ми виявили, що з'єднання ftp не працює з командного рядка. намагаючись ініціювати з'єднання з ftp.abcd.com, яке було дозволено до 11.22.33.44, а не до фактичного FTP-сервера 44.33.22.11 IP-адреси 11.22.33.44 та 44.33.22.11, налаштовані на одній машині. Однак DNS переходив до вторинного IP FTP замість основного

Спочатку ми також виявили, що з'єднання FTP до 11.22.33.44 працювали нормально і ці з'єднання були активними з'єднаннями. Нам не вдалося побачити, що тут працює пасивний режим. Також під час ініціювання з'єднання з 11.22.33.44 з Commad promt сеанс заморожується після того, як ви даєте команду "dir", однак те ж саме працює з іншими ftp-клієнтами, такими як FileZilla та Winscp.

Я спробував тестування з WinSCP та FileZilla, і я побачив, як з'єднання в режимі пасивного режиму працюють нормально і не активно, що не очікується. Ми перевірили, чому команда 'dir' не працює з пристроїв після успішної аутентифікації, ми побачили, що брандмауер Windows блокує з'єднання. Ми відключили брандмауер і все почало працювати, як очікувалося. Я перевірив те саме на своєму кінці після створення правила брандмауера, проблеми були вирішені. Існувала одна система, яка навіть після відключення брандмауера застрягла в списку каталогів, це може бути проблемою в цій системі або з'єднання блокуються зовнішнім фактором. Оскільки після відключення більшість із нас здатні нормально працювати.

налаштування потрібно виконати на пристрої. Перейдіть до Панелі керування → Брандмауер Windows → Додаткові налаштування → Вхідні правила Двічі клацніть стовпець Ім'я, щоб сортувати за назвою Прокрутіть вниз, поки не з’являться два правила під назвою «Програма передачі файлів»; їх встановлено на Блокувати на моєму ПК (велике червоне коло з лінією через нього) Двічі клацніть на правилі На вкладці Загальні, в розділі Дія, встановіть Дозволити з'єднання. Натисніть ОК


Про це вже йдеться у відповіді @Keljo (фактично ви скопіювали його / її відповідь).
Мартін Прикрил
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.