O comando ls em ftp> não funciona!

O comando ls em ftp> não funciona!

Eu estava praticando FTP, mas enfrentei um problema: o comando ls não está funcionando em ftp> . Por que? Verifiquei 2 servidores remotos, mas ls não funcionou em nenhum deles e forneceu resultados diferentes quando ls foi executado. Por favor, veja abaixo as 2 caixas remotas.

A seguir mostra meu servidor remoto onde instalei o vsftpd hoje.

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> 

O texto abaixo é para uma máquina remota diferente para a qual preciso enviar alguns arquivos.Mas como ls on ftp> não está funcionando, como irei transferir arquivos da minha caixa local para essa caixa porque não posso confirmar sem ls se os arquivos foram transferidos ou não.

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

Observe que, para a máquina acima, depois que executei ls em ftp>, o prompt não voltou.

Em ambas as máquinas remotas, obtive resultados diferentes quando executado ls em ftp>

Responder1

FTP é um protocolo antigo. Ele depende de duas conexões TCP: umaconexão de controlesobre quais comandos são trocados, econexões de dadospara o conteúdo de arquivos e também para a saída de comandos como ls. O que está acontecendo aqui é que a conexão de controle foi estabelecida, mas as conexões de dados não estão sendo realizadas.

Por padrão (modo ativo), as conexões de dados são estabelecidas do remetente ao destinatário. Para a saída de ls, os dados são enviados pelo servidor, então o servidor tenta abrir uma conexão com o cliente. Isso funcionou bem quando o FTP foi inventado, mas hoje em dia, os clientes geralmente estão atrás de um firewall ou NAT que pode ou não suportar FTP ativo. Mude para o modo passivo, onde o cliente sempre inicia a conexão de dados.

Verifique o manual do seu ftpcomando para ver como mudar para o modo passivo por padrão. Para uma única vez, digitar o comando passivegeralmente resolve.

Você pode querer mudar para um cliente FTP melhor, comoncftpoulftp.

Responder2

Solução completa para "comando FTP 500 Illegal PORT". Clique no seguinte link:http://www.ucodice.com/articles/ftp-500-illegal-port-command/.

Excerto

Tentando conectar o servidor FTP e obtendo 500 comandos de porta ilegal. Este problema pode ocorrer quando o programa FTP não está configurado para o modo Passivo.

Você pode receber um snippet de erro como:

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.

Para resolver esse problema você pode definir a porta ou FTP no arquivo de configuração do servidor FTP e definir o endereço IP ou servidor PASV.

Verifique o arquivo de configuração para obter as configurações abaixo.

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.

Depois disso, reinicie o serviço FTP e verifique a conexão FTP.

informação relacionada