> For the complete documentation index, see [llms.txt](https://docs.exavault.com/llms.txt). Markdown versions of documentation pages are available by appending `.md` to page URLs; this page is available as [Markdown](https://docs.exavault.com/connection-methods/ftp-and-ftps.md).

# FTP and FTPS

FTP is popular for business-to-business integrations, especially with legacy applications and hardware. ExaVault supports plain FTP and FTP secured with TLS, commonly called FTPS.

FTP and SFTP are different protocols. SFTP uses SSH and port `22`; it does not use the FTP ports or an SSL certificate. When the client supports it, use [SFTP](/connection-methods/sftp.md) or FTPS instead of unencrypted FTP.

## FTP and FTPS Terminology

The connection names shown by FTP clients are not consistent. Use the port and when TLS begins to identify the correct profile.

| Connection profile | Client labels may include                         | Port  | Encryption behavior                                                                                 |
| ------------------ | ------------------------------------------------- | ----- | --------------------------------------------------------------------------------------------------- |
| Explicit FTPS      | FTPeS, FTP with explicit TLS, FTP with `AUTH TLS` | `21`  | The connection starts as FTP, then the client requests TLS before authentication and file transfer. |
| Implicit FTPS      | FTPS, FTP with implicit TLS                       | `990` | TLS begins immediately when the connection opens.                                                   |
| Plain FTP          | FTP, unencrypted FTP                              | `21`  | Credentials, commands, directory listings, and file contents are not encrypted.                     |

Both FTPS modes protect the command channel and file-transfer data channel with TLS. They present whichever SSL certificate is active on the appliance. ExaVault recommends implicit FTPS on port `990`; use explicit FTPS when the client or integration requires it.

## Connection Information

The settings below cover the most common FTP connection issues. Double-check each of them.

### Hostname

Connect with either FTP or FTPS to the fully qualified domain name of your appliance. If your client requires an IP address, use the external IP address configured in the Appliance Manager.

### Port

For FTPS, use implicit mode in the client and port `990`.

ExaVault also supports explicit FTPS on port `21`. Select explicit TLS in the client so it negotiates encryption before authentication. Unencrypted FTP also uses port `21`, but should be limited to legacy clients that cannot use a secure protocol.

Do not select SFTP while using either FTP port. SFTP uses port `22` and is configured separately.

### Transfer Mode

Use Binary transfer mode. ExaVault accepts the FTP `TYPE A` command for client compatibility, but it transfers every file byte-for-byte and does not convert line endings. Systems that require server-side ASCII conversion are not compatible.

### Active or Passive Mode

Use Passive mode. In Passive mode, the client opens both the command and data connections, which works better through firewalls and network address translation. Active mode requires the appliance to open a data connection back to the client and should be limited to networks where that inbound connection is expected.

See [Troubleshooting FTP](/connection-methods/ftp-and-ftps/troubleshooting-ftp.md#how-active-and-passive-ftp-work) for the connection flow and passive port requirements.

## Suggested Client Settings

The settings below give the best file transfer performance and mitigate transient errors without manual intervention:

* **Timeout:** 300 seconds
* **Retries:** 5
* **Delay between retries:** 90 seconds

Retries help a client recover from a transient connection failure without manual intervention.

Most FTP clients expose these settings, and command-line automations can implement the same retry and delay behavior. In FileZilla, open *FileZilla > Settings > Connection*.

<figure><img src="https://files.helpdocs.io/5csijzyv3k/articles/g6wae1e2do/1671739093989/file-zilla-timeout-settings.png" alt="FTP Client Timeout Settings in FileZilla"><figcaption></figcaption></figure>

* **Active or passive mode:** Passive

Passive mode works more reliably through firewalls and network address translation because the client opens both connections.

<figure><img src="https://files.helpdocs.io/5csijzyv3k/articles/g6wae1e2do/1671740426887/filezilla-passive.png" alt="FTP Client Passive Mode Settings in FileZilla"><figcaption></figcaption></figure>

* **Keepalives:** Leave disabled unless the client aborts transfers when the control connection is idle.
* **Simultaneous transfers:** Up to 10

Each user is permitted to upload and/or download up to 10 files at the same time. It is also the maximum supported by FileZilla. Transfers beyond 10 are placed into a first-in, first-out queue on the client side.

<figure><img src="https://files.helpdocs.io/5csijzyv3k/articles/g6wae1e2do/1671744667232/filezilla-concurrent-transfers.png" alt="FTP Client Concurrent Transfers Setting in FileZilla"><figcaption></figcaption></figure>

If you are experiencing intermittent transfer errors, reducing this value may help.

* **Transfer mode:** Binary

<figure><img src="https://files.helpdocs.io/5csijzyv3k/articles/g6wae1e2do/1671744834268/filezilla-ftp-binary-mode.png" alt="FTP Binary Mode Setting in FileZilla"><figcaption></figcaption></figure>

Regardless of file extension or MIME type, ExaVault stores uploaded files byte for byte. Compare a checksum calculated with the same algorithm on both sides when you need to verify a transfer.

Systems that depend on ASCII mode support are not compatible.

* **Logging:** Enabled with timestamps

Timestamped client logs are useful when troubleshooting or [contacting ExaVault Support](https://www.exavault.com/contact).

<figure><img src="https://files.helpdocs.io/5csijzyv3k/articles/g6wae1e2do/1671745514204/filezilla-log-settings.png" alt="FTP Client Log Settings in FileZilla"><figcaption></figcaption></figure>
