FTP를 연습하고 있는데 문제가 발생했습니다. ls 명령이 ftp>에서 작동하지 않습니다. 왜? 두 원격 서버를 모두 확인했지만 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
일반적으로 명령을 입력하는 것이 좋습니다.
다음과 같은 더 나은 FTP 클라이언트로 전환하고 싶을 수도 있습니다.네트워크 파일 전송 프로토콜또는원격 전송 프로토콜.
답변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 연결을 확인하십시오.