How do I install an FTP server on Windows?

The easiest way to run an FTP server on Windows Server is FileZilla Server. You install it, create a user with a password, assign the folder the user may access and open port 21 plus a passive port range in the Windows Firewall. This guide shows each step.

Step 1: Download and install FileZilla Server

  1. Download the latest version of FileZilla Server from the FileZilla website.
  2. Run the installer and keep the default ports.

Step 2: Open the administration interface

Start the FileZilla Server administration interface and connect to the local server. If you kept the defaults during installation, the prefilled values work.

Step 3: Create a user and set a password

  1. Open the user management in the server configuration and add a new user, for example ftpuser.
  2. Enable password authentication for this user and enter a strong password.

Step 4: Assign folders and permissions

  1. Add a folder for the user and choose the directory on the server the user may access.
  2. Set the permissions, for example read only or read and write.
  3. Save the configuration.

Step 5: Open the ports in the Windows Firewall

FTP needs two kinds of ports:

  • TCP 21 for the FTP control connection
  • A passive port range, for example TCP 50000-51000, for the data transfer

Enter the same passive range in the passive mode settings of FileZilla Server, otherwise the server uses ports the firewall does not let through. Then create the inbound rules, either in the firewall console as described in Open a Port in Windows Firewall or with PowerShell as Administrator:

New-NetFirewallRule -DisplayName "FTP" -Direction Inbound -Protocol TCP -LocalPort 21,50000-51000 -Action Allow

Step 6: Test the connection

Connect with an FTP client such as FileZilla to the IP address of your server, for example 62.68.75.69, with the user and password from step 3. How the connection works in the client is shown in How can I connect to my server via FTP?

Common pitfalls

  • Login works, but the directory listing hangs: The passive ports are not open or do not match the range set in FileZilla Server.
  • Passwords in plain text: Plain FTP is not encrypted. Enable FTP over TLS in FileZilla Server and connect with “explicit FTP over TLS” in the client.
  • You need SFTP: FileZilla Server does not offer SFTP. Use the OpenSSH server that Windows Server provides as an optional feature instead.

More ports for other services are listed in What are the standard ports?

Leave a Reply

Your email address will not be published. Required fields are marked *