Error 29 en Total Commander y problemas de FTP: cómo solucionarlos

Error 29 en Total Commander y problemas de FTP: cómo solucionarlos

Última verificación: 22 de septiembre de 2026
11 min de lectura
Tutorial

El mensaje Error al ejecutar el programa (código de error 29) en Total Commander aparece cuando el cliente intenta abrir una conexión de datos en modo activo (comando PORT) y un router con traducción de direcciones NAT o un firewall bloquea el paquete entrante del servidor. Aunque los administradores llevan décadas encontrándose con este error, su causa técnica es muy concreta y está ligada directamente a la arquitectura del protocolo FTP.

A continuación repasamos el origen del error 29, la solución rápida en Total Commander, la configuración del firewall y la migración que conviene no aplazar: al protocolo seguro SFTP con claves SSH.


#Por qué Total Commander muestra el error 29: modo activo (PORT) frente a pasivo (PASV)

El protocolo FTP clásico (RFC 959) utiliza dos canales de comunicación independientes:

  1. Canal de control (control connection): normalmente en el puerto 21 del servidor, sirve para enviar comandos (USER, PASS, LIST, RETR, STOR) y recibir códigos de respuesta.
  2. Canal de datos (data connection): una conexión TCP aparte por la que viajan los listados de directorios y el propio contenido de los archivos.

La diferencia entre el modo activo y el pasivo determina qué lado inicia la conexión del canal de datos:

MODO ACTIVO (PORT) - Propenso al error 29:
Cliente:21  ---> Servidor:21    [Canal de comandos]
Cliente     <--- Servidor:20    [Canal de datos: el servidor se conecta al puerto del cliente]
                                 ^ ¡El router NAT / firewall bloquea el paquete entrante!

MODO PASIVO (PASV) - La solución correcta:
Cliente:21  ---> Servidor:21    [Canal de comandos]
Cliente     ---> Servidor:50234 [Canal de datos: el cliente se conecta al puerto del servidor]
                                 ^ ¡El tráfico saliente a través del NAT está permitido!

#Cómo se produce el error 29

Cuando el modo pasivo está desactivado en Total Commander, el programa funciona en modo activo. Tras la autenticación, el cliente envía al servidor el comando PORT h1,h2,h3,h4,p1,p2 con su dirección IP local y un puerto aleatorio en el que espera los datos del servidor.

En las redes domésticas y de oficina actuales, el equipo está detrás de un router NAT. El cliente comunica al servidor su dirección IP privada (por ejemplo 192.168.1.50), a la que un servidor en internet no puede acceder directamente. Aunque el router admita FTP ALG (Application Layer Gateway) y sustituya la dirección por la pública, el firewall local de Windows o el filtro con estado del router rechazará la conexión entrante no solicitada desde el puerto 20 del servidor. Cuando se agota el tiempo de espera (timeout), Total Commander devuelve el error 29 (Winsock connection failed o ausencia de respuesta en el socket de datos).


#Cómo solucionar el error 29 en Total Commander paso a paso

En el 95% de los casos, la solución consiste en forzar el modo pasivo en el perfil de conexión afectado.

#Paso 1: Activar el modo pasivo (PASV)

  1. Abra Total Commander y pulse Ctrl+F (o elija Net -> FTP Connect en el menú principal).
  2. En la lista de conexiones definidas, seleccione el servidor que da problemas y haga clic en Edit.
  3. En la ventana de configuración, busque la casilla Use passive mode for transfers (like a WWW browser).
  4. Marque esta opción.
  5. Haga clic en OK y vuelva a conectarse al servidor.

En modo pasivo, el cliente envía al servidor el comando PASV. En respuesta, el servidor abre un puerto aleatorio de su rango definido de puertos pasivos y devuelve su número. Después, es el propio Total Commander quien abre una conexión saliente hacia ese puerto. Como los routers y los firewalls con estado dejan pasar el tráfico saliente por defecto, la transferencia de datos se completa sin obstáculos.

#Paso 2: Revisar el Firewall de Windows Defender

Si el error persiste incluso con el modo pasivo activado, es posible que el firewall del sistema esté bloqueando el propio proceso de Total Commander:

  1. Abra Panel de control -> Sistema y seguridad -> Firewall de Windows Defender.
  2. Elija Permitir una aplicación o una característica a través de Firewall de Windows Defender.
  3. Compruebe si TOTALCMD.EXE (o TOTALCMD64.EXE) aparece en la lista.
  4. Asegúrese de que están marcadas las casillas de redes Privadas y Públicas.
  5. Si el programa no está en la lista, haga clic en Permitir otra aplicación e indique la ruta de instalación de Total Commander (por defecto C:\totalcmd\totalcmd64.exe).

#Paso 3: Configuración del servidor (para administradores de VPS y servidores dedicados)

Si gestiona su propio servidor FTP (por ejemplo vsftpd o ProFTPD en Linux) y ningún cliente puede conectarse en modo PASV, el problema está en la configuración del rango de puertos pasivos del servidor.

En el archivo /etc/vsftpd.conf, compruebe que están definidos el rango de puertos y la dirección IP externa:

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

A continuación, abra ese rango en el firewall del servidor (por ejemplo UFW):

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

#Por qué el FTP clásico es un riesgo de seguridad crítico

Corregir el error 29 le devuelve la conexión, pero seguir usando FTP supone amenazas serias para la integridad de sus sitios web.

RIESGOS DEL PROTOCOLO FTP SIN CIFRAR:
+-------------------------------------------------------------------+
| 1. Credenciales enviadas en texto plano (puerto 21)              |
|    - Usuario y contraseña visibles para cada nodo intermedio      |
+-------------------------------------------------------------------+
| 2. Archivo wcx_ftp.ini expuesto a infostealers                   |
|    - Cifrado local débil en Total Commander                      |
+-------------------------------------------------------------------+
| 3. Transferencias de archivos no atómicas                        |
|    - Una sesión cortada rompe archivos PHP y causa White Screen   |
+-------------------------------------------------------------------+
| 4. Sin sumas de verificación ni control de integridad             |
|    - Riesgo de corrupción silenciosa de archivos binarios        |
+-------------------------------------------------------------------+

#1. Contraseñas enviadas en texto plano

El protocolo FTP no cifra ni el canal de control ni el canal de datos. Cualquier paquete que pase por la red local, por el proveedor de internet o por nodos de tránsito puede capturarse con un simple sniffer de red (por ejemplo Wireshark). Su contraseña de acceso al servidor de producción viaja como texto legible.

#2. Robo de credenciales del archivo wcx_ftp.ini

Total Commander guarda la configuración de las sesiones FTP en el archivo wcx_ftp.ini. Las contraseñas almacenadas en ese archivo están protegidas con un algoritmo de ofuscación sencillo que se rompió hace muchos años. El malware de tipo infostealer (por ejemplo RedLine, Vidar, Lumma) busca automáticamente wcx_ftp.ini en el disco y roba al instante las contraseñas de acceso a los servidores.

#3. Riesgo de caída y error 500 (White Screen of Death)

Cuando sube al servidor un archivo actualizado de un tema o plugin (functions.php, class-core.php), la transferencia FTP sobrescribe el archivo bloque a bloque. Si la conexión se corta a mitad de la transferencia, en el servidor queda código PHP incompleto y dañado, lo que deja inmediatamente fuera de servicio todo el sitio con un error crítico 500.


#Cómo usar el plugin SFTP en Total Commander

Si la interfaz de dos paneles de Total Commander es su herramienta principal de trabajo, no tiene por qué renunciar a ella. Basta con sustituir el FTP inseguro por el protocolo totalmente cifrado SFTP (SSH File Transfer Protocol).

#Cómo instalar y configurar el plugin SFTP

  1. Descargue el SFTP plugin for Total Commander oficial desde ghisler.com (autor: Christian Ghisler).
  2. Abra el archivo .zip descargado directamente en Total Commander. El programa reconocerá el plugin y preguntará si desea instalarlo. Elija Sí.
  3. Entre en Entorno de red (botón de selección de unidades: \).
  4. Abra la carpeta Secure FTP.
  5. Pulse F7 para crear una nueva conexión.
  6. Introduzca el nombre de la conexión, el nombre del host (dirección IP o dominio), el puerto (22 por defecto) y el nombre de usuario.

#Cómo configurar la autenticación con clave SSH

En lugar de escribir una contraseña, configure la autenticación con una clave criptográfica:

  1. En los ajustes de la conexión, indique el archivo de la clave privada en formato .ppk (PuTTY) u OpenSSH (por ejemplo id_ed25519).
  2. Si utiliza Pageant (parte del paquete PuTTY), el plugin SFTP puede tomar automáticamente las claves cargadas en la caché del agente SSH.
  3. Una conexión SFTP es 100% resistente a las escuchas en la red y elimina el riesgo de robo de la contraseña en tránsito.

#Cómo se comparan los protocolos de transferencia FTP y SFTP

La siguiente tabla recoge los parámetros técnicos y el nivel de seguridad de cada método para enviar archivos al servidor:

ParámetroFTP (Activo)FTP (Pasivo)FTPS (FTP over TLS)SFTP (SSH)Git + CI/CD
Puerto por defecto21 + 2021 + rango PASV21 + rango PASV22443 / 22
Cifrado de credencialesNinguno (texto plano)Ninguno (texto plano)Sí (TLS 1.2/1.3)Sí (SSHv2)Sí (HTTPS/SSH)
Cifrado de datosNingunoNingunoSíSíSí
Compatibilidad con NAT / firewallMuy baja (Error 29)AltaMedia (requiere TLS reuse)Muy altaLa más alta
Exposición al error 29Muy altaEliminadaEliminadaEliminadaNo aplica
Despliegue atómicoNoNoNoOpcional (symlinks)Completo (Zero-Downtime)
Recomendado para producciónNo (obsoleto)No (obsoleto)Permitido temporalmenteSí (para administración)Estándar de ingeniería

#Cómo pasar de FTP a despliegues CI/CD

En los entornos de producción modernos, la subida manual de archivos con un gestor de archivos se sustituye por un proceso de despliegue automatizado.

#Cómo funciona un despliegue atómico sin tiempo de inactividad

En lugar de modificar archivos directamente en el directorio public_html, el despliegue atómico prepara la nueva versión en un directorio de versiones aparte y después cambia el enlace simbólico en un instante:

/var/www/misitio/
|-- current -> /var/www/misitio/releases/2026-09-21-1200/   [Enlace simbólico]
|-- releases/
|   |-- 2026-09-20-0930/  [Versión anterior]
|   `-- 2026-09-21-1200/  [Versión nueva, completamente construida]
`-- shared/
    |-- wp-config.php     [Configuración compartida]
    `-- wp-content/uploads/ [Medios compartidos]

Ventajas de esta solución:

  • Sin tiempo de inactividad: cambiar el enlace simbólico con ln -nfs tarda unos milisegundos.
  • Seguridad: si falla la instalación de dependencias de Composer o la compilación de los assets, el symlink no se cambia y el sitio sigue funcionando con normalidad en la versión anterior.
  • Rollback inmediato: volver a la versión anterior tras detectar un error solo requiere un comando que apunte el symlink hacia atrás.

Automatizar los despliegues con Git elimina la necesidad de abrir puertos FTP, protege el código fuente frente a sobrescrituras accidentales y ofrece el historial completo de cada cambio realizado.


#Qué preguntas sobre el error 29 de FTP aparecen con más frecuencia

#¿Qué es exactamente el error 29 en Total Commander?

El error 29 indica que no se pudo abrir el socket de datos en modo activo (comando PORT). Se produce cuando el servidor FTP intenta establecer una conexión de vuelta con el equipo del usuario, pero un router NAT o un firewall bloquea ese paquete entrante.

#¿Activar el modo pasivo ralentiza la transferencia de archivos?

No. El modo pasivo solo cambia el lado que inicia la conexión TCP del canal de datos (la inicia el cliente, no el servidor). Una vez establecida la sesión, la velocidad de transferencia es idéntica a la del modo activo.

#¿Por qué Total Commander no se conecta por SFTP cuando escribo el puerto 22 en la ventana de FTP?

El módulo FTP integrado en Total Commander solo admite FTP y FTPS (FTP over TLS). SFTP es un protocolo completamente distinto basado en el subsistema SSH. Para conectarse por el puerto 22 hay que instalar el plugin SFTP adicional desde el sitio web del fabricante.

#¿Dónde guarda Total Commander las contraseñas de las conexiones FTP?

Por defecto, Total Commander guarda las definiciones de las conexiones y las contraseñas codificadas en el archivo wcx_ftp.ini, ubicado en el directorio %APPDATA%\GHISLER\ o en la carpeta de instalación del programa. Estas contraseñas no tienen un cifrado fuerte y el malware puede leerlas con facilidad.

#¿Es mejor usar FileZilla en lugar de Total Commander?

FileZilla usa el modo pasivo por defecto y admite SFTP de forma nativa, sin necesidad de plugins. Aun así, si prefiere la interfaz de dos paneles de Total Commander, basta con instalar el plugin SFTP y usar claves SSH.


Resolver los problemas de transferencia de archivos y abandonar el obsoleto protocolo FTP en favor de procedimientos de despliegue seguros es una tarea básica para mantener una infraestructura estable. Si tiene previsto ordenar su entorno de servidores o implantar un pipeline CI/CD seguro, consulte nuestra oferta de desarrollador WordPress.

Siguiente paso

Transforma el artículo en una implementación real

Este bloque refuerza el enlazado interno y lleva al lector al siguiente paso más útil dentro de la arquitectura del sitio.

¿Quieres implementar esto en tu sitio?

Si quieres transformar el artículo en mejoras concretas, rediseño o un plan de implementación, puedo cerrar el alcance y ejecutar.

Cluster relacionado

Explora otros servicios WordPress y base de conocimiento

Refuerza tu negocio con soporte técnico profesional en áreas clave del ecosistema WordPress.

Artículos Relacionados