Erro 29 no Total Commander e problemas de FTP: como resolver

Erro 29 no Total Commander e problemas de FTP: como resolver

Última verificação: 22 de setembro de 2026
11 min de leitura
Tutorial

A mensagem Erro ao executar o programa (código de erro 29) no Total Commander aparece quando o cliente tenta abrir uma ligação de dados em modo ativo (comando PORT) e um router com tradução de endereços NAT ou uma firewall bloqueia o pacote que chega do servidor. Embora os administradores lidem com este erro há décadas, a sua causa técnica é muito precisa e está diretamente ligada à arquitetura do protocolo FTP.

Mais abaixo explicamos a origem do erro 29, a correção rápida no Total Commander, a configuração da firewall e a migração que não deve adiar: para o protocolo seguro SFTP com chaves SSH.


#Porque é que o Total Commander mostra o erro 29: modo ativo (PORT) e passivo (PASV)

O protocolo FTP clássico (RFC 959) utiliza dois canais de comunicação separados:

  1. Canal de controlo (control connection): normalmente na porta 21 do servidor, serve para enviar comandos (USER, PASS, LIST, RETR, STOR) e receber códigos de resposta.
  2. Canal de dados (data connection): uma ligação TCP separada, por onde passam as listagens de diretórios e o próprio conteúdo dos ficheiros.

A diferença entre o modo ativo e o passivo determina qual dos lados inicia a ligação do canal de dados:

MODO ATIVO (PORT) - Sujeito ao erro 29:
Cliente:21  ---> Servidor:21    [Canal de comandos]
Cliente     <--- Servidor:20    [Canal de dados: o servidor liga-se à porta do cliente]
                                 ^ Router NAT / firewall bloqueia o pacote de entrada!

MODO PASSIVO (PASV) - A solução correta:
Cliente:21  ---> Servidor:21    [Canal de comandos]
Cliente     ---> Servidor:50234 [Canal de dados: o cliente liga-se à porta do servidor]
                                 ^ O tráfego de saída pelo NAT é permitido!

#Como surge o erro 29

Quando o modo passivo está desativado no Total Commander, o programa funciona em modo ativo. Depois da autenticação, o cliente envia ao servidor o comando PORT h1,h2,h3,h4,p1,p2, indicando o seu endereço IP local e uma porta aleatória onde fica à escuta dos dados do servidor.

Nas redes domésticas e de escritório atuais, o computador está atrás de um router NAT. O cliente indica ao servidor o seu endereço IP privado (por exemplo 192.168.1.50), que um servidor na internet não consegue alcançar diretamente. Mesmo que o router suporte FTP ALG (Application Layer Gateway) e substitua o endereço pelo público, a firewall local do Windows ou o filtro com estado do router rejeita a ligação de entrada não solicitada vinda da porta 20 do servidor. Esgotado o tempo limite (timeout), o Total Commander devolve o erro 29 (Winsock connection failed ou ausência de resposta no socket de dados).


#Como corrigir o erro 29 no Total Commander passo a passo

Em 95% dos casos, a solução é forçar o modo passivo no perfil de ligação em causa.

#Passo 1: Ativar o modo passivo (PASV)

  1. Abra o Total Commander e prima Ctrl+F (ou escolha Net -> FTP Connect no menu principal).
  2. Na lista de ligações definidas, selecione o servidor problemático e clique em Edit.
  3. Na janela de configuração, procure a caixa de verificação Use passive mode for transfers (like a WWW browser).
  4. Marque esta opção.
  5. Clique em OK e volte a ligar-se ao servidor.

No modo passivo, o cliente envia ao servidor o comando PASV. Em resposta, o servidor abre uma porta aleatória do seu conjunto definido de portas passivas e devolve o respetivo número. A seguir, é o próprio Total Commander que abre uma ligação de saída para essa porta. Como os routers e as firewalls com estado deixam passar o tráfego de saída por predefinição, a transferência de dados decorre sem obstáculos.

#Passo 2: Verificar a Firewall do Windows Defender

Se o erro persistir mesmo com o modo passivo ativo, a firewall do sistema pode estar a bloquear o próprio processo do Total Commander:

  1. Abra Painel de Controlo -> Sistema e Segurança -> Firewall do Windows Defender.
  2. Escolha Permitir uma aplicação ou funcionalidade através da Firewall do Windows Defender.
  3. Verifique se o ficheiro TOTALCMD.EXE (ou TOTALCMD64.EXE) está na lista.
  4. Confirme que estão marcadas as opções para redes Privadas e Públicas.
  5. Se o programa não estiver na lista, clique em Permitir outra aplicação e indique o caminho de instalação do Total Commander (por predefinição C:\totalcmd\totalcmd64.exe).

#Passo 3: Configuração do servidor (para administradores de VPS e servidores dedicados)

Se gere o seu próprio servidor FTP (por exemplo vsftpd ou ProFTPD em Linux) e nenhum cliente consegue ligar-se em modo PASV, o problema está na configuração do conjunto de portas passivas no servidor.

No ficheiro /etc/vsftpd.conf, confirme que estão definidos o intervalo de portas e o endereço IP externo:

pasv_enable=YES
pasv_min_port=50000
pasv_max_port=50100
pasv_address=O_SEU_IP_PUBLICO_DO_SERVIDOR

Depois, abra esse intervalo na firewall do servidor (por exemplo UFW):

sudo ufw allow 21/tcp
sudo ufw allow 50000:50100/tcp
sudo systemctl restart vsftpd

#Porque é que o FTP clássico é um risco de segurança crítico

Corrigir o erro 29 devolve-lhe a ligação, mas continuar no protocolo FTP representa ameaças sérias para a integridade dos seus sites.

RISCOS DO PROTOCOLO FTP NÃO CIFRADO:
+-------------------------------------------------------------------+
| 1. Credenciais enviadas em texto simples (porta 21)              |
|    - Login e palavra-passe visíveis para cada nó intermédio       |
+-------------------------------------------------------------------+
| 2. Ficheiro wcx_ftp.ini exposto a infostealers                   |
|    - Cifra local fraca no Total Commander                        |
+-------------------------------------------------------------------+
| 3. Transferências de ficheiros não atómicas                      |
|    - Sessão interrompida estraga ficheiros PHP, White Screen      |
+-------------------------------------------------------------------+
| 4. Sem somas de verificação nem controlo de integridade           |
|    - Risco de corrupção silenciosa de ficheiros binários         |
+-------------------------------------------------------------------+

#1. Palavras-passe enviadas em texto simples

O protocolo FTP não cifra nem o canal de controlo nem o canal de dados. Qualquer pacote que passe pela rede local, pelo fornecedor de internet ou por nós de trânsito pode ser intercetado com um simples sniffer de rede (por exemplo Wireshark). A sua palavra-passe de acesso ao servidor de produção circula como texto aberto.

#2. Roubo de credenciais do ficheiro wcx_ftp.ini

O Total Commander guarda a configuração das sessões FTP no ficheiro wcx_ftp.ini. As palavras-passe gravadas nesse ficheiro estão protegidas por um algoritmo de ofuscação simples, quebrado há muitos anos. O malware do tipo infostealer (por exemplo RedLine, Vidar, Lumma) procura automaticamente o wcx_ftp.ini no disco e rouba de imediato as palavras-passe de acesso aos servidores.

#3. Risco de falha e erro 500 (White Screen of Death)

Quando envia para o servidor um ficheiro atualizado de um tema ou plugin (functions.php, class-core.php), a transferência FTP substitui o ficheiro bloco a bloco. Se a ligação cair a meio da transferência, fica no servidor código PHP incompleto e corrompido, o que deita abaixo todo o site de imediato com um erro crítico 500.


#Como usar o plugin SFTP no Total Commander

Se a interface de dois painéis do Total Commander é a sua principal ferramenta de trabalho, não tem de abdicar dela. Basta trocar o FTP inseguro pelo protocolo totalmente cifrado SFTP (SSH File Transfer Protocol).

#Como instalar e configurar o plugin SFTP

  1. Descarregue o SFTP plugin for Total Commander oficial a partir de ghisler.com (autor: Christian Ghisler).
  2. Abra o ficheiro .zip descarregado diretamente no Total Commander. O programa reconhece o plugin e pergunta se o pretende instalar. Escolha Sim.
  3. Entre em Ambiente de rede (botão de seleção de unidades: \).
  4. Abra a pasta Secure FTP.
  5. Prima F7 para criar uma nova ligação.
  6. Introduza o nome da ligação, o nome do anfitrião (endereço IP ou domínio), a porta (22 por predefinição) e o nome de utilizador.

#Como configurar a autenticação com chave SSH

Em vez de escrever uma palavra-passe, configure a autenticação com uma chave criptográfica:

  1. Nas definições da ligação, indique o ficheiro da chave privada no formato .ppk (PuTTY) ou OpenSSH (por exemplo id_ed25519).
  2. Se utiliza o Pageant (parte do pacote PuTTY), o plugin SFTP consegue obter automaticamente as chaves carregadas na cache do agente SSH.
  3. Uma ligação SFTP é 100% resistente à escuta na rede e elimina o risco de roubo da palavra-passe em trânsito.

#Como comparar os protocolos de transferência FTP e SFTP

A tabela seguinte reúne os parâmetros técnicos e o nível de segurança de cada método de envio de ficheiros para o servidor:

ParâmetroFTP (Ativo)FTP (Passivo)FTPS (FTP over TLS)SFTP (SSH)Git + CI/CD
Porta predefinida21 + 2021 + conjunto PASV21 + conjunto PASV22443 / 22
Cifra das credenciaisNenhuma (texto simples)Nenhuma (texto simples)Sim (TLS 1.2/1.3)Sim (SSHv2)Sim (HTTPS/SSH)
Cifra dos dadosNenhumaNenhumaSimSimSim
Compatibilidade com NAT / firewallMuito baixa (Erro 29)AltaMédia (exige TLS reuse)Muito altaA mais alta
Suscetibilidade ao erro 29Muito altaEliminadaEliminadaEliminadaNão se aplica
Implementação atómicaNãoNãoNãoOpcional (symlinks)Total (Zero-Downtime)
Recomendado para produçãoNão (obsoleto)Não (obsoleto)Permitido temporariamenteSim (para gestão)Padrão de engenharia

#Como passar do FTP para implementações CI/CD

Nos ambientes de produção modernos, o envio manual de ficheiros através de um gestor de ficheiros dá lugar a um processo de implementação automatizado.

#Como funciona uma implementação atómica sem tempo de inatividade

Em vez de alterar ficheiros diretamente no diretório public_html, a implementação atómica prepara a nova versão num diretório de versões separado e depois troca a ligação simbólica num instante:

/var/www/omeusite/
|-- current -> /var/www/omeusite/releases/2026-09-21-1200/   [Ligação simbólica]
|-- releases/
|   |-- 2026-09-20-0930/  [Versão anterior]
|   `-- 2026-09-21-1200/  [Nova versão, totalmente construída]
`-- shared/
    |-- wp-config.php     [Configuração partilhada]
    `-- wp-content/uploads/ [Multimédia partilhada]

Vantagens desta solução:

  • Sem tempo de inatividade: trocar a ligação simbólica com ln -nfs demora alguns milissegundos.
  • Segurança: se a instalação das dependências do Composer ou a construção dos assets falhar, o symlink não é trocado e o site continua a funcionar normalmente na versão anterior.
  • Rollback imediato: voltar à versão anterior depois de detetar um erro exige apenas um comando que aponta o symlink para trás.

Automatizar as implementações com Git elimina a necessidade de abrir portas FTP, protege o código-fonte contra substituições acidentais e garante o histórico completo de cada alteração feita.


#Que perguntas sobre o erro 29 de FTP surgem com mais frequência

#O que é exatamente o erro 29 no Total Commander?

O erro 29 significa que não foi possível abrir o socket de dados em modo ativo (comando PORT). Acontece quando o servidor FTP tenta estabelecer uma ligação de volta ao computador do utilizador, mas um router NAT ou uma firewall bloqueia esse pacote de entrada.

#Ativar o modo passivo torna a transferência de ficheiros mais lenta?

Não. O modo passivo apenas muda o lado que inicia a ligação TCP do canal de dados (é o cliente que a inicia, e não o servidor). Depois de estabelecida a sessão, a velocidade de transferência é idêntica à do modo ativo.

#Porque é que o Total Commander não se liga por SFTP quando escrevo a porta 22 na janela de FTP?

O módulo FTP integrado no Total Commander suporta apenas FTP e FTPS (FTP over TLS). O SFTP é um protocolo completamente diferente, assente no subsistema SSH. Para se ligar pela porta 22, tem de instalar o plugin SFTP adicional a partir do site do fabricante.

#Onde guarda o Total Commander as palavras-passe das ligações FTP?

Por predefinição, o Total Commander guarda as definições das ligações e as palavras-passe codificadas no ficheiro wcx_ftp.ini, localizado no diretório %APPDATA%\GHISLER\ ou na pasta de instalação do programa. Estas palavras-passe não têm cifra forte e o malware consegue lê-las com facilidade.

#É melhor usar o FileZilla em vez do Total Commander?

O FileZilla usa o modo passivo por predefinição e suporta SFTP de forma nativa, sem necessidade de plugins. Ainda assim, se prefere a interface de dois painéis do Total Commander, basta instalar o plugin SFTP e usar chaves SSH.


Resolver problemas de transferência de ficheiros e abandonar o protocolo FTP obsoleto em favor de procedimentos de implementação seguros é uma tarefa elementar para manter uma infraestrutura estável. Se está a planear arrumar o seu ambiente de servidores ou implementar um pipeline CI/CD seguro, conheça a nossa oferta de programador WordPress.

Próximo passo

Transforme o artigo numa implementação real

Este bloco reforça a ligação interna e conduz o leitor para o passo seguinte mais útil dentro da arquitetura do site.

Quer implementar isto no seu site?

Se quer transformar o artigo em melhorias concretas, redesign ou num plano de implementação, posso fechar o escopo e executar.

Cluster relacionado

Explorar outros serviços WordPress e base de conhecimento

Reforce o seu negócio com suporte técnico profissional em áreas-chave do ecossistema WordPress.

Artigos Relacionados