O FTP tem uma conexão de controle e uma conexão de dados. A conexão de controle é iniciada do cliente para o servidor e, portanto, normalmente não causa problemas, mas as conexões de dados são diferentes:
- no modo ativo, o servidor tenta se conectar ao cliente. As configurações necessárias de IP e porta são enviadas dentro do comando
PORT
ouEPRT
no canal de controle. Se o cliente estiver atrasado, o modo ativo não funcionará, porque o cliente usa um endereço IP que não pode ser acessado pelo servidor. Problemas semelhantes são se o cliente estiver atrás de um firewall, porque as conexões externas serão simplesmente bloqueadas. Somente firewalls com reconhecimento de FTP podem empregar ajudantes especiais para gerenciar conexões ativas (e elas não funcionarão com FTPS). - no modo passivo, o cliente se conecta ao servidor. O IP e a porta necessários são enviados dentro da resposta aos comandos
PASV
ouEPSV
. Não há problemas com NAT no lado do cliente e geralmente não há problemas com firewalls também. Mas haverá problemas se o próprio servidor estiver protegido por firewall ou NAT.
Em suma: o modo passivo funciona na maior parte do tempo, enquanto o modo ativo funciona apenas se o cliente tiver um endereço público. Mas este não é o caso de clientes por trás de um roteador (em casa, hotspot público ...) e geralmente também não em redes móveis.