FTP trava: 150 Abrindo conexão de dados no modo ASCII

12

Estou configurando um servidor FTP no meu servidor Windows 2008 (R2).

Tudo parece estar instalado corretamente, mas estou tendo problemas para usar um cliente FTP para fazer login no meu servidor FTP.

Eu posso usar a área de trabalho remota no servidor e, através dos comandos do DOS, consigo fazer o login com facilidade.

Mas se eu emitir um comando como "DIR", ele trava com: 150 Abrindo a conexão de dados no modo ASCII.

Tudo o que pesquisei e li aponta para portas do Firewall e / ou configurações do modo Passivo / Ativo.

Aqui está o que me incomoda ... se eu usar comandos FTP do DOS, eu posso fazer o login e usar o comando "DIR" somente se eu usar "localhost" como meu endereço.

Se eu especificar minha URL de FTP completa, recebo o erro de suspensão.

se eu especificar o URL "localhost", não recebo o erro.

Isso me leva a acreditar que é um problema do Firewall (ou até mesmo um problema do IIS7?), mas não tenho certeza de quais portas devo abrir?

Eu tenho portas 20, 21 abertas no meu firewall do Windows. Também abri essas portas no meu firewall da AWS (Amazon).

Acredito que meu cliente FTP esteja usando alguns números de portas de longo alcance potencialmente bloqueados por um dos meus dois firewalls. Eu usei ferramentas de monitoramento de rede para tentar ver quais portas ele está chamando, mas não consigo entender isso.

Alguma idéia, dicas, truques, ajuda?

    
por D3vtr0n 09.03.2011 / 01:16

8 respostas

7

O servidor FTP e o cliente FTP negocia quais portas serão usadas para a transferência de dados (incluindo a lista de diretórios quando você faz um "dir" ou "ls") usando o "canal de controle" do FTP. Portanto, se o seu "firewall AWS" não estiver fazendo inspeção de protocolo neste canal, não há como ele saber quais portas ele deve abrir dinamicamente para permitir o fluxo de tráfego (e fechar uma vez que essas portas não sejam mais usadas).

IMHO usando o monitoramento de rede para descobrir quais portas estão sendo usadas não vale a pena, porque essas portas vão mudar a cada nova sessão de FTP.

A menos que você já tenha feito isso, minha melhor solução para solucionar esse problema seria procurar qualquer ajuste no firewall que esteja protegendo seu servidor FTP (se eu entendi sua pergunta corretamente, esse seria o "firewall da AWS") e veja se existe algum "botão" para habilitar a inspeção do protocolo FTP.

    
por 09.03.2011 / 03:56
5

Recebi a mesma mensagem ao tentar usar o comando ls para listar os arquivos armazenados em um servidor host UNIX FTP na linha de comando do Ubuntu. Consegui fazer o login com sucesso usando ftp ftp.example.com e inserindo meu nome de usuário e senha quando solicitado. No entanto, eu receberia a mensagem 150 Opening ASCII mode data connection e nada aconteceu. Então, eu simplesmente inseri a opção -p (muda para o modo "passivo" para lidar com firewalls) com o comando e funcionou.

 ftp -p ftp.example.com

Digite o nome de usuário e a senha quando solicitado e, em seguida, os comandos, como ls e cd , funcionarão. Eu acredito que você também pode digitar este comando e ele fará a mesma coisa, mas eu não testei isso.

pftp ftp.example.com

Eu sei que a questão pertence ao Windows; no entanto, dado que o mesmo erro foi produzido, imaginei que essa dica valesse a pena postar.

    
por 20.11.2014 / 21:21
4

Para obter informações reais sobre por que a conexão está travada, você terá que usar um cliente que registre todos os comandos do protocolo para ver o que realmente está acontecendo. Existe um bom site em FTP com exemplos de registros aqui .

O mais provável, no entanto, seja

  1. seu cliente está por trás de um firewall (estúpido ou bloqueado por SSL) e está tentando usar o FTP em modo ativo
  2. seu servidor está atrás de um firewall (mudo ou bloqueado por SSL) e está tentando usar o FTP em modo passivo

Se você estiver usando SSL, a única resposta é abrir um intervalo de portas (digamos, 10000-11000) no firewall e configurar seu servidor FTP para forçar o modo Passivo e usar esse intervalo de portas. Se o seu servidor estiver usando NAT, você também precisará configurar o endereço IP apropriado para o servidor anunciar para os clientes, a maioria obedecerá ao que o servidor fornecer como a cadeia de conexão de modo passivo e se o servidor achar que é 10.1.1.1, é o que vai dizer aos clientes.

Se você não estiver usando SSL, a melhor resposta é verificar se você pode fazer com que o seu firewall faça a inspeção de protocolo para FTP. O firewall lerá o tráfego na porta 21 e abrirá a porta que seu servidor quiser abrir. Isso também pode corrigir os endereços NAT (quando o firewall também estiver manipulando o NAT). Você provavelmente ainda vai querer forçar o modo passivo, já que algumas pessoas não sabem como configurar seu cliente FTP corretamente e quase todo mundo está atrás de um roteador / firewall de banda larga atualmente.

Se você não conseguir um firewall mais inteligente, então terá que se ater à opção "abrir um monte de portas" (ou mudar para um protocolo que não precisa abrir um monte de portas aleatórias como o ssh's sftp).

    
por 09.03.2011 / 04:11
3

Eu tive esse problema e foi resolvido fazendo o seguinte.

Eu estava usando o FireFTP, que por padrão se conecta via modo passivo. Ao configurar um FTP no IIS, a porta padrão será 21. Eu tive que abrir a porta 21 no firewall, o que me levou a um estágio mais distante, mas ele travaria em Abrindo conexão de dados no modo ASCII .

Acontece que, em seguida, pega algumas outras portas dinâmicas. Eu sabia que era um problema de firewall como com o firewall fora do FTP se conecta bem. Também localmente no servidor - sem problemas.

Para corrigir, carreguei o IIS (usando a versão 8.0, acredito que seja o mesmo em 7.5), no nível servidor da árvore (que é o nó superior), clique nele e selecione "FTP Suporte de firewall ". Cada site FTP que você usar usará esses intervalos de portas, sites FTP individuais terão essa opção em cinza, já que são herdados desta seção.

No intervalo de portas do canal de dados, especifique x quantidade de portas, no meu caso 10000-10125 .

Agora, em seu firewall, abra esse intervalo de portas TCP como "intervalo de portas passivas FTP".

Eu então pensei que o problema seria resolvido, mas não completamente. Certifique-se de reiniciar o serviço Serviço de FTP da Microsoft para selecionar o novo intervalo de portas. Feche o FireFTP / client e tente novamente e desta vez com alguma sorte que você esteja.)

    
por 19.03.2013 / 11:28
1

Eu tenho o mesmo problema com você e consertei agora.

O que fiz foi abrir o Firewall do Windows (Win7), clicar em "Permitir um programa ou recurso através do Firewall do Windows" e, na lista "Programas e recursos permitidos", descobrir "Programa de transferência de arquivos" e marcar a caixa de seleção.

Depois disso, abra o Prompt de Comando e insira o ftp X.X.X.X, faça o login e, em seguida, ls / dir / get / put, tudo funciona agora.

Mas ainda não consegui me conectar com o File Zilla e o Web Browser, espero que seja útil para você.

    
por 26.04.2011 / 10:57
1

Verifique a sincronização do tempo do seu servidor

    
por 28.04.2012 / 08:01
0

Não mexa em nada na sua configuração

Basta adicionar a regra de saída no Firewall do Windows com segurança antecipada e colocar a porta 20.

Aproveite o FTP no CLI

    
por 10.04.2014 / 23:31
0

Resolvemos esse problema usando o Assistente de Nova Regra de Entrada do Firewall do Windows. Selecione Programa, depois C: \ Windows \ System32 \ ftp.exe, Permitir a conexão, Opções de verificação; Domínio, Privado, Público (você pode restringir mais tarde se necessário), nomeie a regra e pronto.

Agora, envie um ftp para um site de ftp e verifique se o diretório dir ou ls responde corretamente.

    
por 26.10.2017 / 22:42