FTP를 연습하고 있었는데 문제에 직면했습니다. ls 명령이 ftp>에서 작동하지 않습니다. 왜? 2개의 원격 서버를 확인했지만 ls는 어느 쪽에서도 작동하지 않았고 ls가 실행될 때 다른 출력을 제공했습니다. 2개의 원격 박스에 대해서는 아래를 참조하세요.
아래는 오늘 vsftpd를 설치한 원격 서버를 보여줍니다.
ravbholua@ravbholua-Aspire-5315:~$ ftp rs
Connected to ravi.com.
220 (vsFTPd 3.0.2)
Name (rs:ravbholua):
331 Please specify the password.
Password:
230 Login successful.
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> pwd
257 "/home/ravbholua"
ftp> ls
500 Illegal PORT command.
ftp: bind: Address already in use
ftp>
아래는 일부 파일을 보내야 하는 다른 원격 시스템에 대한 것입니다.그러나 ftp>의 ls가 작동하지 않는 경우, 파일이 전송되었는지 여부를 ls 없이 확인할 수 없기 때문에 내 로컬 상자에서 해당 상자로 파일을 어떻게 전송합니까?
ravbholua@ravbholua-Aspire-5315:~$ ftp 125.21.153.140
Connected to 125.21.153.140.
220---------- Welcome to Pure-FTPd [TLS] ----------
220-You are user number 1 of 10 allowed.
220-Local time is now 04:34. Server port: 21.
220-This server supports FXP transfers
220 You will be disconnected after 2 minutes of inactivity.
Name (125.21.153.140:ravbholua): peacenews
331 User peacenews OK. Password required
Password:
230 OK. Current restricted directory is /
Remote system type is UNIX.
Using binary mode to transfer files.
ftp> ls
200-FXP transfer: from 123.63.112.168 to 10.215.10.80
200 PORT command successful
위 시스템의 경우 ftp>에서 ls를 실행하면 프롬프트가 다시 표시되지 않았습니다.
두 원격 시스템 모두에서 ftp에서 ls를 실행했을 때 다른 출력을 얻었습니다.>
답변1
FTP는 고대 프로토콜입니다. 이는 두 개의 TCP 연결에 의존합니다.제어 연결어떤 명령이 교환되는지, 그리고데이터 연결파일 내용 및 ls
. 여기서 일어나는 일은 제어 연결이 설정되었지만 데이터 연결이 이루어지지 않는다는 것입니다.
기본적으로(활성 모드) 데이터 연결은 발신자에서 수신자로 설정됩니다. 출력의 경우 ls
서버에서 데이터를 전송하므로 서버는 클라이언트에 대한 연결을 열려고 시도합니다. 이는 FTP가 발명되었을 때 잘 작동했지만 요즘에는 클라이언트가 활성 FTP를 지원할 수도 있고 지원하지 않을 수도 있는 방화벽이나 NAT 뒤에 있는 경우가 많습니다. 클라이언트가 항상 데이터 연결을 시작하는 수동 모드로 전환합니다.
ftp
기본적으로 수동 모드로 전환하는 방법을 보려면 명령 설명서를 확인하세요 . 일회성 작업의 경우 passive
일반적으로 명령을 입력하는 것이 좋습니다.
답변2
"ftp 500 불법 PORT 명령"에 대한 완전한 솔루션입니다. 다음 링크를 클릭하세요:http://www.ucodice.com/articles/ftp-500-illegal-port-command/.
발췌
FTP 서버에 연결을 시도하고 500 잘못된 포트 명령을 받았습니다. 이 문제는 FTP 프로그램이 수동 모드로 구성되지 않은 경우 발생할 수 있습니다.
다음과 같은 오류 조각이 나타날 수 있습니다.
COMMAND:> [3/11/2015 1:17:05 PM] PORT 192,168,0,101,196,215
[3/11/2015 1:17:05 PM] 500 Illegal PORT command.
ERROR:> [3/11/2015 1:17:05 PM] Syntax error: command unrecognized.
ERROR:> [3/11/2015 1:17:05 PM] Failed to establish data socket.
이 문제를 해결하려면 FTP 서버의 구성 파일에서 포트 또는 FTP를 정의하고 IP 주소 또는 PASV 서버를 정의할 수 있습니다.
아래 설정에 대한 구성 파일을 확인하십시오.
pasv_enable=YES
pasv_promiscuous=YES
pasv_max_port=Enter the max port range allowed on your server.
pasv_min_port=Enter the min port range allowed on your server.
pasv_address=Ip Address of your server.
그런 다음 FTP 서비스를 다시 시작하고 FTP 연결을 확인하십시오.