Bem, não é realmente uma resposta, mas os comentários são muito curtos ...
Eu acho que não tenho sido claro o suficiente sobre "porta secundária". O ftp usa duas portas:
- a porta de comando (ou porta de escuta), padrão 21.
- a porta de dados (padrão 20).
A porta de comando é certamente gratuita, e é por isso que você pode se conectar e autenticar e emitir comandos get e put. Mas ao ir para a transferência, outra conexão é aberta na porta de dados e esta falha. Portanto, você precisa verificar (e talvez modificar) a porta de dados, não a porta de comando.
O problema é ainda mais difícil porque o ftp tem dois modos:
- O modo "passivo" no qual as portas padrão são usadas.
- O modo 'ativo' no qual as portas são negociadas.
É por isso que eu sugiro que você experimente transferências no modo passivo (não é o padrão). Qualquer cliente FTP como o Filezilla ou o comando ftp terminal tem esta opção.