FTP and SFTP play a big role in the administration of WordPress servers, management of systems on a network, and file sharing. There are a wide variety of free and premium FTP and SFTP client software solutions out there for you to try, so in this piece, we’ll help you narrow down your choices and find a solution that works best for you. Before we dive into the software recommendations, we’ll discuss the basics of FTP and SFTP. If you’re already comfortable with the nuts and bolts of these file transfer protocols, feel free to
Note: We’re covering client software here. If you’re an administrator looking for SFTP server software, check out The 20 Best Free SFTP and FTPS Servers for Windows and Linux.
- 1 What is FTP?
- 2 What is FTPS?
- 3 What is SFTP?
- 4 What about SCP and FISH?
- 5 Where are FTP & SFTP used?
- 6 What to look for in an FTP/SFTP client?
- 7 The Best FTP and SFTP Clients
- 8 Honorable mentions
- 9 Let us know what you think!
What is FTP?
The File Transfer Protocol (FTP) is, as the name suggests, a protocol used for transferring files between computers on a network. FTP uses Transmission Control Protocol (TCP) ports 20 & 21 by default. FTP enables users to download, upload, view, rename, delete files, and more.
FTP is a relatively old protocol. While this helps explain some of the oddities like using two ports, it also speaks to the maturity of the protocol. The original standard for FTP, RFC 114, was published in 1971. The current standard, RFC 959, was published in 1985.
Connection Modes: Active vs Passive FTP
There are two discrete FTP connection modes: active FTP and passive FTP. In active FTP mode, port 21 is used to send the control commands that dictate what happens during an FTP session. Port 20 is used for the actual transfer of data. In passive FTP mode, an arbitrary port greater than 1023 is used in place of port 20. Slacksite takes a good deep dive into the topic of active vs passive FTP if you’re interested in learning more.
Transfer Modes: Binary vs ASCII
There are also two different FTP transfer modes: binary and ASCII.
For text files (i.e. a file that is human readable with a program like Notepad, vi, or nano), ASCII is recommended. This is because ASCII transfer mode supports character translation between different systems (e.g. conversion of end of line characters). This can be important when transferring scripts.
For non-text files, like JPEG images, binary transfer mode is recommended. This is because the character translation in ASCII mode can corrupt non-text files. If you have ever transferred an image between two computers and it wasn’t viewable on the receiving machine, the root cause may have been use of the ASCII transfer mode.
If this gets a little hard to keep up with, don’t worry too much. In most cases, you can just use binary transfer mode and not think about it further.
Is FTP secure?
In a word, no. FTP sends files and credentials across the network in cleartext. That means data sent using FTP is NOT encrypted.
For this reason, it is often better to use an encrypted transfer method like FTPS (FTP Secure) or SFTP (SSH File Transfer Protocol).
What is FTPS?
FTPS is effectively FTP with support for TLS (Transport Layer Security) encryption. In the past, FTPS also used SSL (Secure Sockets Layer). SSL is much less common with FTPS today due to a variety of security concerns. Using FTPS instead of standard FTP enables you to get the functionality of FTP, plus the benefits of encryption and certificates.
There are two main types of FTPS connections, implicit and explicit. Servers using implicit FTP listen for connections on port 990 instead of port 21. As mentioned by FileZilla, implicit FTPS is a legacy protocol at this point. This means you won’t see implicit FTPS used as much as explicit FTPS these days. Explicit FTPS (a.k.a. FTPES) uses port 21 like standard FTP and enables the client to explicitly call for an encrypted connection.
What is SFTP?
SFTP, rather counterintuitively is NOT just an encrypted version of the FTP protocol. While it serves the same purpose of transferring and managing files, under the hood SFTP is significantly different than FTP and FTPS. Many of these differences stem from the fact SFTP sits atop the SSH (Secure Shell) protocol.
One major difference is the usage of ports. As opposed to using two discrete ports, SFTP uses just one. By default, this port is TCP port 22 (the default SSH port). Using the SSH port has the added benefit of making SFTP generally more “firewall friendly” and less likely to be blocked by default.
Additionally, SFTP enables users to benefit from the use of SSH keys. If you are unfamiliar with the benefits of SSH keys and asymmetric cryptography, check out this article from Digital Ocean. In short, SSH keys add an additional layer of security to the authentication process.
Personally, I prefer SFTP to FTP/FTPS/FTPES, but there are use case arguments for both. The near ubiquity of SFTP on most Linux/Unix servers, firewall benefits of using the single port, and the security benefits of leveraging SSH are the reasons for my preference. However, some may make an argument for FTPS based on the specifics of a given environment (e.g. if there are already FTP servers running), support for X.509 certificates, or support for server to server file transfers.
What about SCP and FISH?
If you are researching file transfer protocols, you may have come across SCP (Secure Copy) and FISH (Files Transferred Over Shell Protocol). These two protocols are similar to SFTP in that they use SSH to facilitate the connection (FISH can also use rsh).
SCP is a popular solution that can prove helpful if you simply need to transfer files. However, if you need to list remote directories, create new directories, remove files, or do other administrative tasks, you’ll need to use SFTP or FTP.
FISH is not as widely-used as SCP or SFTP, but may be helpful where resources and the ability to install software on the server side is highly limited.
Where are FTP & SFTP used?
You can find FTP and SFTP used in a wide variety of use cases. Anytime you need to transfer files from computer A to computer B or manage files on a remote system is a potential use case for SFTP and FTP. Some of the most popular use cases include:
- Uploading files to Content Management Systems (CMS) like WordPress.
- *nix server administration. SFTP is the popular choice here.
- File sharing. Using a protocol like SFTP may be particularly useful to meet compliance requirements (e.g. for SOX, HIPPA, or FIPS).
- Firmware upgrades. Many devices support firmware upgrades via FTP or SFTP.
What to look for in an FTP/SFTP client?
The answer to this question is really “it depends”. If you are a home user or just manage a WordPress site or two, you may be able to get away with a very simple file transfer client. All you may need is a simple graphical user interface (GUI) and support for a protocol or two. On the other hand, if you are an advanced user or subject to specific compliance requirements, you may have a much more extensive list of needs when it comes to your FTP/SFTP client software needs. Below is a quick rundown of some of the features you may want to keep an eye out for:
- Protocols & encryption method support – Do you know you will only ever need SFTP support? Are you in a role where one server uses SFTP, another FTPS, another HTTPS, and another FTP? Similarly, do you care (for compliance reasons or otherwise) about the security of the encryption methods your client software uses? You’ll need to consider these points when picking a client software.
- Drag & drop – This is really a convenience feature, but drag and drop with client software GUIs can really streamline the file transfer process.
- File integrity checks – How do you know if the file you moved from location A to location B made it there without any corruption? Comparing the hash or checksum can help you do this. Some client software will take care of this for you.
- Scheduling of actions – How much time will you save if you or your team can automate your file transfers? If you are in a medium or larger sized business, automating the easy stuff can help save on Opex.
- Connection limits – Do you need to be able to make unlimited connections or can you get away with just one or two?
- Logging – For auditing, compliance, and troubleshooting, detailed logs can be very important. Does logging matter to you?
- Synchronization & backups – Do you need to be able to automatically sync files at two different locations? Would automating a backup process save your team a ton of time? If yes, look for these features in your client software.
The Best FTP and SFTP Clients
- SolarWinds Solar-PuTTY (FREE TOOL)
- Coffee Cup Free FTP
- Built in Linux, Windows, and macOS CLI programs
SolarWinds recently released Solar-PuTTY, a software that takes the popular PuTTY software and builds it out a bit further to add a more modern GUI and a variety of additional features. I’ll be covering this software in more detail in a piece in the near future, so we’ll focus on the FTP, SCP, and SFTP features of SolarPutty here.
In short, this portable software is a useful tool for ad-hoc file transfers. It’s free, supports drag-and-drop transfers, logging, storing credentials and sessions, and more. I’ve been using Solar-PuTTY in place of PuTTY as my go-to SSH client for a bit, and the SFTP client has been a nice plus.
While I can’t say I like Solar-PuTTY’s interface more than WinSCP for SFTP/SCP transfers, the fact it is also an SSH client is a big plus. That and the storing of sessions makes it easy enough for me to use Solar-PuTTY regularly. If you’re looking for a piece of free Windows software that can serve as a “Swiss Army Knife” type of client software, give Solar-PuTTY a try for free.
WinSCP is a popular file transfer client for Windows, boasting over 114 million downloads. It’s free, extensible, and supports SFTP, FTP(S), SCP, and WebDav (an extension of HTTP). WinSCP supports drag and drop, a variety of languages, scripting, and includes an integrated text editor.
This software was my go-to SFTP and SCP software for quite some time. The CLI (Command Line Interface), PuTTY integrations, and large user base all help extend how much you can get out of this free software. You can download WinSCP here.
FileZilla is a free and open source (released under the GNU General Public License) FTP client software for Windows, Mac OS X, and Linux.
FileZilla is a popular and mature FTP client software that supports FTP, FTPS, and SFTP. The “pro” version of FileZilla adds support for WebDav and a variety of cloud storage providers (Amazon S3, Dropbox, etc.) as well. FileZilla supports drag and drop, transfer of files greater than 4GB, configurable transfer speed limits, and more. One of the biggest benefits of FileZilla is its large user community. If you are stuck trying to figure things out on your own and run into issues, this could be a very useful free resource. You can download the FileZilla client for free here.
One of the criticisms of FileZilla has been that it tries to add “bloatware” during the install. While this is understandable given they are trying to make some money, it can be off-putting to many users. At the least, FileZilla gives you the ability to opt-out of the additional software during the install process. It is something you should be cognizant of before blindly clicking through the install of this software.
CyberDuck is a free and open source file transfer client with support for a wide variety of protocols and cloud storage providers. CyberDuck is a solid alternative for users looking to move away from FileZilla as it offers many of the same features and the ability to import bookmarks from FileZilla (as well as a number of other apps).
While CyberDuck has a respectable feature set when it comes to protocol support (FTP, FTPS, SFTP, and WebDAV are all supported) and security, what really stood out to me was its support for a wide variety of cloud storage providers. CyberDuck boasts support for Amazon S3, OpenStack Swift, Backblaze B2, Microsoft Azure & OneDrive, Google Drive, DRACOON, and Dropbox.
The GUI doesn’t default to a drag and drop “two pane” view like many other clients, but I had no problem dragging from Windows Explorer into the CyberDuck GUI. You can download CyberDuck for Windows or Mac directly from its home page here.
MonstaFTP supports FTP, FTPS, SFTP, and SCP. It enables users to upload .zip files and extract them on the server side, edit files on-screen, customize the user interface, and rebrand the software. This could be an interesting solution if you are an administrator looking to make life easier on your users. As opposed to making them pick a client on their own (which may come with a non-trivial support burden for you), you can provide the client on the server side. The ability to drag and drop from Windows Explorer is a nice plus as well.
There are lite (free), business ($49/year), and host ($149/year) versions of MonstaFTP available as of this writing. You can download the free version or buy a license here. You can also add a free 45 day Host Edition trial when you download the lite version. If you would like to take it for a test drive before installing, you can demo MonstaFTP from your browser here.
6. Coffee Cup Free FTP
Coffee Cup Free FTP is a free FTP, FTPS, and SFTP client for Windows operating systems. In addition to those file transfer protocols, it can also support HTTP. The GUI supports drag and drop, and if you are okay with the ads across the bottom of the window, it is fairly easy to use.
The free version of Coffee Cup FTP supports archival, combo bookmarks, historical file information, and more. The paid version of this software, Direct FTP adds features like a built-in code editor with code completion functionality. You can download Coffee Cup Free FTP here. You can purchase Direct FTP here.
IPswitch offers a robust WS_FTP Professional Client for Windows with a variety of advanced features. According to IPswitch, this popular file transfer client is trusted by over 40 million users.
The WS_FTP Professional Client boasts support for a variety of transfer protocols including FTP, FTPS, SFTP, HTTP, and HTTPS. This makes IPswitch’s client software highly extensible. If one protocol doesn’t work, you will not need to immediately jump to another software to get the job done. With many use cases preferring HTTP or HTTPS transfers to FTP or SFTP, the addition of those two protocols is a big plus.
WS_FTP Professional Client also takes security very serious. File transfers can be secured by 256-bit AES Transport Encryption, file integrity is validated using a variety of methods including SHA512, PGP file encryption is supported, and the cryptography is FIPS 140-2 validated. These features are a big plus not only for business users looking to remain compliant, but also users that place a premium on security.
Another benefit of WS_FTP Professional Client is the ability to automate tasks and back up data. For example, if you want to delete a file from location A after it is transferred to location B, you can automate that process along with the transfer. Similarly, you can schedule and compress backups of important data to a variety of locations including hard drives, network shares, file servers, or Internet hosting services. The synchronization feature helps you keep various directories in sync with one another and can help streamline administration.
Additionally, this software from IPswitch includes a number of other premium features that help make this a holistic file transfer client solution. These features include: email notifications, unlimited connections, proxy server support, logging, the ability to create and view thumbnails (think WordPress), and more.
Even though it is chock-full of features, I found WS_FTP Professional Client easy enough to get started with. The drag and drop GUI is fairly intuitive and helps you dive right into transferring files. You can download a free trial of the IPswitch FTP client here.
8. Built in Linux, Windows, and macOS CLI programs
If you can’t, or don’t want to, install any programs, you may be able to get away with the various command line options available on most modern operating systems. Here we’ll provide a quick overview of what’s available on Linux, macOS, and Windows.
For those of you comfortable with the Linux CLI, the built-in SFTP and FTP programs may be all you need. If you are comfortable with using SSH from a command line, using these two programs should be easy enough. For a primer on SFTP from the Linux CLI, check out this Digital Ocean article.
Given that they are both *nix-based operating systems, the macOS sftp command line program is similar to the Linux sftp program described above. However, beginning with High Sierra, macOS dropped support for plaintext FTP from the command line (check out this Apple discussion for details). If you need CLI plaintext FTP support and are running a newer macOS, installing the open source inetutils might be the way to go. The command brew install inetutils can be used to install the inetutils suite of tools. Note: inetutils includes a variety of client and server programs, many of which transfer data in plaintext. Consider using an encrypted file transfer method like SFTP or FTPS instead of installing inetutils.
Windows also offers a built-in command line FTP program you can invoke simply by typing “ftp” at the command prompt. However, there is no such program for SFTP, so you’ll need to install a third-party tool like psftp (from the creators of Putty).
There were two client software products that just missed making our list (if you think we should reconsider, let us know in the Comments section below).
Classic FTP is a software you may want to consider if you are a Windows Home user who only needs support for FTP and FTPS (SFTP is not supported). Given the context of our list, we decided to leave it off as the freeware version is only available for non-commercial use.
FireFTP is a popular browser that we would have added to our list had FireFox not dropped support. Now FireFTP recommends users leverage the less popular WaterFox browser, so we decided to leave them off. The reasoning behind this decision was not that FireFTP or WaterFox is subpar, just that changing browsers just for FTP support might not be ideal given the availability of alternatives.
Let us know what you think!
That was our list of the eight Best FTP and SFTP Clients for Windows and Linux. Have you tried any of the software products mentioned in this article? Do you think there is something we left out? Do you have a question about one FTP or SFTP? Let us know in the Comments section below.