Securing FTP Transfers: Implementing Explicit FTPS in FileZilla
Stop sending passwords in plain text. Learn how to configure Explicit FTPS in FileZilla to secure your control and data channels while avoiding common firewall timeouts.
14 Sept 2025, 13:11 UTC

Standard FTP transmits your credentials and data in plain text. Anyone with access to the network path between your machine and the server can capture your password and files using a simple packet sniffer. The solution is FTPS (FTP over SSL/TLS), but choosing the wrong connection mode often leads to "Connection Timed Out" or "Failed to retrieve directory listing" errors.
The most flexible way to secure these transfers is Explicit FTPS. Unlike Implicit FTPS, which requires a dedicated port (usually 990), Explicit FTPS starts on the standard port 21 and "upgrades" the connection to a secure one using a specific command. This allows a single server port to handle both secure and non-secure clients if configured to do so.
Explicit vs. Implicit TLS
Understanding the distinction is critical for troubleshooting connection failures. In Implicit FTPS, the client assumes the server is expecting a TLS handshake immediately upon connection. If the server isn't configured for this, the connection drops instantly.
In Explicit FTPS, the client connects normally and then sends an AUTH TLS command. The server responds indicating whether it supports encryption. Only after this handshake is the session encrypted. This "explicit" request for security is why the mode is named as such.
Configuring Explicit FTPS in FileZilla
To move away from plain FTP, avoid using the "Quickconnect" bar, as it defaults to insecure settings. Instead, use the Site Manager to lock in your security requirements.
- Open the Site Manager (File > Site Manager).
- Create a New Site and enter the Host and Port (typically 21).
- In the Encryption dropdown, select
Require explicit FTP over TLS. - Set the Logon Type to
Normaland provide your credentials.
By selecting "Require," FileZilla will refuse to connect if the server cannot provide a secure tunnel, preventing an accidental fallback to plain text.
Practical Verification: Is it actually encrypted?
A successful connection doesn't always guarantee that the data channel (where your files actually travel) is encrypted. You must verify the session logs.
Log Analysis
Check the message log at the top of the FileZilla interface. Look for these specific status indicators:
Status: Connection established, waiting for welcome message...
Status: TLS connection established
Status: Login successful
The Data Channel Test
The control channel (commands) and data channel (files) are separate. To verify the data channel is secure, attempt to list a directory or upload a small file. If the server requires encryption but the data channel fails to negotiate TLS, FileZilla will abort the transfer with a security error rather than sending the file in the clear.
The Firewall and NAT Hurdle
One significant limitation of FTPS is how it interacts with firewalls. Standard FTP uses a process called "inspection" where a firewall looks at the PORT or PASV commands to open temporary ports for data transfer. Because FTPS encrypts these commands, the firewall cannot see them, often resulting in a hang during the "Retrieving directory listing" phase.
The Fix: Ensure you are using Passive Mode. In the Site Manager, go to the Transfer Settings tab and select Passive. This tells the server to provide the port, which is more likely to traverse modern NAT (Network Address Translation) setups.
| Feature | Plain FTP | Explicit FTPS | Implicit FTPS |
|---|---|---|---|
| Default Port | 21 | 21 | 990 |
| Handshake | None | AUTH TLS command |
Immediate TLS |
| Security | None (Plaintext) | Encrypted | Encrypted |
Handling Certificate Warnings
When first connecting, FileZilla may display a "Unknown Certificate" warning. This happens if the server uses a self-signed certificate or one issued by an internal CA (Certificate Authority) not present in your OS trust store. If you trust the server administrator, you can check "Always trust this certificate in future sessions" to bypass the prompt. However, in a production environment, you should verify the certificate fingerprint with the provider to avoid man-in-the-middle attacks.
0 replies
A thoughtful contribution can make all the difference. Be the first to share one.