A função FTP da linha de comandos não funciona

10

Estou usando o Windows 7 e tenho vários aplicativos de cliente FTP funcionando sem nenhum problema. No entanto, quando eu uso o FTP da linha de comando, posso me conectar, efetuar login (depois de inserir o nome de usuário e a senha), mas ele sempre fica desconectado quando o comando dir ou ls é usado. A resposta é:

Connection closed by remote host.

Como posso resolver este problema?

    
por Hong 28.11.2010 / 03:56

5 respostas

12

Você geralmente verá esse tipo de coisa acontecer quando o servidor tentar se conectar a você, mas não conseguir. O FTP usava originalmente dois canais TCP . Um era para comandos e o outro para transferência de dados. Quando você executa o comando dir, ele usa um canal de dados. O canal de dados é estabelecido sob demanda e resulta no servidor tentando se conectar de volta a você.

Isso provavelmente está sendo bloqueado pelo seu roteador ou pelo firewall do Windows. Você precisa de um cliente que suporte o modo PASV .

Você pode ativar o modo PASV no Internet Explorer . Ou use um cliente diferente. Não tenho certeza se a versão da linha de comando pode usar o modo PASV. É um cliente muito básico.

    
por 28.11.2010 / 05:11
4

Eu tive um problema com a transmissão de arquivos via FTP, uma vez que eu estava logado na caixa em questão. Ele criaria o nome do arquivo, mas o arquivo estava vazio. Eu resolvi isso fazendo o seguinte:

  • Vá para Painel de controle → Firewall do Windows → Configurações avançadas → Regras de entrada
  • Clique duas vezes na coluna Nome para classificar por nome
  • Role para baixo até ver duas regras chamadas "Programa de Transferência de Arquivos"; estes foram definidos para Bloquear no meu PC (grande círculo vermelho com uma linha através dele)
  • Clique duas vezes na regra
  • Na guia Geral , em Ação , defina como Permitir a conexão
  • Clique em OK
  • Faça isso para a outra regra

Deve ser bom ir agora.

    
por 03.05.2012 / 20:46
4

O cliente de linha de comando de FTP do Windows ftp.exe suporta apenas um modo FTP ativo.

Configurar o FTP no modo ativo pode ser complicado atualmente devido a firewalls e NATs.

É provável que, devido ao seu firewall local ou NAT, o servidor não tenha conseguido se conectar ao seu cliente para estabelecer uma conexão de transferência de dados para a listagem de diretórios ( ls ou dir ).

Ou o seu cliente não está ciente de seu endereço IP externo e fornece um endereço interno ao servidor (no comando PORT ), que obviamente o servidor não pode usar.

Veja o meu artigo Configuração de rede para o modo ativo .

Se possível, você deve usar um modo passivo, pois normalmente não requer configuração adicional no lado do cliente.

Infelizmente, o cliente de linha de comando FTP do Windows (o ftp.exe ) não suporta o modo passivo. Isso torna bastante inútil hoje em dia.

Use qualquer outro cliente de linha de comando FTP do Windows. A maioria dos outros modos passivos de suporte.

Por exemplo, o WinSCP tem como padrão o modo passivo e há um guia disponível para converter script FTP do Windows para o script WinSCP .

(eu sou o autor do WinSCP)

    
por 03.03.2015 / 15:01
3

Encontrei esse problema em um servidor Windows 2008.

Este artigo sugere a ativação do Serviço de gateway da camada de aplicativo . Isso não resolveu o problema para mim.

O que corrigiu o problema foi adicionar uma exceção no Firewall do Windows para C: \ Windows \ system32 \ ftp.exe

    
por 09.05.2011 / 22:22
0

Eu estava tendo o mesmo problema com o software PDV de terceiros em uma máquina com Windows 7 que agrupa dados de transações do cliente de volta para um servidor SQL.

Funcionou bem até que o local do cliente alterou os ISPs e, portanto, os endereços IP estáticos. Os comandos de FTP da linha de comando não funcionaram além do login inicial e nenhum dos remédios que encontrei on-line ou esse encadeamento funcionou.

Apenas por diversão, criei novamente a regra de FTP no firewall, um roteador D-Link barato. / firewall e viola, parece estar funcionando novamente.

    
por 07.05.2012 / 23:06