O FTP pode ser um protocolo problemático. Eu aceitei apenas não usá-lo (substituindo-o pelo SCP ou SFTP mais seguro e eficiente, conforme fornecido pela maioria dos pacotes SSH, ou (melhor ainda) pelo rsync sobre o ssh, quando disponível).
Mas coisas para procurar ou experimentar:
- Verifique se ele funciona se o firewall estiver temporariamente configurado para aceitar qualquer coisa. Isso confirmará que a configuração do firewall é o problema e, em vez disso, não há nenhum outro problema.
- Certifique-se de que o cliente esteja usando o modo PASV, caso contrário, o servidor tentará se conectar ao cliente e um bloco nesse ponto poderá ser o problema, não o firewall.
- Verifique qual porta o cliente está tentando usar para a conexão de dados (um bom cliente de FTP terá a opção de ver um log completo do que é enviado na conexão de comando, procure um comando PORT imediatamente antes de tentar a transferência ). Consulte o link para obter uma explicação de como interpretar os comandos PASV (e a diferença entre os modos ativo e passivo).
- Você não diz se o cliente FTP se conecta ou se ele falha ao obter uma listagem de diretório ou ao obter / enviar um arquivo. Se o último, então, o modo ativo / passivo é discutível (que só entra em jogo uma vez que a conexão de comando está aberta. Novamente, olhe para os logs, ou tente um cliente de linha de comando. Se o cliente FTP chegar a fazer uma conexão) e aceitando seu nome de usuário / senha), então você está recebendo uma conexão de comando OK.
Embora minha recomendação geral, supondo que você possa combiná-lo com seus usuários, é usar SFPT / SCP via SSH em vez de FTP. Eu o relaciono com meus usuários, explicando a melhor segurança e eficiência, e se isso falhar, eu vou com "se você realmente quiser usar o FTP, por favor considere usar um serviço diferente". Quase todas as configurações do Linux têm suporte a linha de comando e GUI (digite sftp: //server.domain.tld/ ou similar no gerenciador de arquivos padrão no Ubuntu, por exemplo) e há vários bons clientes para Windows ( Eu uso o WinSCP para uso da GUI e o pacote OpenSSH do Cygwin para uso em linha de comando, embora o WinSCP também suporte o uso da linha de comando).