2013-09-05 3 views
35

우분투에서 수동 모드 용 ftp -p이 정상적으로 작동합니다.Windows 명령 프롬프트에서 수동 FTP 모드를 사용하는 방법은 무엇입니까?

Windows에서 어떻게 동일한 작업을 수행합니까?

나는 quote pasv과 노력하지만 오류가 다음 무엇입니까 :

230 OK. Current restricted directory is/
ftp> quote pasv 
227 Entering Passive Mode (31,170,167,221,116,239)  
ftp> cd os  
250 OK. Current directory is /os  
ftp> dir  
500 I won't open a connection to 10.23.16.248 (only to 113.193.128.177)  
425 No data connection  
ftp> 

내 방화벽을 사용할 수 없습니다.

+0

만약 너무 열려있는 연결을 여는 동안 당신은 Firefox 사용에 신경 쓰지 않고 수동 모드를 지원하는 FireFTP 확장 기능을 기본으로 제공합니다. – lango

답변

31

Windows는 실제로 수동 모드를 지원하지 않습니다.

세 가지 방법으로 서버에 명령을 보낼 수는 있지만 Windows 클라이언트 끝에서 수동 모드를 사용할 수 없습니다.

이러한 인수는 다양한 명령을 보내기위한 것이며 pasv은 Microsoft에서 작성한 것으로 생각하지 않습니다.

명령 줄 사용을 지원하는 WinSCP와 같은 타사 소프트웨어를 찾아서 Windows 기본 응용 프로그램 대신 사용해야합니다.

+1

필자는 Windows 7에서 pasv를 지원한다고 생각합니다. –

+2

XP, 7, 2k8, 2k12를 테스트했습니다 – transilvlad

+10

수정 : "Windows'ftp.exe'는 수동 모드를 지원하지 않습니다." 완벽하게 기능을 갖춘 FTP 클라이언트를 사용한다면 OS는 잘 지원합니다. –

6

CURL 클라이언트는 FTP 프로토콜을 지원하며 수동 모드로 작동합니다. 다운로드 버전없이 다운로드하면 openssl.dll 라이브러리가 필요하지 않습니다. 하나의 curl.exe 명령 줄 응용 프로그램. http://www.paehl.com/open_source/?CURL_7.35.0

curl.exe -T c:\test\myfile.dat ftp://ftp.server.com/some/folder/myfile.dat --user myuser:mypwd 

또 하나
은 퍼티 psftp.exe하지만 서버 키 확인 메시지가 트릭을 필요로합니다. 이 명령 행은 프롬프트 의미 키에 대해 NO를 입력하며,이 시간에 레지스트리에 저장되지 않습니다. 외부 스크립트 파일이 필요하지만 여러 파일을 위아래로 복사하는 경우가 있습니다.
http://www.chiark.greenend.org.uk/~sgtatham/putty/download.html

echo n | psftp.exe ftp.server.com -l myuser -pw mypwd -b script.txt 

으로 Script.txt (모든 ftp 명령이 입력 될 수있다)

put "C:\test\myfile.dat" "/some/folder/myfile.dat" 
quit 
+1

'psftp '는 FTP 클라이언트가 아닌 SFTP 클라이언트입니다. 또한 SSH 호스트 키를 자동으로 승인하도록 권장하는 것은 보안 위험이 있습니다. 원래 포스터 세션에 대한 응답에 –

6

quote PASV 명령 ftp.exe 프로그램 명령 아니라, FTP 서버에 명령이며 데이터 전송을위한 상위 포트를 요청합니다. 수동 전송은 제어가 하위 포트에서 유지되는 동안 이러한 고 순서 포트를 통한 FTP 데이터를 전송하는 것입니다.

Windows 프로그램을 사용하면 두 개의 FTP 서버간에 수동 데이터 전송을 위해 FTP 서버 명령을 보낼 수 있습니다. 표준 Windows 설치는 FTP 서버 서비스를 수동 전송을위한 끝점으로 실행하지 않으며, 그렇게해서도 안됩니다. 따라서 표준 Windows 상자에서 수동 전송이 필요한 경우 ftp.exe 이외의 솔루션이 필요합니다. 대부분의 Windows 환경에서 연결 중 하나가 작동하지 않으므로 로컬 호스트로 FTPing하는 것입니다.

열기를 두 개의 프롬프트를 ftp.exe 하나가 소스 FTP 서버와 하나에 연결 사용하여 다음과 같이

당신은 두 개의 서로 다른 호스트 (그러나 동일한 호스트에없는 두 개의 연결) 사이에 수동 FTP 전송에 영향을 줄 수 ftp.exe을 대상 FTP 서버에 연결하십시오.

이제 원시 명령어 인 PASV 및 PORT를 사용하여 서버간에 수동 연결을 설정하십시오.quote PASV 명령은 줄임표로 표시된 IP/포트로 응답합니다. quote PORT <data> 명령에 해당 데이터를 사용하십시오. 방화벽이 4 개 포트 중 하나 이상을 차단하지 않았다고 가정하면 수동 연결이 설정됩니다 (FTP 제어의 경우 2, FTP 데이터의 경우 2)

다음에 수신 FTP 서버에 quote STOR <filename> 명령을 사용하여 데이터 수신을 시작한 경우 소스 FTP 서버에 제어 명령 quote RETR <filename>을 보냅니다. 나를 위해 이렇게

:

client 1 
> ftp.exe server1 
ftp> quote PASV 
227 Entering Passive Mode (10,0,3,1,54,161) 

client 2 
> ftp.exe server2 
ftp> quote PORT 10,0,3,1,54,54,161 
ftp> quote STOR myFile 

client 1 
ftp> quote RETR myFile 

Cavet : 나는 오래된 FTP 서버 YMMV에 연결하고있어

+0

주 : '227 패시브 모드 입력 (31,170,167,221,116,239)' 번역 : 서버 31.170.167.221에 데이터 포트를 열기 (116 * 256 + 239) '500 I 열리지 것 10.23.16.248에 대한 연결 (113.193.128.177에만 해당) ' 이 IP 주소는 올바르지 않습니다. FTP.EXE 프로그램이 dir 명령의 상위 포트에서 데이터를 수신하는 방법을 모르고 두 개의 위조 된 IP 주소로이 잘못된 메시지를 제공합니다. –

29

윈도우 FTP 명령 줄 클라이언트 (ftp.exe) 하나에서, 수동 모드를 지원하지 않습니다 Windows 버전. 유비쿼터스 방화벽과 NAT 덕분에 요즘에는 쓸모 없게됩니다.

quote pasv을 사용하면 도움이되지 않습니다. 은 수동 모드로 전환되지만 클라이언트는이 아닙니다.


대신 다른 Windows FTP 명령 줄 클라이언트를 사용하십시오. 대부분의 다른 수동 모드를 지원합니다.

예를 들어 WinSCP은 기본적으로 수동 모드이며 Windows FTP script to WinSCP script을 변환하는 데 사용할 수있는 가이드가 있습니다.

+0

친애하는 마틴, WinSCP는 아주 좋은 프로그램이지만 거의 매일 사용합니다. 지금도이 특정 문제가 남아 있습니다 : Windows의 기본 ftp.exe가 수동 모드를 지원하지 않기 때문에, Windows 용 타사 명령 줄 FTP 프로그램을 사용하여 FTP 서버에 연결하고 명령을 실행할 수 있습니까? 감사! –

+0

@Sorin 귀하의 질문에 이해가 가지 않습니다. WinSCP는 Windows * 용 타사 명령 줄 FTP 프로그램입니다. –

+0

WinSCP는 GUI 프로그램이라는 것을 알고있었습니다. 대화식 콘솔에 텍스트 명령을 쓸 수있는 옵션이 있습니까? –

7

이 직접 명령 줄에 대한 질문에 대답 나던 있지만 (나는 WinSCP에의 저자 해요)하지만, 윈도우 OS에서 Windows 탐색기가 ftp://[email protected]

이에 의해 수동 모드를 사용합니다 사용 명령 행에 대한

기본, 활성 모드는

-1

FileZilla의 잘 작동의 기본을합니다. Passive 모드를 지원하는 FileZilla FTP 클라이언트 "수동 전송"을 사용합니다.

예 :

1) 적절한 다운로드를 확인/업로드 옵션) 2 선택 원격입니다 : 열기 FileZilla를하고 "전송">> 수동 전송 창에서 다음 "수동 전송", 다음을 수행 : 다운로드 할 파일의 디렉토리 이름을 입력하십시오. 3) 원격 : 다운로드 할 파일의 이름을 입력하십시오. 4) 로컬 : 파일을 다운로드 할 원하는 디렉토리로 이동하여 5) 로컬 : 입력 다운로드 한 파일을 저장할 파일 이름 (변경하지 않고 다운로드 할 파일과 동일한 파일 이름 사용) 6) 체크 박스 "즉시 전송 시작 ly "를 선택하고"확인 "을 클릭하십시오. 7) 다운로드가 잠시 시작됩니다. 8) 참고 :"즉시 전송 시작 ​​"확인란을 선택하지 않은 경우 ... 문제 : 다운로드 할 파일을 마우스 오른쪽 버튼으로 클릭하십시오. FileZilla 창의 하위에있는 대기열 (파일 전송 대기열)을 처리하고 "처리 대기열"을 선택하십시오. 9) 다운로드 프로세스가 잠시 시작되어야합니다. 10) 완료

+0

질문은 "Windows 명령 프롬프트"에 관한 것입니다. FileZilla는 GUI 응용 프로그램입니다. –

+0

filezilla는 스크립팅에 대한 지원을 제공하지 않습니다 ... 자동으로 수행하고 싶을 때 좋지 않을 때 자신의 것으로 이동하려는 경우에 좋음 –

0

이것은 일반적인 문제입니다. ftp 연결을 시작할 때 외부 ip 만이 pasv 연결을위한 포트를 엽니 다. 하지만 NAT 뒤에있는 IP 연결을 열지 않습니다 그래서 수동 연결

우리가 지정할 필요가 PASV 명령 실패하는 연결

FTP -p {호스트}

관련 문제