Пакетная передача с FTP-передачей

Пакетная передача с FTP-передачей

Я попытался получить файл с моего ftp-сервера с помощью пакетного файла. Вот что происходит:

ftp> open files.000webhost.com 21
Connected to us-east-1.route-1000.000webhost.awex.io.
220 ProFTPD Server (000webhost.com) [::ffff:145.14.145.124]
500 OPTS UTF8 not understood
User (us-east-1.route-1000.000webhost.awex.io:(none)):
331 User ***** OK. Password required

230-Your bandwidth usage is restricted
230 OK. Current restricted directory is /
ftp> lcd C:\Users\micah\Desktop\MiniventureLauncher\Game
Local directory now C:\Users\micah\Desktop\MiniventureLauncher\Game.
ftp> cd public_html
250 OK. Current directory is /public_html
ftp> binary
200 TYPE is now 8-bit binary
ftp> recv miniventure.jar
200 PORT command successful
150-Connecting to port 50186
150 13336.1 kbytes to download

Затем он просто останавливается. Вот код в моем пакетном файле:

@Echo Off
Set _FTPServerName=files.000webhost.com 21
Set _UserName=*****
Set _Password=*****
Set _LocalFolder=C:\Users\micah\Desktop\MiniventureLauncher\Game
Set _RemoteFolder=public_html
Set _Filename=miniventure.jar
Set _ScriptFile=transfer
:: Create script
 >"%_ScriptFile%" Echo open %_FTPServerName%
>>"%_ScriptFile%" Echo %_UserName%
>>"%_ScriptFile%" Echo %_Password%
>>"%_ScriptFile%" Echo lcd %_LocalFolder%
>>"%_ScriptFile%" Echo cd %_RemoteFolder%
>>"%_ScriptFile%" Echo binary
>>"%_ScriptFile%" Echo recv %_Filename%
>>"%_ScriptFile%" Echo quit
:: Run script
ftp -s:"%_ScriptFile%"
Del "%_ScriptFile%"

Он подключается к серверу, но не загружает файл.

решение1

Как предполагает @martin-prikryl в комментариях, это почти наверняка проблема брандмауэра Windows.

Хотя Windows ftpможет подключаться к удаленному хосту без специального разрешения, для загрузки файлов входящие удаленные передачи должны быть явно разрешены через брандмауэр Windows.

Разрешение входящих переводов

Если для Windows нет правил брандмауэра ftp, при запуске команды recvвам будет предложено автоматически добавить входящие правила в брандмауэр Windows. Отмеченный флажок Private networks [...]должен быть отмечен по умолчанию. Нажмите кнопкуРазрешить доступкнопку, чтобы добавить соответствующие правила в брандмауэр Windows.

например, разрешить загрузку через Windows ftp.exe

Добавить правило брандмауэра Windows — снимок экрана

Вам не нужно ставить галочку в поле, Public networks [...]если вы не собираетесь использовать Windows ftpвне дома. Вам нужно быть администратором, чтобы настроить правила брандмауэра.

Обратите внимание, что, к сожалению, это не позволит продолжить текущую загрузку. Вам нужно будет прервать текущую операцию (обычно с помощью Ctrl+ C) и повторить попытку.

Всплывающее окно брандмауэра не отображается

Если передача зависает и не отображается всплывающее окно с правилами брандмауэра, это, скорее всего, означает, что в брандмауэре Windows уже есть существующие правила ftp(они добавляются, даже если вы изначально нажимаетеОтменав диалоговом окне выше). Более того, вероятно, эти правила настроены на блокировку любых входящих подключений (обозначаются круглыми значками с косой чертой).

например, Windows ftp.exe заблокирован брандмауэром Windows

ftp.exe заблокирован брандмауэром Windows - Скриншот

Чтобы изменить это:

  1. ОткрытьПанель управления\Система и безопасность\Брандмауэр Windowsи нажмите на ссылку с пометкойРасширенные настройкислева.

  2. вБрандмауэр Windows с расширенной безопасностьюдиалоговое окно (показано выше), нажмите кнопкуВходящие правилассылку слева и дождитесь заполнения основной панели. Найдите два правила, отмеченныеПрограмма передачи файлов. Вы можете нажать наИмязаголовок категории для сортировки элементов в алфавитном порядке по мере необходимости.

  3. Для каждого правила щелкните правой кнопкой мыши и выберитеХарактеристики. ПодОбщийвкладку, изменитьДействиеот Block the connectionдо Allow the connection. НажмитеХОРОШОв нижней части диалогового окна по завершении.

    например, обновление правил брандмауэра Windows для Windows ftp.exe

    Разблокировать правило брандмауэра Windows ftp.exe - Скриншот

  4. Если все сделано правильно, значки в виде кружочков с косой чертой должны замениться зелеными галочками.

    например, правила брандмауэра Windows для Windows ftp.exe — зеленые галочки

    Правило брандмауэра Windows ftp.exe с зелеными галочками — снимок экрана


Создание собственных правил

Если вы хотите вручную добавить (создать) эти правила самостоятельно, выполните шаги 1 и 2, за исключением нажатия кнопкиНовое правило...с правой стороны после выбораВходящие правила.

Создайте одно правило для TCP-соединений и одно правило для UDP-соединений (параметры протокола перечислены подПротоколы и портывкладка). Убедитесь, чтоВсе портыразрешены. ОтрегулируйтеОбъемсвойства вкладки (обычно устанавливаются наЛюбой IP-адрес) иПередовойвкладкаПрофили(обычно просто Private) по мере необходимости.

Наконец, подПрограммы и услугивкладку, введите, например, C:\windows\system32\ftp.exeпуть к программе (если вы сомневаетесь, вы можете использовать where ftpкомандную строку для отображения правильного пути).


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