다음 명령을 사용하여 FTP 서버에서 파일을 다운로드하려고 합니다 curl
.
curl --user kshitiz:pAssword ftp://@11.111.11.11/myfile.txt -o /tmp/myfile.txt -v
curl
서버에 연결하고 정지합니다.
* Hostname was NOT found in DNS cache
* Trying 11.111.11.11...
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
0 0 0 0 0 0 0 0 --:--:-- --:--:-- --:--:-- 0* Connected to 11.111.11.11 (11.111.11.11) port 21 (#0)
< 220-You Are Attempting To Access a Private
< 220-Network. Unauthorized Access is Strictly
< 220-Forbidden. Violators Will be Prosecuted!
< 220-- Management
< 220 This is a private system - No anonymous login
> USER kshitiz
< 331 User kshitiz OK. Password required
> PASS pAssword
< 230-OK. Current directory is /
< 230 4432718 Kbytes used (54%) - authorized: 8192000 Kb
> PWD
< 257 "/" is your current location
* Entry path is '/'
0 0 0 0 0 0 0 0 --:--:-- 0:00:01 --:--:-- 0> EPSV
* Connect data stream passively
* ftp_perform ends with SECONDARY: 0
0 0 0 0 0 0 0 0 --:--:-- 0:00:02 --:--:-- 0< 229 Extended Passive mode OK (|||10653|)
* Hostname was NOT found in DNS cache
* Trying 11.111.11.11...
* Connecting to 11.111.11.11 (11.111.11.11) port 10653
0 0 0 0 0 0 0 0 --:--:-- 0:00:03 --:--:-- 0* Connected to 11.111.11.11 (11.111.11.11) port 21 (#0)
> TYPE A
0 0 0 0 0 0 0 0 --:--:-- 0:04:02 --:--:-- 0^C
그러나 ftp
파일을 연결하고 가져오는 것은 작동합니다.
Status: Connecting to 11.1.1.11:21...
Status: Connection established, waiting for welcome message...
Response: 220-You Are Attempting To Access a Private
Response: 220-Network. Unauthorized Access is Strictly
Response: 220-Forbidden. Violators Will be Prosecuted!
Response: 220-- Management
Response: 220 This is a private system - No anonymous login
Command: USER kshitiz
Response: 331 User kshitiz OK. Password required
Command: PASS ******
Response: 230-OK. Current directory is /
Response: 230 4432718 Kbytes used (54%) - authorized: 8192000 Kb
Status: Server does not support non-ASCII characters.
Status: Connected
Status: Starting download of /myfile.txt
Command: CWD /
Response: 250 OK. Current directory is /
Command: PWD
Response: 257 "/" is your current location
Command: TYPE I
Response: 200 TYPE is now 8-bit binary
Command: PASV
Response: 227 Entering Passive Mode (10,9,4,66,39,139)
Command: RETR myfile.txt
Response: 150 Accepted data connection
Response: 226-File successfully transferred
Response: 226 0.000 seconds (measured here), 3.39 Kbytes per second
Status: File transfer successful, transferred 1 B in 1 second
순서가 무슨 상관인가요 TYPE A
? FTP가 작동하는데 왜 컬이 작동하지 않나요?
답변1
--disable-epsv
스위치를 추가하면 문제가 해결되었습니다.
약간의 설명:
방금 이상한 FTP 문제를 해결하려고 많은 시간을 보냈습니다. 문제가 발생하는 방식은 로그인 후 FTP 클라이언트가 디렉터리(또는 다른 명령)를 나열하려고 시도할 때 중단된다는 것입니다. EPSV는 "확장 수동 모드"이며 FTP의 기존 수동 모드(PASV)의 새로운 확장입니다. 최근 FTP 클라이언트는 EPSV를 먼저 시도한 다음 실패할 경우 레거시 PASV만 사용합니다. ...방화벽이 EPSV를 차단하는 경우 클라이언트는 명령이 성공한 것으로 간주합니다.그리고 계속해서 답장을 기다린다].
더 읽어보세요여기.
답변2
conections/users/passwords를 사용하여 ~/.netrc를 생성한 후 "여기" 문서의 예입니다.
#!/bin/bash
ftp 11.1.1.11 << eof
ascii
get /tmp/myfile.txt
bye
eof
lftp를 사용할 수 없다는 것은 안타까운 일입니다. 올바른 권한을 부여하면 훌륭한 클라이언트입니다. 암호를 ~/.netrc에 입력하거나 스크립트 차이에 입력하는 사이에는 보안이 전혀 표시되지 않습니다.
답변3
문제는 11.111.11.11 IP 주소에서 실행되는 FTP 서버에 있습니다.
이 사람은 영원히 죽었어...
FTP 11.111.11.11
먼저 간단한 FTP 클라이언트로 FTP 서버를 작동시키십시오.
컬 명령도 수정될 수 있습니다.