Total Commander error 29 and FTP problems: how to fix them

Total Commander error 29 and FTP problems: how to fix them

Last verified: September 22, 2026
10 min read
Tutorial

The message Error while executing program (error code 29) in Total Commander appears when the client tries to open a data connection in active mode (the PORT command) and a router with NAT address translation or a firewall blocks the incoming packet from the server. Administrators have run into this error for decades, yet its technical cause is very precise and tied directly to how the FTP protocol is built.

Below we cover where error 29 comes from, the quick fix in Total Commander, firewall configuration and the migration you should not skip: moving to the secure SFTP protocol with SSH keys.


#Why Total Commander reports error 29: active (PORT) vs passive (PASV) mode

The classic FTP protocol (RFC 959) uses two separate communication channels:

  1. Control channel (control connection): usually on server port 21, used to send commands (USER, PASS, LIST, RETR, STOR) and receive response codes.
  2. Data channel (data connection): a separate TCP connection that carries directory listings and the file contents themselves.

The difference between active and passive mode decides which side opens the connection for the data channel:

ACTIVE MODE (PORT) - Prone to error 29:
Client:21   ---> Server:21      [Command channel]
Client      <--- Server:20      [Data channel: Server connects to Client port]
                                 ^ NAT router / Firewall blocks the incoming packet!

PASSIVE MODE (PASV) - The correct solution:
Client:21   ---> Server:21      [Command channel]
Client      ---> Server:50234   [Data channel: Client connects to Server port]
                                 ^ Outgoing traffic through NAT is allowed!

#How error 29 happens

When passive mode is switched off in Total Commander, the program runs in active mode. After authentication the client sends the server the command PORT h1,h2,h3,h4,p1,p2, giving its local IP address and a random port on which it listens for data from the server.

In modern home and office networks the computer sits behind a NAT router. The client gives the server its private IP address (for example 192.168.1.50), which a server on the internet cannot reach directly. Even if the router supports FTP ALG (Application Layer Gateway) and rewrites the address to the public one, the local Windows firewall or the router’s stateful filter will reject the unsolicited incoming connection from server port 20. Once the timeout runs out, Total Commander returns error 29 (Winsock connection failed or no response on the data socket).


#How to fix error 29 in Total Commander step by step

In 95% of cases the fix is to force passive mode for the connection profile in question.

#Step 1: Enable passive mode (PASV)

  1. Start Total Commander and press Ctrl+F (or choose Net -> FTP Connect from the main menu).
  2. In the list of defined connections, select the server that is causing problems and click Edit.
  3. In the configuration window, find the checkbox Use passive mode for transfers (like a WWW browser).
  4. Tick this option.
  5. Click OK, then reconnect to the server.

In passive mode the client sends the server the PASV command. In response the server opens a random port from its defined pool of passive ports and sends back the port number. Total Commander then opens an outgoing connection to that port itself. Because routers and stateful firewalls let outgoing traffic through by default, the data transfer goes ahead without obstacles.

#Step 2: Check the Windows Defender firewall

If the error persists even with passive mode on, the system firewall may be blocking the Total Commander process itself:

  1. Open Control Panel -> System and Security -> Windows Defender Firewall.
  2. Choose Allow an app or feature through Windows Defender Firewall.
  3. Check whether TOTALCMD.EXE (or TOTALCMD64.EXE) is on the list.
  4. Make sure the boxes for Private and Public networks are ticked.
  5. If the program is not on the list, click Allow another app and point to the Total Commander install path (by default C:\totalcmd\totalcmd64.exe).

#Step 3: Server configuration (for VPS and dedicated server administrators)

If you run your own FTP server (for example vsftpd or ProFTPD on Linux) and no client can connect in PASV mode, the problem lies in the passive port pool configuration on the server.

In /etc/vsftpd.conf, make sure the port range and the external IP address are defined:

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

Then open that range in the server firewall (for example UFW):

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

#Why classic FTP is a critical security risk

Fixing error 29 gets your connection back, but staying on FTP poses serious threats to the integrity of your websites.

RISKS OF THE UNENCRYPTED FTP PROTOCOL:
+-------------------------------------------------------------------+
| 1. Credentials sent in plaintext (port 21)                       |
|    - Login and password visible to every intermediate node        |
+-------------------------------------------------------------------+
| 2. wcx_ftp.ini file exposed to infostealers                      |
|    - Weak local encryption in Total Commander                    |
+-------------------------------------------------------------------+
| 3. No atomic file transfers                                      |
|    - A dropped session breaks PHP files and causes White Screen   |
+-------------------------------------------------------------------+
| 4. No checksums or integrity verification                         |
|    - Risk of silent corruption of binary files                   |
+-------------------------------------------------------------------+

#1. Passwords sent as clear text

FTP encrypts neither the control channel nor the data channel. Every packet passing through the local network, your internet provider or transit nodes can be captured with a simple network sniffer (for example Wireshark). Your access password to the production server travels as plain text.

#2. Credential theft from wcx_ftp.ini

Total Commander stores FTP session configuration in the wcx_ftp.ini file. Passwords saved in that file are protected by a simple obfuscation algorithm that was broken many years ago. Infostealer malware (for example RedLine, Vidar, Lumma) automatically searches the disk for wcx_ftp.ini and immediately steals the saved server passwords.

#3. Risk of outages and error 500 (White Screen of Death)

When you upload an updated theme or plugin file (functions.php, class-core.php), an FTP transfer overwrites the file block by block. If the connection drops halfway through, the server is left with incomplete, broken PHP code, which takes the whole site down at once with a fatal 500 error.


#How to use the SFTP plugin in Total Commander

If Total Commander’s two-panel interface is your main working tool, you do not have to give it up. Just replace insecure FTP with the fully encrypted SFTP (SSH File Transfer Protocol).

#How to install and configure the SFTP plugin

  1. Download the official SFTP plugin for Total Commander from ghisler.com (author: Christian Ghisler).
  2. Open the downloaded .zip archive directly in Total Commander. The program recognises the plugin and asks: Do you want to install this plugin? Choose Yes.
  3. Go to Network Neighborhood (the drive selection button: \).
  4. Open the Secure FTP folder.
  5. Press F7 to create a new connection.
  6. Enter the connection name, the host name (IP address or domain), the port (22 by default) and the user name.

#How to set up SSH key authentication

Instead of typing a password, set up authentication with a cryptographic key:

  1. In the connection settings, point to the private key file in .ppk (PuTTY) or OpenSSH format (for example id_ed25519).
  2. If you use Pageant (part of the PuTTY suite), the SFTP plugin can automatically pick up the keys loaded in the SSH agent’s cache.
  3. An SFTP connection is 100% resistant to network eavesdropping and removes the risk of password theft in transit.

#How FTP and SFTP file transfer protocols compare

The table below sets out the technical parameters and security level of each method of transferring files to a server:

ParameterFTP (Active)FTP (Passive)FTPS (FTP over TLS)SFTP (SSH)Git + CI/CD
Default port21 + 2021 + PASV pool21 + PASV pool22443 / 22
Credential encryptionNone (clear text)None (clear text)Yes (TLS 1.2/1.3)Yes (SSHv2)Yes (HTTPS/SSH)
Data encryptionNoneNoneYesYesYes
NAT / firewall compatibilityVery low (Error 29)HighMedium (requires TLS reuse)Very highHighest
Exposure to error 29Very highEliminatedEliminatedEliminatedNot applicable
Deployment atomicityNoneNoneNoneOptional (symlinks)Full (Zero-Downtime)
Recommended for productionNo (outdated)No (outdated)Allowed temporarilyYes (for management)Engineering standard

#How to move from FTP to CI/CD deployments

In modern production environments, manually uploading files through a file manager gives way to an automated deployment process.

#How atomic zero-downtime deployment works

Instead of changing files directly in the public_html directory, an atomic deployment prepares the new version in a separate releases directory and then switches the symbolic link in an instant:

/var/www/mysite/
|-- current -> /var/www/mysite/releases/2026-09-21-1200/   [Symbolic link]
|-- releases/
|   |-- 2026-09-20-0930/  [Previous release]
|   `-- 2026-09-21-1200/  [New, fully built release]
`-- shared/
    |-- wp-config.php     [Shared configuration]
    `-- wp-content/uploads/ [Shared media]

Benefits of this approach:

  • No downtime: switching the symbolic link with ln -nfs takes a few milliseconds.
  • Safety: if installing Composer dependencies or building assets fails, the symlink is not switched and the site keeps running normally on the previous release.
  • Instant rollback: going back to the previous version after spotting a bug takes a single command that points the symlink back.

Automating deployments with Git removes the need to open FTP ports, protects source code from accidental overwrites and gives you a full history of every change made.


#What are the most common questions about FTP error 29

#What exactly is error 29 in Total Commander?

Error 29 means the data socket could not be opened in active mode (the PORT command). It occurs when the FTP server tries to open a connection back to the user’s computer, but a NAT router or firewall blocks that incoming packet.

#Does enabling passive mode slow down file transfers?

No. Passive mode only changes which side opens the TCP connection for the data channel (the client opens it, not the server). Once the session is established, transfer speed is identical to active mode.

#Why won’t Total Commander connect over SFTP when I enter port 22 in the FTP window?

Total Commander’s built-in FTP module supports only FTP and FTPS (FTP over TLS). SFTP is an entirely different protocol built on the SSH subsystem. To connect over port 22, you need to install the additional SFTP plugin from the vendor’s website.

#Where does Total Commander store FTP connection passwords?

By default Total Commander keeps connection definitions and encoded passwords in the wcx_ftp.ini file, located in %APPDATA%\GHISLER\ or in the program’s install folder. These passwords are not strongly encrypted and malware can read them easily.

#Is FileZilla a better choice than Total Commander?

FileZilla forces passive mode by default and supports SFTP natively without any plugins. If you prefer Total Commander’s two-panel interface, though, installing the SFTP plugin and using SSH keys is enough.


Fixing file transfer problems and dropping the outdated FTP protocol in favour of secure deployment procedures is a basic part of keeping infrastructure stable. If you plan to tidy up your server environment or set up a secure CI/CD pipeline, see our WordPress developer services.

Next step

Turn the article into an actual implementation

This block strengthens internal linking and gives readers the most relevant next move instead of leaving them at a dead end.

Want this implemented on your site?

If you want to convert the article into a working site improvement, redesign, or build plan, I can define the scope and implement it.

Related cluster

Explore other WordPress services and knowledge base

Strengthen your business with professional technical support in key areas of the WordPress ecosystem.

Related Articles