Best FTP Software for Windows: Free and Paid Servers and Clients, Honestly Sorted
Search for the best FTP software and you get lists. Each has ten products, numbered, each "best for" something. Number one is usually made by whoever published the list. The other nine are described in the careful, even tone of someone reading a competitor's brochure aloud. I have read a great many of these. The numbering is the least useful thing on the page.
We sell file transfer software too, so here is how this page handles that. Nothing is numbered. Products are sorted by the job you need done, because "best" means nothing until you name the job. The free options are listed first, because for several jobs a free option is the right answer. Where our own products fit, we say so, and where they do not, we say that as well.
The page covers four things: the best free FTP programs for Windows, which are clients; the best FTP servers; the alternatives to FTP, for those who suspect FTP is the problem; and a short list of FTP commands worth keeping. It is part of our Best SFTP Server for Windows comparison.
Best for What? Four Different Jobs
"FTP software" covers four jobs that need four kinds of program. Find your row first. Most disappointing purchases in this area come from choosing a very good product from the wrong row.
| The job | Kind of software | A good free choice | When paying makes sense |
|---|---|---|---|
| Upload and download by hand | Graphical client | FileZilla client, WinSCP, Cyberduck | Rarely. The free clients are excellent |
| Transfer from a script | Command-line client | curl and sftp, both included in Windows; WinSCP scripting |
When the script grows retries, alerts, and a schedule |
| Run unattended transfers every night | Automation client | A script plus Task Scheduler | When a missed file costs money and somebody must be told |
| Let others send files to you | Server | OpenSSH server for SFTP; FileZilla Server or the Windows FTP service for FTPS | When partners want different protocols, or auditors want evidence |
The first two rows are clients: programs that connect out to somebody else's server. The last row is a server: a program that waits for others to connect to you. The third row is a client that behaves like a member of staff. The distinction is explained at more length in the Windows FTP server software guide.
The Best Free FTP Programs for Windows
When people ask for the best free FTP program, or the best free FTP manager, they almost always mean a client. "FTP manager" is an older name for the same thing: a program with your computer on one side, the server on the other, and a list of saved sites. Here the news is good. The best free FTP programs are as capable as anything sold.
FileZilla client. The best known free FTP application. It supports FTP, FTPS, and SFTP, runs on Windows, macOS, and Linux, and has the two-pane layout every later client copied. It is open source and actively maintained. Download it from the project's own site. It suits people who transfer files by hand and want something familiar.
WinSCP. A free, open-source client for Windows only. It supports SFTP, SCP, FTP, and FTPS, and it adds something the others lack: a scripting language and a command-line mode. The same tool an administrator uses by hand can therefore run from a batch file. If I could install only one free client on a Windows administrator's machine, it would be this one.
Cyberduck. A free, open-source client for Windows and macOS with a simpler single-pane design. It also connects to several cloud storage services, which makes it a good fit for people who move files between a server and a cloud bucket.
The tools already in Windows. Current Windows includes curl, which handles FTP and FTPS, and the OpenSSH sftp command. Neither has a window. Both are free, already installed, and ideal for scripts. The best FTP tool is sometimes the one you do not have to ask permission to install.
Whichever you choose, check three behaviors. The client must verify the server's certificate or host key and warn when it changes. It must store saved passwords protected, not in a readable file. And it must be able to require encryption, not merely prefer it. For an organization, the larger win is picking one client and standardizing on it. That decision is covered in choosing the standard client, and the hand-versus-script question in GUI vs CLI clients.
Bluewater Bank discovered why standardizing matters when a laptop was replaced. A weekly report had gone to a regulator every Thursday for four years. It was uploaded by hand from that laptop by one analyst, using whichever client she preferred. When the machine was swapped, the saved site went with it. Nobody else knew the host name, the account, or which program had held them. The team found five different FTP clients across eight desks, each with its own saved sites and its own opinion about where to keep them. The report went out a day late. The bank now has one client, one shared and protected site list, and a written note of what goes where on Thursdays.
For transfers that must run every night without a person, a hand-driven client is the wrong tool however good it is. That is the job of an automation client. Ours is Sysax FTP Automation, which runs scripted transfers on a schedule or when files appear in a folder, and has a free edition for personal use. The honest alternative is a script and Task Scheduler, which works until the day it silently does not. Your first scripted transfer, done right shows how to build that version properly, and automating FTP downloads, sync, and triggers on Windows has a working batch file.
The Best FTP Server for Windows
The best FTP server depends on which protocols the people connecting to you will insist on. Sort by that first.
Free servers
- OpenSSH server. Included with Windows as an optional feature. It is the best free SFTP server for Windows, and it provides SFTP and SCP only. It is configured in a text file and uses Windows accounts. See how to set up an SFTP server on Windows and OpenSSH Server for Windows as an SFTP server.
- The Windows FTP service. Also included with Windows. It provides FTP and FTPS, uses Windows accounts, and is managed from IIS Manager. It has no SFTP.
- FileZilla Server. Free, open source, and well maintained. It provides FTP and FTPS with its own user list and a clean administration interface. The free edition has no SFTP, which surprises people who know the client. The details are in FileZilla Server vs Sysax Multi Server.
- Small utility servers. The SolarWinds free SFTP/SCP server is the best-known example. It is a lightweight tool meant for a specific task: giving network engineers somewhere to push device configurations and firmware images. It is handy for that. It is not designed to be a multi-user server for outside partners.
Notice that no single free server offers both SFTP and FTPS. You can run two of them side by side, with two sets of accounts and two logs. Many small teams do exactly that, and it works until the partner list outgrows the patience of whoever maintains it.
Commercial servers
Commercial Windows servers divide into two groups. SSH-focused servers are built around SFTP and SCP, sometimes with FTPS added, and come with a proper administration panel and support. Multi-protocol servers offer SFTP, FTPS, FTP, and HTTPS web transfer from one service and one set of accounts, usually with Active Directory logins, a second factor, and audit logging. Sysax Multi Server, which we make, is in the second group.
Which is best depends on the same question as before. If SFTP is all anyone will ever ask of you, the free OpenSSH server or an inexpensive SSH-focused product is the sensible choice, and a multi-protocol server is more than you need. If partners arrive with different demands, one server that speaks everything costs less to run than two that each speak half. Our main comparison page names six products, including ours, with protocols, directory support, and licensing models side by side.
Remember: for hand transfers, the free clients are the best clients. For a server, choose by the protocols your partners require. For unattended nightly transfers, the question is not which client is best but who finds out when it fails.
Alternatives to FTP
Many searches for the best FTP software are really searches for a way out of FTP. That is reasonable. Plain FTP sends passwords and files unencrypted, and it fights with firewalls. The right alternative to FTP depends on which of its problems you are trying to escape.
| The problem with FTP | The alternative | What changes |
|---|---|---|
| Nothing is encrypted | FTPS or SFTP | FTPS keeps FTP and adds TLS. SFTP is a different protocol inside SSH |
| Firewalls and passive port ranges | SFTP or HTTPS | One port, one connection, one firewall rule |
| People cannot work an FTP client | An HTTPS upload page, or a file sharing service | A browser replaces the client |
| Too many scripts, nobody sure what ran | An automation client, or managed file transfer | Schedules, retries, alerts, and history in one place |
| Running a server at all | A hosted transfer service or cloud storage | Someone else operates it; you give up some control |
| Trading partners need signed receipts | AS2 | A protocol built for business documents with proof of delivery |
So the common FTP alternatives are SFTP, FTPS, and HTTPS, and for most organizations SFTP is the default replacement. The FTP server alternatives, meaning ways to stop running a server yourself, are hosted services and cloud storage. And SFTP alternatives exist for the cases where SFTP does not fit: FTPS where existing clients and certificates are already in place, and HTTPS where the users are people with browsers.
What is the best protocol for file transfer? For system-to-system transfers between organizations, SFTP: it is encrypted, it uses one port, and nearly every partner supports it. For people, HTTPS. For partners who are contractually tied to it, FTPS. Plain FTP is the best protocol only for a device that speaks nothing else, kept on a network where nothing else can hear it. The three are compared in depth in our SFTP vs FTPS vs FTP series. Moving away is covered in retiring plain FTP, and the managed option in MFT software and solutions explained.
A List of FTP Commands Worth Keeping
Whatever software you choose, a command-line FTP or SFTP session uses the same small vocabulary. These are the commands typed at the client's prompt.
| Command | What it does |
|---|---|
ls or dir |
List the files in the current folder on the server |
cd folder |
Change folder on the server |
lcd folder |
Change folder on your own computer |
pwd |
Show which folder you are in on the server |
get file |
Download one file |
put file |
Upload one file |
mget and mput |
Download or upload several files matching a pattern |
mkdir and rmdir |
Create or remove a folder on the server |
rename and delete (rm in SFTP) |
Rename or delete a file on the server |
binary |
FTP only: transfer files exactly as they are. Use it always |
bye or quit |
End the session |
In a script you usually skip the interactive prompt. These one-liners do the two most common jobs with the tools included in Windows:
REM FTP: get list of files in a folder (names only) curl --ssl-reqd --user alex --list-only ftp://ftp.example.com/reports/ REM FTP: download two named files in one command curl --ssl-reqd --user alex -O ftp://ftp.example.com/reports/prices.csv -O ftp://ftp.example.com/reports/stock.csv REM SFTP: run a prepared list of commands from a file (uses key login) sftp -b commands.txt alex@sftp.example.com REM commands.txt contains, one per line: REM cd reports REM get prices.csv REM bye
The commands above are what you type. Underneath, the client translates them into the protocol's own commands, such as RETR, STOR, and LIST, and the server answers with numbered replies. Reading that conversation is the fastest way to diagnose a failing transfer, and it is covered in FTP commands and reply codes.
What Free Costs, and What Paid Buys
Free software is not free of cost. It moves the cost from a license to your own time. That is often an excellent trade. A free client costs nothing to run, because there is nothing to run: you open it, use it, and close it. This is why paying for a client rarely makes sense.
A server is different, because a server is a responsibility. Somebody has to patch it, add and remove accounts, read its logs, and answer for it in an audit. With a free server those hours are yours, and help comes from a forum where the reply may arrive tomorrow or never. With a commercial server you are paying for three things. The first is features that remove hours, such as directory logins and a searchable activity log. The second is a support contact. The third is a vendor whose business depends on fixing security problems quickly. None of the three is worth anything if you would not have spent the hours anyway.
So the test is arithmetic, not loyalty. Estimate the hours a year the free route costs, including the hours when the one person who understands it is on holiday. Compare that with the license. For a handful of internal users the free route wins comfortably. For a growing list of outside partners it usually stops winning, and the moment it does is rarely announced. It tends to show up as a weekend. Both sides of the ledger are set out in hidden costs of open source and commercial transfer tools.
How to Choose Without Reading Another List
You do not need a ranking. You need your own requirements written down and an hour with each candidate. This is the sheet.
FTP SOFTWARE DECISION SHEET 1. THE JOB (tick one) [ ] Transfer by hand -> graphical client [ ] Transfer from a script -> command-line client [ ] Unattended nightly flows -> automation client [ ] Others connect to us -> server 2. PROTOCOLS REQUIRED (ask the other side; do not assume) [ ] SFTP [ ] FTPS [ ] HTTPS web page [ ] plain FTP (device only) 3. FOR A CLIENT [ ] Verifies certificates and host keys, and warns on change [ ] Can require encryption, not just prefer it [ ] Saved passwords are protected [ ] One client chosen for the whole team 4. FOR A SERVER [ ] One account and one confined folder per partner [ ] Windows or Active Directory logins needed? yes / no [ ] Second factor or FIPS mode required by policy? yes / no [ ] Per-file activity log, kept for ______ months [ ] Who administers it, and who covers when they are away 5. FOR UNATTENDED TRANSFERS [ ] Retries on failure [ ] Somebody is alerted when a transfer fails or a file is missing [ ] Credentials are not stored in plain text in a script 6. TRIAL [ ] Installed from the maker's own site [ ] Tested against the real partner or a copy of the real job [ ] Time to do the everyday task: ______
If sections 4 and 5 are mostly blank, a free tool is very likely the best FTP software for you, and you can stop here with a clear conscience. If they filled up quickly, you are choosing infrastructure, and designing a trial that actually tests a file transfer server is the next step.
The Version to Tell a Colleague
The best FTP software depends on the job. For transferring by hand, the free clients, FileZilla, WinSCP, and Cyberduck, are as good as any paid one. For scripts, Windows already includes curl and sftp. For a free server, use OpenSSH for SFTP, or FileZilla Server or the Windows FTP service for FTPS; no free server does both. A commercial multi-protocol server earns its cost when partners want different protocols or auditors want evidence. And if FTP itself is the problem, the alternatives are SFTP for systems and HTTPS for people.
For the server side in detail, see the full comparison of SFTP servers for Windows. For the free-versus-paid argument without the sales pitch, see open source vs commercial transfer tools.
Frequently Asked Questions
What is the best free FTP program for Windows?
What is the best FTP server for Windows?
What is the best alternative to FTP?
Is there a free FTP server with SFTP for Windows?
What are the basic FTP commands?
Do I need to pay for FTP software?
From the Sysax team: we build secure file transfer software for Windows. Sysax Multi Server is an FTP, FTPS, SFTP, and HTTPS server. Sysax FTP Automation handles scheduled, scripted transfers. Free trials are on the download page.
