Every FTP client on this list is free. Not free trial. Not free with locked features. Free.
So the question is not “which one costs nothing.” It’s “which one fits the work you do.” A tech pulling event records from relays needs a different tool than someone running nightly backup scripts. This guide sorts the clients by job, not by download count.
The Short Answer
| Client | Platform | Protocols | Best for |
|---|---|---|---|
| FileZilla | Windows, Linux, macOS | FTP, FTPS, SFTP | General use, big batch transfers |
| WinSCP | Windows | FTP, FTPS, SFTP, SCP | Windows users, scripted jobs |
| curl | All (built in) | FTP, FTPS, SFTP* | Automation and scripts |
| lftp | Linux, macOS | FTP, FTPS, SFTP | Power users on the command line |
| Cyberduck | macOS, Windows | FTP, SFTP, cloud | Mac users, clean interface |
| ftp.exe | Windows (built in) | FTP only | Quick bench tests, nothing more |
*curl needs SFTP support compiled in; most Linux builds have it, the Windows build does not.
Now the detail.
FileZilla — the Default Choice
If you just need an FTP client and don’t want to think about it, this is the one. It runs on everything. It handles FTP, FTPS, and SFTP. The two-pane layout shows local files on the left, remote on the right. Drag across to transfer.
Three things make it good for real work:
The transfer queue. Drop a hundred files in and let it run. Failed transfers stay in the queue so you can retry them without hunting for what’s missing.
The message log. The top pane shows every command sent and every reply received. When a transfer fails, the log tells you why. A 530 is a bad login. A 425 is a firewall. A 550 is a bad path. No guessing.
The site manager. Save each device or server with its own credentials, port, and transfer mode. Set binary as the default type while you’re in there.
One real warning. Download FileZilla from filezilla-project.org and nowhere else. Third-party download sites have bundled adware with the installer for years. This is the most common way people get a bad copy.
The main gripe: by default, FileZilla stores saved passwords without protection. Turn on the master password in settings if the machine is shared.
WinSCP — the Better Pick on Windows
WinSCP only runs on Windows, but on Windows it often beats FileZilla. Same job, plus a few things FileZilla doesn’t do.
Scripting. This is the big one. WinSCP has a proper scripting language and a .NET assembly. You can write a script that logs in, grabs every new file from a folder, checks it landed, and logs the result. Schedule it with Task Scheduler and you have automated collection without writing a full program. If you pull records from field devices on a schedule, this is your tool.
SCP support. On top of FTP, FTPS, and SFTP, it speaks SCP. Useful for older Linux boxes and network gear that only run SSH.
Two interface modes. Commander mode gives the classic two-pane view. Explorer mode makes the remote server look like a Windows folder. Handy for people who don’t live in file transfer tools.
It also keeps a session log per site and integrates with PuTTY, so you can jump from file transfer to a terminal on the same host in one click.
curl — When a Script Is the Client
curl is not an app you open. It’s a command. And it’s already installed — Windows 10 and 11 ship it, so does every Linux distro and every Mac.
One line downloads a file:
curl -u user:pass ftp://10.20.30.40/records/event01.dat -o event01.dat
One line uploads one:
curl -u user:pass -T config_backup.xml ftp://10.20.30.40/backups/
It uses passive mode by default, transfers binary by default, and supports FTPS with a flag (--ssl-reqd). Wrap it in a batch file or shell script, add a loop, and you have a collection job with zero installs on the machine.
Where curl stops: no directory sync, no resume queue, no interface. It moves one file per command. For anything past that on the command line, look at lftp.
lftp — the Command-Line Power Tool
Linux and macOS only. lftp is what you use when curl runs out of road.
It does things GUI clients struggle with:
- Mirroring.
mirrorpulls a whole remote directory tree down.mirror -Rpushes one up. Add--only-newerand it skips files that haven’t changed. That’s a sync job in one command. - Parallel transfers. Split a big file into segments and pull them at the same time. On a slow link with a per-connection cap, this is a real speedup.
- Retry built in. Connection drops, lftp waits and reconnects on its own. Good for flaky links.
- Job control. Queue transfers, background them, keep working.
It handles FTP, FTPS, and SFTP. If your collection server runs Linux, lftp plus cron covers almost every scheduled transfer job you’ll ever need.
Cyberduck — the Mac Pick
Cyberduck is the usual answer on macOS, and it has a Windows build too. Single-pane interface, very clean, feels like a native app. It covers FTP, SFTP, WebDAV, and a long list of cloud storage backends — S3, Azure, Google Drive and more.
It’s free, with a donation prompt at download and in the app. Paying removes the prompt; nothing is locked behind it.
Where it falls short of FileZilla: no two-pane view, and the transfer queue is more basic. For moving a few files it’s pleasant. For batch-heavy work, FileZilla or lftp do it better.
ftp.exe — Know Its Limits
Windows has shipped a command-line FTP client since the 90s. Type ftp in a command prompt and it’s there. That’s the whole upside.
The downsides matter:
- No passive mode. It only does active mode, so it fails through most firewalls and NAT. This is the number one reason “ftp works on the bench but not from the office.”
- Plain FTP only. No FTPS, no SFTP.
- ASCII by default. Forget to type
binaryand it corrupts every non-text file it touches.
Use it to test a device sitting next to you on the bench. For anything else, use curl — it’s just as built-in and doesn’t have these problems.
Picking for OT and Field Work
A few points that matter more on industrial networks than in an office:
Logging is not optional. Embedded FTP servers in relays, RTUs, and meters are quirky. Some don’t support passive mode. Some choke on LIST. When a transfer fails, the command/reply log is how you find out which quirk you hit. FileZilla and WinSCP both show it live.
Set binary as the default. Event records, COMTRADE files, firmware, config exports — all binary. One ASCII-mode transfer can quietly corrupt a firmware file. Set the default once in the client settings and stop relying on memory.
One saved session per device. Unique credentials per device, saved in the site manager, master password on. Plain FTP already sends passwords in the clear on the wire. Don’t make it worse by reusing one password everywhere.
Portable versions help. FileZilla and WinSCP both have portable builds that run from a USB stick. Useful on station computers where you can’t install software.
Prefer SFTP when the device offers it. All the main clients here speak SFTP too. If the device or server supports it, use it and skip plain FTP’s cleartext problem entirely.
What About Paid Clients?
There are commercial clients — SmartFTP, Transmit on Mac, and others. They’re polished. But for the FTP, FTPS, and SFTP work covered here, the free tools do the same job. The realistic reasons to pay are vendor support contracts or a niche feature your workflow depends on. Most people never hit either.
FAQ
What is the best free FTP client?
FileZilla for most people on any platform. WinSCP if you’re on Windows, especially for scheduled or scripted transfers. lftp if you work on a Linux command line. Cyberduck if you’re on a Mac and want something clean.
Is FileZilla safe to download?
Yes, from the official site filezilla-project.org. Avoid third-party download portals — some have bundled adware with the installer. Also turn on the master password so saved credentials are encrypted.
Does Windows have a built-in FTP client?
Two of them. ftp.exe is old, active-mode only, and best avoided. curl is also built into Windows 10 and 11 and is the better choice for command-line transfers.
Which free FTP clients support SFTP?
FileZilla, WinSCP, lftp, and Cyberduck all do. curl does if the build includes SSH support — Linux builds usually do, the standard Windows build doesn’t.
Can I automate FTP transfers for free?
Yes. WinSCP scripting plus Task Scheduler on Windows, or lftp plus cron on Linux. Both handle logins, transfers, retries, and logging without any paid software.
Why does my FTP client corrupt files?
The transfer type is set to ASCII, which rewrites line endings inside the file. Switch to binary mode and set it as the default. Firmware, archives, and measurement files must always go binary.
