ftp>의 ls 명령이 작동하지 않습니다! files. ftp> pwd 257 “/home/ravbholua” ftp> ls 500 Illegal

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를 실행할 때 다른 출력을 얻었습니다.>



답변

FTP는 고대 프로토콜입니다. 이 명령은 두 가지 TCP 연결 , 즉 명령이 교환되는 제어 연결 과 파일 내용 및과 같은 명령 출력에 대한 데이터 연결 에 의존합니다 ls. 여기서 일어나는 일은 제어 연결이 설정되었지만 데이터 연결이 진행되지 않는다는 것입니다.

기본적으로 (활성 모드) 데이터 연결은 발신자에서 수신자로 설정됩니다. 의 출력을 ls위해 서버가 데이터를 전송하므로 서버는 클라이언트에 대한 연결을 열려고 시도합니다. 이것은 FTP가 발명되었을 때 잘 작동했지만 오늘날 클라이언트는 종종 활성 FTP를 지원하거나 지원하지 않을 수있는 방화벽이나 NAT 뒤에 있습니다. 클라이언트가 항상 데이터 연결을 시작하는 수동 모드로 전환하십시오.

ftp기본적으로 수동 모드로 전환하는 방법을 보려면 명령 설명서를 확인하십시오 . 한 번만 명령을 입력하면 passive일반적으로 트릭이 수행됩니다.

ncftp 또는 lftp 와 같은 더 멋진 FTP 클라이언트로 전환 할 수 있습니다 .


답변

“ftp 500 Illegal PORT command”에 대한 완벽한 솔루션. 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 연결을 확인하십시오.


답변