Porque o FTP envia endereços IP e portas dentro mensagens como esta (não apenas nos cabeçalhos dos pacotes), não é um protocolo compatível com NAT.
Devido a isso, os gateways NAT geralmente têm código especial para lidar com FTP. Esse código é conhecido como FTP "Application-Layer Gateway" ou ALG. Os ALGs FTP procuram mensagens como o comando PASV e reescrevem o endereço IP para representar o endereço IP público do gateway NAT, a fim de fazer a comunicação funcionar.
Se o seu cliente FTP estiver por trás de um gateway NAT e seu servidor FTP não estiver, o uso do modo passivo é uma maneira de contornar um gateway NAT incorreto que não possui um ALG FTP.
Se o seu cliente FTP estiver NÃO atrás de um gateway NAT, mas o seu servidor FTP É , então você pode usar o FTP ativo normal sem um problema, mas o modo passivo realmente quebraria neste caso se o gateway NAT na frente do servidor FTP não tivesse um bom ALG de FTP. Muitos gateways NAT têm ALGs de FTP meio quebrados que só fazem o FTP ativo funcionar para clientes FTP atrás do NAT, mas não lidam com o "FTP servidor por trás do caso NAT ". Aparentemente, muitos fornecedores de gateway NAT não pensam ou se preocupam com o caso do servidor por trás do NAT.
Se tanto o seu cliente FTP quanto o seu servidor FTP estiverem por trás de gateways NAT separados que não possuem ALGs FTP, o FTP ativo será bloqueado pelo NAT do cliente. e O FTP passivo será bloqueado pelo NAT do servidor, portanto você não poderá fazer FTP simples nesse caso, e precisará configurar algum tipo de túnel ou outra solução alternativa. A mudança para o FTP criptografado funcionará porque os protocolos FTP criptografados foram desenvolvidos depois que os gateways NAT eram comuns, e os autores sabiam que um gateway NAT não seria capaz de ver ou mexer com os componentes internos do protocolo, então eles tinham que projetá-lo para funcionar em todos os vários cenários NAT.