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: 15 de outubro de 2026
16 min de leitura
Tutorial
Arquitetura de servidores

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) no socket de dados, o Total Commander devolve o erro 29.


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

Na maioria 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

#Como consultar o registo FTP do Total Commander para encontrar a causa do erro 29

Antes de alterar as regras da firewall, verifique no registo em que comando a sessão para. O Total Commander mostra a sessão numa janela de registo na barra FTP, e a chave LogFile da secção [General] do ficheiro wcx_ftp.ini grava-a num ficheiro, por exemplo LogFile=c:\Path\Log.txt (TotalcmdWiki, wcx_ftp.ini). O registo em ficheiro existe desde a versão 3.51, de 1998 (histórico de versões do Total Commander).

Procure dois padrões definidos no RFC 959:

  • Depois do comando PORT, o servidor responde 200, mas LIST ou RETR devolvem 425 Can't open data connection ou esgotam o tempo limite. É o modo ativo bloqueado pelo NAT ou por uma firewall.
  • Depois do comando PASV, o servidor responde 227 Entering Passive Mode (h1,h2,h3,h4,p1,p2). Os quatro primeiros números são o endereço a que o cliente se deve ligar. Se aí aparecer um endereço privado, 127.0.0.1 ou 0.0.0.0, a falha está no servidor: falta-lhe uma definição como pasv_address, do passo 3.

As versões recentes do Total Commander contornam sozinhas algumas destas falhas. Segundo o histórico de versões, desde julho de 2020 o programa liga-se a servidores que respondem a PASV com o endereço 0.0.0.0, e desde março de 2025 aceita servidores que indicam 127.0.0.1 em vez do endereço real. Em setembro de 2016 foram ainda eliminadas as tentativas infinitas quando ambos os modos, PASV e PORT, falham por má configuração do servidor. Se o registo mostrar um endereço estranho na resposta 227 e a versão instalada for antiga, atualizar o programa costuma ser mais rápido do que esperar pelo administrador do servidor.

Para que cada nova ligação use o modo passivo desde o início, defina pasvmode=1 na secção [default]. Para ligações que o router corta com frequência, a wiki documenta TcpKeepAlive=1 na secção [General], que ativa o TCP keep-alive em todas as ligações.


#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. Sem palavra-passe mestra, as palavras-passe gravadas nesse ficheiro estão apenas disfarçadas, não cifradas. A fragilidade está documentada como CVE-2005-4066, e a leitura está automatizada: a framework Metasploit inclui o módulo Windows Gather Total Commander Saved Password Extraction, que encontra as ligações gravadas no wcx_ftp.ini e extrai as respetivas palavras-passe (Rapid7).

#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 proteger as palavras-passe FTP do Total Commander com uma palavra-passe mestra

A TotalcmdWiki descreve o campo password das secções de ligação do wcx_ftp.ini como uma palavra-passe disfarçada, não cifrada (TotalcmdWiki). A NVD regista o mesmo problema como CVE-2005-4066: o Total Commander 6.53 guardava utilizadores e palavras-passe FTP com uma cifra fraca que um utilizador local consegue reverter.

A resposta do fabricante é a palavra-passe mestra (master password). O histórico de versões regista o trabalho nela em fevereiro de 2008, e a funcionalidade chegou com a versão 7.50, lançada em setembro de 2009. O histórico descreve o mecanismo como cifra AES com a palavra-passe mestra (histórico de versões).

Ativá-la demora um minuto:

  1. Prima Ctrl+F, selecione a ligação e clique em Edit.
  2. Marque a caixa de verificação Encrypt with master password.
  3. Defina a palavra-passe mestra. O programa pede-a uma vez por sessão, na primeira ligação a um servidor cuja palavra-passe ela protege.

Há alguns comportamentos a conhecer antes de a adotar numa equipa. Desde junho de 2022, o Total Commander apaga as palavras-passe das ligações FTP ativas quando a janela é minimizada ou a proteção de ecrã arranca, tal como faz com a palavra-passe mestra. A chave KeepMasterPassword da secção [General] mantém a palavra-passe mestra ao minimizar o programa (1), ao arrancar a proteção de ecrã (2) ou em ambos os casos (3). Desde junho de 2020, o programa pode guardar a palavra-passe mestra com o Windows Hello até o Total Commander ser fechado, pelo que voltar a ligar exige impressão digital, rosto ou PIN.

A palavra-passe mestra protege o ficheiro no disco, mas não muda o protocolo. O utilizador e a palavra-passe continuam a circular em texto simples pela porta 21 se a ligação usar FTP simples.


#Como ligar por FTPS no Total Commander

O cliente FTP integrado no Total Commander suporta FTPS, ou seja, FTP sobre SSL/TLS. É o passo intermédio para servidores que não oferecem acesso SSH mas oferecem FTP cifrado.

Desde setembro de 2016, o programa abre ligações FTPS sem as bibliotecas OpenSSL, através das funções sChannel do Windows em Secur32.dll. A mesma alteração acrescentou TLS 1.1 e TLS 1.2 e grava no registo da ligação a versão do protocolo negociada. Ao marcar a opção SSL/TLS no diálogo de ligação, o programa marca também o modo passivo, porque o FTPS não funciona em modo ativo (histórico de versões). Do lado do cliente, o erro 29 desaparece com a passagem para FTPS. Do lado do servidor, o intervalo de portas passivas continua a ter de estar aberto na firewall, como no passo 3.

Duas opções para ambientes mais exigentes:

  • Certificado de cliente: desde abril de 2018, o Total Commander pode usar no FTPS certificados de cliente do arquivo de certificados do Windows. Só funciona com sChannel, não com OpenSSL.
  • OpenSSL 3: desde março de 2022, o programa aceita as bibliotecas OpenSSL 3.0 do curl.se. Os ficheiros libssl-3.dll e libcrypto-3.dll (em 64 bits, libssl-3-x64.dll e libcrypto-3-x64.dll) ficam no diretório do programa, não no subdiretório 64. Quando ambos os métodos estão disponíveis, a chave PreferOpenSSL do wcx_ftp.ini escolhe entre sChannel e OpenSSL.

O FTPS mantém dois canais e o intervalo de portas passivas na firewall. O SFTP, tratado a seguir, usa uma única ligação na porta 22, pelo que em servidores com acesso SSH é mais simples de manter.


#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 OpenSSH. O readme do plugin indica que as chaves indicadas diretamente têm de usar esse formato (readme do plugin SFTP).
  2. O plugin aceita uma chave no formato PuTTY (.ppk) através do Pageant. O Pageant pode arrancar automaticamente se colocar no diretório do plugin um atalho chamado pageant.lnk que aponte para pageant.exe com o nome do ficheiro da chave como parâmetro.
  3. Também pode converter uma chave .ppk no puttygen: carregue a chave e escolha Conversions > Export OpenSSH key. O readme desaconselha o botão Save public key, porque cria uma chave pública num formato que o OpenSSH não aceita. Copie a chave pública do campo Public key for pasting into OpenSSH authorized_keys file.
  4. Uma ligação SFTP cifra tanto o início de sessão como os ficheiros transferidos, pelo que a palavra-passe nunca atravessa a rede em texto simples.

A versão 3.10 do plugin, de julho de 2026, funciona no Windows Vista a 11 com a biblioteca sChannel do sistema e não precisa de DLL adicionais. Suporta também servidores só com SCP, ligações através de um proxy HTTP com o comando CONNECT e keep-alive. Os algoritmos preferidos (troca de chaves, chave do anfitrião, cifra, MAC, compressão) definem-se por ligação no sftpplug.ini com as chaves prefmethod0 a prefmethod7, por exemplo prefmethod0=curve25519-sha256.


#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 significa 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.

#Modo passivo e velocidade de transferência de ficheiros

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.

#Total Commander não liga por SFTP na porta 22 da janela 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 o Total Commander guarda as palavras-passe 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. Sem palavra-passe mestra estão apenas disfarçadas, e ferramentas como o módulo do Metasploit leem-nas automaticamente. Com palavra-passe mestra são cifradas com AES.

#FileZilla ou Total Commander para FTP

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.

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

Benchmarks de alojamento WordPress 2026

Os testes comparativos Review Signal de Kevin Ohashi regressaram em 2026 após três anos de pausa, alimentados por uma nova plataforma de testes de carga em código aberto. Decompomos os cinco escalões de preço mais WooCommerce, nomeamos os vencedores, nomeamos os alojamentos que ficaram de fora e traduzimos os dados para agências europeias.