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
- Download FileZilla Server from
filezilla-project.org - Run the installer — keep defaults (install as service, port 21)
- Open the admin interface — create a user + set a home directory
- Open ports 21 + passive range in Windows Firewall
- 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
- Go to Server → Configure
- In the left panel, click Users
- Click Add at the bottom
- Enter a username (e.g.
ftpuser) - Set a password — make it strong, FTP credentials travel in plaintext unless you set up FTPS later
- Under Mount points, add a virtual path:
- Virtual path:
/ - Native path:
D:\\FTPRoot(or wherever you want files to land)
- Virtual path:
- 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.
- In the admin GUI go to Server → Configure → Passive mode
- Check Use custom port range
- Set a range, e.g.
50000-50100 - 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:
- In the admin GUI go to Server → Configure → FTP over TLS
- Check Enable FTP over TLS
- Generate a new certificate or import an existing one
- 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 SERVICEby default. Make sure that account has read/write on your FTP root folder. Easiest fix: grantUsersgroup 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
- Windows Server Initial Setup Checklist — fresh server? Do these 14 steps before installing anything.
- Create a Windows User via CMD — create local accounts and manage groups from the command line.
- Enable RDP on Windows Server — remote desktop access in three commands.
That's it. Download, install, create a user, open the firewall, done. Five minutes if you type fast.