FileZilla can connect to a server using FTP or SFTP, but it’s not just a simple file copier; it’s an intermediary that negotiates secure or insecure channels, manages state, and handles retries, all while presenting a familiar dual-pane interface.

Let’s say you want to upload a website.zip file to your web server.

First, you need the server’s details:

  • Host: ftp.example.com
  • Username: myuser
  • Password: mypassword123
  • Port: 21 for FTP, 22 for SFTP

Open FileZilla. In the Quickconnect bar at the top, enter these details.

For FTP:

Host: ftp.example.com
Username: myuser
Password: mypassword123
Port: 21

Click "Quickconnect".

For SFTP (SSH File Transfer Protocol):

Host: ftp.example.com
Username: myuser
Password: mypassword123
Port: 22

Click "Quickconnect".

If this is your first time connecting to this server via SFTP, FileZilla will show a "Unknown host key" dialog. This is a crucial security step. The dialog displays the server’s SSH key fingerprint. You should verify this fingerprint with your hosting provider. If it matches, click "OK" to accept and save the key. If it doesn’t match, do not connect, as it could indicate a man-in-the-middle attack.

Once connected, FileZilla’s main window will show your local files on the left and the remote server’s files on the right.

To upload website.zip:

  1. Navigate to the directory where you want to upload the file on the server (e.g., public_html/).
  2. Locate website.zip in your local file list.
  3. Drag website.zip from the local pane to the remote pane.

FileZilla will then initiate the transfer. You’ll see progress in the "Transfer queue" at the bottom.

The difference between FTP and SFTP is primarily security. FTP transmits data, including your username and password, in plain text. SFTP, however, uses SSH encryption, making it far more secure. This means your credentials and the files themselves are protected from eavesdropping.

Here’s a look at the internal communication for an SFTP PUT command:

Command: AUTH TLS
Response: 234 AUTH TLS successful

Command: USER myuser
Response: 331 Password required for myuser

Command: PASS mypassword123
Response: 230 User myuser logged in

Command: PWD
Response: 257 "/"

Command: CWD public_html
Response: 250 CWD command successful

Command: TYPE I
Response: 200 Type set to I

Command: PASV
Response: 227 Entering Passive Mode (192,168,1,100,12,34)

Command: STOR website.zip
Response: 150 Opening BINARY mode data connection for 'website.zip'
(File data stream transmitted over the established data connection)
Response: 226 Transfer complete

Notice how the USER and PASS commands are sent. With SFTP, these are encrypted by the underlying SSH tunnel, not sent as plain text as they would be with standard FTP. The PASV command initiates a passive data connection, where the server tells the client which port to connect to for the actual file transfer.

The key to efficient transfers isn’t just dragging and dropping; it’s understanding the server’s configuration and your own network. For instance, if you’re uploading many small files, the overhead of establishing each connection can be significant. FileZilla’s "Limit simultaneous transfers" setting (Edit > Settings > Transfers) can be adjusted. Setting it to 1 might be slower overall but can sometimes resolve connection stability issues on very flaky networks, while a higher number (e.g., 5 or 10) can speed things up on robust connections by doing multiple uploads concurrently.

Many people overlook the Passive vs. Active mode setting in FileZilla’s Site Manager (File > Site Manager > [Your Site] > Transfer Settings). For most users behind a typical home router or firewall, Passive mode is essential. In Passive mode, the client initiates the data connection to the server, which is usually allowed by firewalls. In Active mode, the server tries to initiate a data connection back to the client, which is often blocked. If you encounter "connection timed out" errors during file transfers (not during login), switching to Passive mode is the first thing to try.

FileZilla’s Site Manager is more than just a place to store connection details; it allows fine-grained control over protocol specifics. For SFTP, you can even specify a specific SSH private key file instead of using a password, which is a more secure authentication method.

The most critical detail most users miss about SFTP is that it’s not FTP over SSL/TLS (which is FTPS). SFTP runs over SSH, a completely different protocol. This means the port is typically 22 (SSH’s default) rather than 990 (FTPS’s default). Using the wrong port or expecting FTPS behavior when connecting via SFTP will lead to connection failures.

The next hurdle you’ll likely encounter is dealing with file permissions on the server after uploading.

Want structured learning?

Take the full Ftp course →