You need an FTP server on your Windows box and you want it done in ten minutes. FileZilla Server is free, lightweight, and just works. Here's the whole thing from download to first connection.

TL;DR

  1. Download FileZilla Server from filezilla-project.org
  2. Run the installer — keep defaults (install as service, port 21)
  3. Open the admin interface — create a user + set a home directory
  4. Open ports 21 + passive range in Windows Firewall
  5. Connect from any FTP client

Step 1 — Download FileZilla Server

Go to https://filezilla-project.org/download.php?type=server and grab the latest .exe installer. At the time of writing that's version 1.9.x.

Don't download from random mirror sites. The official download is all you need.

Step 2 — Run the installer

Run the .exe as Administrator. The installer asks a few things:

  • Install as service: Yes. You want FTP to survive reboots.
  • Admin port: Leave at 14148 (local admin interface, not the FTP port).
  • Start server after setup: Yes.

Click through the rest. Default install path is C:\Program Files\FileZilla Server\.

Step 3 — Open the admin interface

After installation, the FileZilla Server admin GUI opens automatically. If it doesn't, launch it from the Start menu.

Connect to 127.0.0.1:14148. On first launch there's no admin password — it just connects. Set an admin password immediately under Server → Configure → Server listeners.

Step 4 — Create a user

  1. Go to Server → Configure
  2. In the left panel, click Users
  3. Click Add at the bottom
  4. Enter a username (e.g. ftpuser)
  5. Set a password — make it strong, FTP credentials travel in plaintext unless you set up FTPS later
  6. Under Mount points, add a virtual path:
    • Virtual path: /
    • Native path: D:\\FTPRoot (or wherever you want files to land)
  7. Set permissions: Read + Write if the user should upload, Read-only for download-only

Make sure the native path directory actually exists. Create it first if it doesn't:

mkdir D:\FTPRoot

Step 5 — Configure passive mode

FTP needs a passive port range for data connections. Without this, clients behind NAT won't be able to list directories or transfer files.

  1. In the admin GUI go to Server → Configure → Passive mode
  2. Check Use custom port range
  3. Set a range, e.g. 50000-50100
  4. If your server is behind NAT, set the External IP to your public IP

Step 6 — Open the Windows Firewall

FTP needs port 21 (control) plus your passive range. Open PowerShell as Admin:

# FTP control port
New-NetFirewallRule -DisplayName "FTP-Control" -Direction Inbound -Protocol TCP -LocalPort 21 -Action Allow

# Passive port range
New-NetFirewallRule -DisplayName "FTP-Passive" -Direction Inbound -Protocol TCP -LocalPort 50000-50100 -Action Allow

If your server is hosted (cloud VM, dedicated box), check the provider's firewall too — the Windows firewall alone isn't enough if there's a network firewall in front.

Step 7 — Test the connection

From your workstation, open any FTP client (FileZilla Client, WinSCP, or just command line):

ftp your-server-ip

Log in with the user you created. Upload a test file. If it lands in your D:\FTPRoot, you're done.

Optional — Enable FTPS (FTP over TLS)

Plain FTP sends credentials and data unencrypted. If your server is internet-facing, enable FTPS:

  1. In the admin GUI go to Server → Configure → FTP over TLS
  2. Check Enable FTP over TLS
  3. Generate a new certificate or import an existing one
  4. Optionally check Disallow plain unencrypted FTP to force encryption

Your FTP client needs to connect using Explicit FTP over TLS (port 21, not implicit 990).

Optional — Manage the service from the command line

FileZilla Server installs as a Windows service, so you can manage it with PowerShell:

# Check status
Get-Service "FileZilla Server"

# Restart
Restart-Service "FileZilla Server"

# Stop
Stop-Service "FileZilla Server"

Gotchas

  • Passive mode is mandatory for most clients. If directory listings hang or time out, your passive ports aren't open or the external IP isn't set.
  • Antivirus can block FTP. Windows Defender sometimes flags FTP traffic. If connections drop randomly, check your AV logs.
  • NTFS permissions matter. The FileZilla Server service runs as LOCAL SERVICE by default. Make sure that account has read/write on your FTP root folder. Easiest fix: grant Users group full control on the FTP directory.
  • Don't expose plain FTP to the internet. Use FTPS or consider SFTP (different protocol, needs OpenSSH) if your data is sensitive.
  • FileZilla Server 1.x vs 0.x: Version 1.x is a complete rewrite with a new UI. Old tutorials showing the 0.9.x interface are outdated — the config screens look completely different now.

Related guides

That's it. Download, install, create a user, open the firewall, done. Five minutes if you type fast.