O comando ls no ftp> não está funcionando!

17

Eu estava praticando o ftp, mas enfrentou um problema: o comando ls não está funcionando no ftp>. Por quê? Eu verifiquei em dois servidores remotos, mas o ls também não funcionou e dei uma saída diferente quando o ls foi executado. Veja abaixo as 2 caixas remotas.

O abaixo mostra meu servidor remoto onde eu 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> 

A seguir, é para uma máquina remota diferente, onde tenho que enviar alguns arquivos. Mas como ls no ftp> não está funcionando, como transferirei arquivos da minha caixa local para essa caixa porque não posso ser confirmado 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, uma vez que executei ls em ftp>, o prompt não voltou.

Nas duas máquinas remotas, obtive uma saída diferente quando executada ls em ftp>

Ravi
fonte
3
use o modo passivo. Verifique a página de manual do seu cliente ftp para saber como ativá-lo.
Stéphane Chazelas
Como saber qual cliente ftp está sendo executado no meu final?
quer
@stephane thanks! Corri man ftpe achei a -popção a ser usada no modo passivo. Como man ftpmenciona que o ftp é uma interface de usuário para o protocolo de transferência de arquivos padrão da Internet: é interface e não o cliente ftp !!! O que eu entendo é que o cliente ftp usa essa interface (ftp) para transferir arquivos.
Ravi

Respostas:

26

FTP é um protocolo antigo. Ele se baseia em duas conexões TCP: uma conexão de controle sobre a qual os comandos são trocados e as conexões de dados para o conteúdo dos arquivos e também para a saída de comandos como ls. O que está acontecendo aqui é que a conexão de controle é estabelecida, mas as conexões de dados não estão passando.

Por padrão (modo ativo), as conexões de dados são estabelecidas do remetente para o receptor. Para a saída dels , os dados são enviados pelo servidor, portanto, 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. Alterne para o modo passivo, onde o cliente sempre inicia a conexão de dados.

Verifique o manual do seu ftpcomando para ver como alternar para o modo passivo por padrão. Para uma coisa única, digitando o comandopassive geralmente faz o truque.

Você pode querer mudar para um cliente FTP mais agradável, como ncftp ou lftp .

Gilles 'SO- parar de ser mau'
fonte
Obrigado!! Mas por que de repente esse problema ocorreu. Eariler eu era capaz de executar ls em ftp>. Mas ontem, instalei o vsftpd no meu servidor remoto (meu VPS) e também editei o arquivo .netrcna minha caixa local (simplesmente coloquei o hash no início da linha em .netrc). Isso é tudo e depois da edição de ls que eu tenho enfrentado. Qual pode ser a razão pela qual o ls estava funcionando bem antes e desde ontem não está funcionando?
Ravi
Você está certo em sugerir lftp. Estou tendo experiência em trabalhar com isso. lftpé realmente incrível. Também gostaria de acrescentar que acabei de verificar lftpe está funcionando perfeitamente, sem problemas de ls. lsaqui (em lftp) está exibindo a saída corretamente.
Ravi
3

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

Excerto

Tentando conectar o servidor ftp e recebendo o comando 500 Illegal port. Esse 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 o ftp no arquivo de configuração do servidor ftp e definir o endereço IP ou o servidor PASV.

Verifique o arquivo de configuração para 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.

Manoj Kumar
fonte