FileZilla Server is a free and open-source, cross-platform FTP application, consisting of FileZilla Client and FileZilla server that supports FTP and FTP over TLS which provides secure encrypted connections to the server. It supports TLS, the same level of encryption supported by your web browser, to protect your data. FileZilla Clients are available for Windows, Linux, and macOS, but the servers are available only in Windows. Both server and client support FTP and FTPS, while the clients can also connect to SFTP servers. To reiterate further, FTP is a TCP-based service exclusively and there isn’t a UDP component to FTP. FTP is a service that utilizes two ports, a “data port” and a “command” port (also known as the control port). These are port 21 for the command port and port 20 for the data port. You may also want to see how to access FTP Server from your browser: How to create a shortcut and access Filezilla from Windows Explorer.
Before proceed with the steps on how to install and connect to an FTP Server, I will like to briefly describe the difference between active and passive FTP as this is a prevalent question when dealing with Firewall configuration to support the deployment. You may also want to see this guide: Warning: FTP over TLS is not enabled, users cannot securely log in: You appear to be behind a NAT Router, please configure the passive mode settings and forward a range of ports in your router.
Active FTP: This was originally the only method of FTP and is therefore often the default mode for FTP. In this mode, the FTP client connects from a random port (n-1023) to the FTP server’s command port (21). That is, when a client and server intend to transfer data, they usually start a control connection first in order to negotiate the details of the Data Connection prior to opening it and transferring data. In an active mode connection, when the client makes the initial connection and sends PORT, the server will then connect back to the client’s specified data port from its local data port, which is port 20.
In an Active Mode FTP, the client issues a PORT command to the server signaling that it will “actively” provide an IP and port number to open the Data Connection back to the client.
Passive FTP: This is also referred to as passive mode or PASV and it was developed to resolve the issue of servers initiating the connection to the client. Here, the client connects and sends the PASV command, which functions as a request for a port number to connect to. Once the FTP client receives a port, it starts the second connection and sends data. In passive mode FTP, the client initiates both connections to the server, solving the problem of firewalls filtering the incoming data port connection to the client from the server.
In the Passive Mode, the client issues a PASV command to indicate that it will wait “passively” for the server to supply an IP and port number, after which the client will create a Data Connection to the server. If the client fails to issue a PASV command, the Data Connection defaults to port 20. However, FTP clients shouldn’t rely on the default values, as this is unsecure. The administrator in charge of the firewall should always require PASV connections.
Step 1 – Install FileZilla Server: To install the FileZilla Server, you will need to download the FileZilla Server installer from the Filezilla site as shown below and click on Download FileZilla Server.
Double click on the installer to run it as shown below, and when prompted with the User Account Control, click on “Yes” to continue. To learn more about User Account Control, please see this guide “How to turn UAC on or off in Windows“.
Accept the License Agreement by clicking on “I Agree” as shown below.
In the “Choose Components” window, I am okay with the default settings. I will click on Next to continue.
Next, please select the file path you wish to install it to and click next. I am fine with the default folder selected. I will click on Next to continue.
In the next window, select to start Filezilla Server after the setup completes. I am okay with the default setting. I will click on Next to complete.
In the startup settings, I go with the default settings as shown below. Click on Install as shown below.
As you can see, the setup is complete. Click on close to close the setup wizard. You can also see the FileZilla Server icon that was created upon completing the setup.
Step 2 -Configure the Filezilla Server: The following settings need to be configured to ensure a smooth working FTP server. Click on the Edit menu and select Settings. This will open the FileZilla options as shown below. Set the FTP connection port, this is the default port “21” anyways.
– Navigate to the Passive mode settings and check to use the custom port range.
If you do not want to allow incoming connections on all ports or if your FTP server is behind a NAT router, you need to configure FileZilla Server to use a specific range of ports for passive-mode connections say from 1000-2300 etc. These ports must then be opened on the firewall. If you have a NAT router, you need to forward these ports to the local machine where FileZilla Server is installed.
– In the options related to the administration panel, you can set some important configurations, including the connection port, a password, and a possible restriction only to certain IP addresses as you wish.
Enable logging as shown below.
If you have got a certificate and wish to enable FTP over TLs (FTPs), kindly click on the FTP over TLS settings and enable it and populate the following details. You will need to purchase a certificate for this.
Create some users: In this step, we will be creating some user accounts for the connection and the folder where the files will be saved on the server. To do this, open the user management as shown below.
This will open the window below, click on Add.
This will open the “Add user account” as shown below. At the moment, we do not have a group, so we will ignore that step.
Next, click on the item “Shared folders” in order to set in the folder that the FTP server will save the files sent by this user to.
Ensure this folder is pre-created. This will be the home directory of the user (Tester).
The selected folder will be the home directory of the user. In the image below you can see how it is therefore necessary to set all the permissions, to allow the user to manage in the most complete way the files in his space. You should not assign all permissions to the user, this should be defined and assigned according to the user’s need.
Step 3 – Configure the Firewall: You will need to open the FTP port on the Windows firewall (or on other firewalls if necessary). Here we have chosen the default port, 21, but it can obviously be any other port.
If you are working in a cloud environment, you will need to configure additional rules to permit connection.
To connect to your FTP Server, you can use any FTP client like Filezilla, WinSCP, Cyberduck, etc.
Step 4 -Connect to a Filezilla Server from Windows: If you do not want to allow connections to your FTP server from the Internet, and therefore for use in the local network only, you can ignore these passive mode settings. To download the FileZilla client, you will need to download the FileZilla client installer from the Filezilla site.
Upon download, click on the installer to run it. Click on I Agree as shown below
In the Choose Installation Option, click to allow all users if you aren’t the only one using the device and click on Next to proceed.
Follow through the installation steps and on the “Choose Start Menu Folder” as shown below, click on Install.
As you can see, the FileZilla Client is installed and will automatically be started.
You can already connect to the FTP server, using the “IP Address” of the FileZilla server or as a “localhost” if you are on the FileZilla server as shown in the example below.
Launch the FileZilla client and connect as shown below. You should now be able to connect to your FTP server from a different device or on the same host as shown below. Kindly login with the username and passwords you have set. If you have configured FTP over TLS, you should be able to connect to the FTP server with FTPS to utilize encryption.
- When prompted with the following notification below, click on Ok as we are already aware of this issue.
As you can see below, we have successfully connected to the FileZilla server via the FileZilla client.
Note: You can also connect to your FTP server via the Command Prompt as shown below. All you need to do is type “
ftp <filezilla server IP>” and click on enter.
In the future, you may want to stop the FileZilla service via the “
services.msc” or “
commandline“. To do this via the CMD, use the following commands below.
sc start "FileZilla Server" sc stop "FileZilla Server"
I hope you found this blog post helpful. If you have any questions, please let me know in the comment session.