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용 Windows 방화벽 규칙이 없는 경우 ftp명령을 사용하여 실행하면 recvWindows 방화벽에 수신 규칙을 자동으로 추가하라는 메시지가 표시됩니다. 표시된 상자는 Private networks [...]기본적으로 선택되어 있어야 합니다. 누르세요액세스 허용버튼을 클릭하여 Windows 방화벽에 적절한 규칙을 추가합니다.

전. Windows ftp.exe를 통한 다운로드 허용

Windows 방화벽 규칙 추가 - 스크린샷

집 밖에서 Public networks [...]Windows를 사용하려는 경우가 아니면 표시된 확인란을 선택할 필요가 없습니다 . ftp방화벽 규칙을 조정하려면 관리자여야 합니다.

안타깝게도 현재 다운로드를 계속할 수는 없습니다. 현재 작업을 중단하고(일반적으로 Ctrl+ 사용) 다시 시도 해야 합니다 C.

방화벽 팝업이 표시되지 않습니다

전송이 중단되고 방화벽 규칙 팝업이 표시되지 않으면 이는 Windows용 Windows 방화벽에 이미 기존 규칙이 있음을 의미할 가능성이 높습니다 ftp.취소위의 대화 상자에서). 또한 이러한 규칙은 들어오는 연결을 차단하도록 설정되었을 가능성이 높습니다(슬래시가 있는 원 아이콘으로 표시됨).

전. Windows 방화벽에 의해 차단된 Windows ftp.exe

ftp.exe가 Windows 방화벽에 의해 차단됨 - 스크린샷

이를 변경하려면:

  1. 열려 있는제어판\시스템 및 보안\Windows 방화벽그리고 표시된 링크를 클릭하세요고급 설정왼쪽에.

  2. 에서고급 보안이 포함된 Windows 방화벽대화상자(위에 표시됨)에서인바운드 규칙링크를 클릭하고 기본 창이 채워질 때까지 기다립니다. 표시된 두 가지 규칙을 찾으십시오.파일 전송 프로그램. 다음을 클릭할 수 있습니다.이름필요에 따라 항목을 알파벳순으로 정렬하는 범주 제목입니다.

  3. 각 규칙에 대해 마우스 오른쪽 버튼을 클릭하고속성. 아래의일반적인탭에서 변경하세요.행동에서부터 .Block the connectionAllow the connection누르다좋아요완료되면 대화상자 하단에 표시됩니다.

    전. Windows ftp.exe에 대한 Windows 방화벽 규칙 업데이트

    Windows ftp.exe 방화벽 규칙 차단 해제 - 스크린샷

  4. 올바르게 완료되면 슬래시가 있는 원 아이콘이 녹색 확인 표시로 바뀌어야 합니다.

    전. Windows ftp.exe에 대한 Windows 방화벽 규칙 - 녹색 확인 표시

    Windows ftp.exe 방화벽 규칙 녹색 확인 표시 - 스크린샷


나만의 규칙 만들기

이러한 규칙을 직접 수동으로 추가(생성)하려는 경우에는 클릭을 제외하고 1단계와 2단계를 진행하세요.새로운 규칙...선택 후 오른쪽에인바운드 규칙.

TCP 연결에 대한 규칙 하나와 UDP 연결에 대한 규칙 하나를 만듭니다(프로토콜 옵션은프로토콜 및 포트탭). 다음을 확인하세요.모든 포트허용됩니다. 조정하다범위탭 속성(일반적으로모든 IP 주소) 그리고고급의프로필(보통은 그냥 Private) 필요에 따라.

마지막으로,프로그램 및 서비스탭, 예를 들어 C:\windows\system32\ftp.exe프로그램 경로로 입력합니다(의심스러운 경우 where ftp명령 프롬프트에서 사용하여 적절한 경로를 표시할 수 있습니다).


관련 정보