O principal problema com o modo activo FTP realmente desce no lado do cliente. O cliente FTP não faz a conexão real à porta de dados do servidor - ele simplesmente diz ao servidor que porta ele está escutando eo servidor liga de volta para a porta especificada no cliente.
A partir do firewall do lado do cliente este parece ser um sistema fora de iniciar uma conexão para um cliente interno -. Algo que normalmente é bloqueado
Exemplo FTP Ativo
Abaixo está um exemplo real de uma sessão FTP ativa. As únicas coisas que foram alterados são os nomes de servidor, endereços IP e nomes de usuário. Neste exemplo uma sessão FTP é iniciada a partir testbox1.slacksite.com (192.168.150.80), uma caixa de linux executando o cliente linha de comando FTP padrão, a testbox2.slacksite.com (192.168.150.90), uma caixa de Linux em execução ProFTPd 1.2. 2RC2.
O (-d) flag depuração é usada com o cliente FTP para mostrar o que está acontecendo nos bastidores. Tudo no vermelho é a saída de depuração que mostra os comandos reais FTP ser enviado para o servidor e as respostas geradas a partir desses comandos. Saída do servidor normal é mostrado em preto, e entrada do usuário está em negrito.
Há algumas coisas interessantes a considerar sobre esse diálogo. Observe que quando o comando PORT é emitida, ela especifica uma porta no sistema do cliente (192.168.150.80), ao invés do servidor. Vamos ver o comportamento oposto quando usamos FTP passiva.
Enquanto estamos no assunto, uma nota rápida sobre o formato do comando PORT. Como você pode ver no exemplo abaixo é formatado como uma série de seis números separados por vírgulas. Os quatro primeiros octetos são o endereço IP, enquanto os segundos dois octetos compreendem a porta que vai ser utilizado para a ligação de dados. Para encontrar a porta real multiplicar o quinto octeto por 256 e adicione o sexto octeto ao total. Assim, no exemplo abaixo o número da porta é ((14 * 256) + 178), ou 3762.
Uma verificação rápida com netstat deve confirmar esta informação
Testbox1: {/home /pt /slacker /public_html}% ftp -. .. d testbox2
Conectado a testbox2.slacksite.com
servidor FTP 220 testbox2.slacksite.com pronto