What is FTP and What is FTP Server?
FTP (File Transfer Protocol) is as its name suggests a file transferring protocol between two computers, a local computer, and a remote server. FTP servers is a web server that runs on web-servers and uses FTP protocol at the server side to manage file transfers, connections, & users. Some of them come with a modular architecture, security-focused features, and several options designed for the enterprise.
The FTP server allows users to store their files on the server, through FTP, and access it later. The basic features of usable FTP servers are to manage the file transfers, the connections, the rate limits, the user's accounts, user groups, & user permissions. Some of the projects on this list do, even more, some of them are built with modular architecture allowing developers to extend their functionalities throw custom developed modules and plugins.
To connect to the FTP server, you require a client (FTP client), that provide the client-ready interface to connect through FTP and similar protocols. We have covered the best FTP clients in this article for Windows users, Linux (Ubuntu, Debian, macOS). Here is our list of: 10 Recommended Free, Open source FTP Clients for Windows, Linux, and macOS.
Vsftpd is on the top of our list as it's preferred by Linux server Admins all over the world, It provides out-of-box security, and set of features and configurations to configure FTP and FTP virtual users on the server.
Vsftpd is used by RedHat, OpenSuse, Debian, FreeBSD, Gnome, KDE. A user has sent Vsftpd admins a graph demonstrating Vsftpd performance as it served 2.6TB, with a concurrent user count often over 1,500 on one single machine for 24 hours.
The Apache FTP server is an open source cross-platform FTP server, it's built on Java technologies which make it run smoothly, on Windows servers so Linux servers. It provides more options for developers and systems admins as it can run as a standalone server, or can be embedded into a Java server application. Apache FTP server provides support for developers who are planning to integrate it with their Spring-based apps. For Standalone option, The Apache FTP can be installed and run as a Windows service, as well as Linux service or Unix/Linux daemon.
ProFTPd is an FTP server for Unix/ Linux based systems. It's easy to install, use and highly configurable even for newbies. It provides multiple virtual FTP servers support with per-directory based configuration via ".ftpaccess" file which is very similar to Apache's ".htaccess".
CrossFTP is a cross-platform FTP server, that works with Windows servers and Unix/ Linux systems. It's easy to install, manage, and update using Java as the main requirement. CrossFTP has a simple GUI (Graphical User Interface), it provides an easily configurable setting manager for users, basic configuration, connections, IPs control, File/ Directory, & FTP messages. The CrossFTP graphical app also has overview tabs for logging, and statistics for server usage.
uFTP is an open source, lightweight, portable FTP server written in C for the best performance. It's primarily written for Unix/ Linux (POSIX) -based servers. uFTP is super easy to use and supports an almost all required FTP commands to run a full-featured FTP server.
It's released under MIT license, but the user should be aware that it includes software developed by the OpenSSL Project for use in the OpenSSL Toolkit, so we would recommend reviewing OpenSSL license.
glFTPd is an open source free FTP server for Unix/ Linux operating systems. The first public release of this freeware dates back to the beginning of 1998, glFTPd stands for GreyLine FTP (the name of the original creator). It runs smoothly with Unix systems like FreeBSD, OpenBSD, and many server-ready Linux distros like Ubuntu server, However, If for more Linux support we would recommend Vsftpd.
glFTP supports many FTP/ site commands and runs within a chroot environment which makes it relatively safe.
ColoradoFTP is an open source Java FTP server, It's a cross-platform server that runs on Windows and Linux servers with ease. It's regularly updated with bug fixes, new features, and improvements. It runs smoothly on the latest JavaVM. ColoradoFTP is compatible with RFC 959 and RFC 3659 (File Transfer Protocol and Extensions).
ColoradoFTP server offers several demo with user accounts with different permissions, showing configuration example, anonymous login, and the use of their custom plugins. You may check the demos here.
Waarp is an open source Web server that serves several protocols (HTTP, FTP, FTPS, SSH, SFTP) and several proprietary protocols. Waarp os meant for developers for companies and enterprise to implement it with their projects, or extend it for their uses. Waarp is a full-featured server, but with WaarpFTP it provides a powerful developer-friendly server to build custom FTP servers on top of it. Waarp's team released WaarpGatewayFTP a powerful FTP server that is built on top of WaarpFTP as a functional production-ready example.
FileZilla is an open source free FTP Client and Server that works for multiple platforms as FTP client, and for Windows as FTP server. FileZilla has been around for years and it competes with many commercial paid software.
FileZilla Server is FTP server app for Windows, It does not come for other platforms, but Windows 7, 8, 8.1 and 10 are supported, each both 32 and 64 bit. FileZilla Server and Client are released under GPL v2.0.
DrFTP is a distributed FTP server built with Java, which makes it run on Windows Servers, as well as Linux/ Unix-based servers. It uses the "slaves" concept to provide better control and improve the security & performance of file transfers. It can be used to create an FTP Grid or Multi-FTP based websites, through a distributed FTP daemons.
DrFTP has a modular plugin-ready architecture, and it still in active development. It requires Java, and ANT for compiling and installation. We would recommend it for advanced users.
We would recommend choosing the best option that fits with your requirements and complies with your server/ operating system of choice. We have listed several Java-based FTP servers, some of them are aiming for developers, others are general purposes FTP servers. You may need to consider auditing and logging if you want to run a privacy-aware FTP server.
A physician with programming skills, Linux user since late 1990s, Open source supporter . Doing coding with Python, NodeJS (Meteor, VueJS, Express, D3, PhantomJS), SmallTalk & R language.