19 Open-source Free FTP Servers

19 Open-source Free FTP Servers
Photo by Taylor Vick / Unsplash

An FTP server, also known as a File Transfer Protocol server, is a software application that allows for the transfer of files over a network. It provides a way for users to upload, download, and manage files on a remote server.

Advantages of open-source FTP servers include:

  1. Customizability: Open-source FTP servers allow users to customize and modify the code according to their specific needs. This flexibility enables users to add or modify features, enhance security, and optimize performance.
  2. Transparency: Open-source FTP servers provide transparency as the source code is freely available for review. This allows users to understand how the server functions and verify its security and reliability.
  3. Community Support: Open-source FTP servers often have active communities of developers and users who contribute to their development and provide support. This community support can help address issues, provide guidance, and offer additional resources.
  4. Cost-effective: Open-source FTP servers are typically free to use, eliminating the need for expensive licensing fees. This makes them a cost-effective solution for individuals and organizations with budget constraints.
  5. Security: Open-source FTP servers benefit from the collective knowledge and expertise of the community, making them potentially more secure. Vulnerabilities can be identified and addressed promptly, and security enhancements can be shared and implemented quickly.
  6. Flexibility: Open-source FTP servers offer flexibility in terms of platform compatibility and integration. They can be deployed on various operating systems and easily integrated with other tools and systems.

It is important to note that while open-source FTP servers provide these advantages, proper configuration and maintenance are still necessary to ensure optimal performance and security.

In this list, we collected the best open-source FTP-servers apps and libraries.

1- LightFTP

LightFTP is an open-source (BSD-2-Clause License) lightweight FTP server.

GitHub - hfiref0x/LightFTP: Small x86-32/x64 FTP Server
Small x86-32/x64 FTP Server. Contribute to hfiref0x/LightFTP development by creating an account on GitHub.

2- Golang FTP Server

This FTP server is a gateway between old-school FTP devices and modern cloud based file systems, using the afero's Fs interface and acting as a reference implementation of the ftpserverlib.

At the current stage, supported backend are:

GitHub - fclairamb/ftpserver: Golang based autonomous FTP server with SFTP, S3, Dropbox, and Google Drive connectors.
Golang based autonomous FTP server with SFTP, S3, Dropbox, and Google Drive connectors. - GitHub - fclairamb/ftpserver: Golang based autonomous FTP server with SFTP, S3, Dropbox, and Google Drive c…

3- Portable FTP server

This FTP server is written as .NET Standard 2.0 library and has an abstract file system which allows e.g. Google Drive as backend.

GitHub - FubarDevelopment/FtpServer: Portable FTP server written in .NET
Portable FTP server written in .NET. Contribute to FubarDevelopment/FtpServer development by creating an account on GitHub.

4- FluentFTP

FluentFTP is a high-performance FTP and FTPS client library for .NET, offering a wide range of features including SSL/TLS connections, file uploads/downloads, directory listing parsing, file hashing/checksums, and more.

It is written in C# with no external dependencies, has an extensive test suite, and is released under the MIT License for use in both proprietary and open source applications.

Features

  • Full support for FTPFXPFTPSFTPS with TLS 1.3FTPS with client certificates and FTPS Proxies
  • Full support for over 30 FTP server types with integration tests for all major servers
  • File management:
    • File and directory listing for all major server types (Unix, Windows/IIS, Azure, Pure-FTPd, ProFTPD, Vax, VMS, OpenVMS, Tandem, HP NonStop Guardian, IBM z/OS and OS/400, Windows CE, Serv-U, etc)
    • Fully recursive directory listing and directory deletion (manual recursion and server-side recursion)
    • Easily upload and download a file from the server with progress tracking
    • Easily upload and download a directory from the server with easy synchronization modes
    • Easily transfer a file or folder directly from one server to another using the FXP protocol
    • Conditionally transfer files using rule based whitelisting and blacklisting
    • Automatically verify the hash of a file & retry transfer if hash mismatches
    • Configurable error handling (ignore/abort/throw) for multi-file transfers
    • Easily read and write file data from the server using standard streams
    • Create, append, read, write, rename, move and delete files and folders
    • Recursively deletes folders and all its contents
    • Get file/folder info (exists, size, security flags, modified date/time)
    • Get and set file permissions (owner, group, other)
    • Absolute or relative paths (relative to the "working directory")
    • Compare a local file against a remote file using the hash/checksum (MD5, CRC32, SHA-1, SHA-256, SHA-512)
    • Dereference of symbolic links to calculate the linked file/folder
    • Throttling of uploads and downloads with configurable speed limit
  • FTP protocol:
  • Asynchronous support:
    • Synchronous and asynchronous methods using async/await for all operations
    • Asynchronous support for the IAsyncEnumerable pattern for GetListing methods (see GetListingAsyncEnumerable)
    • All asynchronous methods can be cancelled midway by passing a CancellationToken
    • All asynchronous methods honor the ReadTimeout and automatically cancel themselves if timed out
    • Asynchronous support for progress tracking of file transfers during data upload/download
    • Implements its own internal locking in an effort to keep transactions synchronized
  • Extensible:
    • Easily add custom logging/tracing functionality using industry-standard ILogger interface
    • Easily add support for custom non-standard FTP servers (see the Custom Servers page)
    • Easily add support for more file or directory filtering rules (simply extend FtpRule)
    • Easily add support for more proxy types (simply extend FtpClientProxy)
    • Easily add unsupported directory listing parsers (see the CustomParser example)
    • Easily add your own Powershell commands by extending the scripts in FluentFTP.ps1
GitHub - robinrodricks/FluentFTP: An FTP and FTPS client for .NET & .NET Standard, optimized for speed. Provides extensive FTP commands, File uploads/downloads, SSL/TLS connections, Automatic directory listing parsing, File hashing/checksums, File permissions/CHMOD, FTP proxies, FXP support, UTF-8 support, Async/await support, Powershell support and more. Written entirely in C#.
An FTP and FTPS client for .NET & .NET Standard, optimized for speed. Provides extensive FTP commands, File uploads/downloads, SSL/TLS connections, Automatic directory listing parsing, File has…

Python FTP

GitHub - giampaolo/pyftpdlib: Extremely fast and scalable Python FTP server library
Extremely fast and scalable Python FTP server library - GitHub - giampaolo/pyftpdlib: Extremely fast and scalable Python FTP server library

SFTPGo is a versatile file transfer server that supports various storage backends, virtual folders, custom commands and hooks, multiple authentication methods, LDAP/Active Directory integration, quota support, bandwidth throttling, rate limiting, IP filters, shell-like pattern filters, idle connection termination, blocklist management, Geo-IP filtering, Git repositories, SCP, rsync, FTP/S, WebDAV.

It also supports ACME protocol for TLS certificates, two-way TLS authentication, Prometheus metrics, HAProxy PROXY protocol, easy migration from Linux system user accounts, portable mode, SFTP subsystem mode, performance analysis, flexible configuration format, accurate log files, plugin system, and Infrastructure as Code (IaC) support with Terraform provider.

GitHub - drakkan/sftpgo: Fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob
Fully featured and highly configurable SFTP server with optional HTTP/S, FTP/S and WebDAV support - S3, Google Cloud Storage, Azure Blob - GitHub - drakkan/sftpgo: Fully featured and highly configu…

6- No Nonsense FTP/TFTP Server

uftpd is a UNIX daemon with sane built-in defaults. It just works.

Features

  • FTP and/or TFTP
  • No complex configuration file
  • Runs from standard UNIX inetd, or standalone
  • Uses ftp user's $HOME, from /etc/passwd, or custom path
  • Uses ftp/tcp and tftp/udp from /etc/services, or custom ports
  • Privilege separation, drops root privileges having bound to ports
  • Possible to use symlinks outside of the FTP home directory
  • Possible to have group writable FTP home directory
GitHub - troglobit/uftpd: FTP/TFTP server for Linux that just works™
FTP/TFTP server for Linux that just works™. Contribute to troglobit/uftpd development by creating an account on GitHub.

7- MinimalFTP Server (Java)

A lightweight, simple FTP server. Pure Java, no libraries.

Features

Although it's named "minimal", it supports a bunch of features:

  • 100% Java, no libraries
  • Lightweight
  • Supports 57 FTP commands
  • TLS/SSL support
  • Custom File System support
  • Custom User Authentication support
  • Custom Commands support
  • Support to obsolete commands (some FTP clients might still use them)
GitHub - Guichaguri/MinimalFTP: A lightweight, simple FTP server. Pure Java, no dependencies.
A lightweight, simple FTP server. Pure Java, no dependencies. - GitHub - Guichaguri/MinimalFTP: A lightweight, simple FTP server. Pure Java, no dependencies.

8- ftpd

An open-source FTP server based on github.com/goftp/server.

GitHub - goftp/ftpd: A pure go ftp server with web management UI, moved https://gitea.com/goftp/ftpd
A pure go ftp server with web management UI, moved https://gitea.com/goftp/ftpd - GitHub - goftp/ftpd: A pure go ftp server with web management UI, moved https://gitea.com/goftp/ftpd

9- SimpleFTPServer

A simple FTP server for Arduino, ArduinoSAMD WiFiNINA, esp8266, esp32, stm32 and Raspberry Pi Pico Wio.

GitHub - xreef/SimpleFTPServer: A simple FTP server for Arduino, ArduinoSAMD WiFiNINA, esp8266, esp32, stm32 and Raspberry Pi Pico W
A simple FTP server for Arduino, ArduinoSAMD WiFiNINA, esp8266, esp32, stm32 and Raspberry Pi Pico W - GitHub - xreef/SimpleFTPServer: A simple FTP server for Arduino, ArduinoSAMD WiFiNINA, esp8266…

10- Portable FTP server Java

This is an open-source cross-platform (Java) portable FTP server for Windows, Linux & Mac. Use with command line or GUI.

GitHub - dubasdey/portable-ftp-server: Java Portable FTP Server
Java Portable FTP Server. Contribute to dubasdey/portable-ftp-server development by creating an account on GitHub.

11- Open TFTP Server

This is a free MultiThreaded TFTP Server Open Source Freeware Windows/Unix for PXEBOOT, firmware load, support tsize, blksize, timeout Server Port Ranges, Block Number Rollover for Large Files. Runs as Service/daemon. Single Port version also available.

Features

  • Supports nearly Every Industry Standard Feature
  • Total Size (tsize), Block Size, Interval Time, Block Number RollOver
  • Supports process owner, other than root
  • Extensive Logging, Historical Logging
  • Can specify Server Interfaces and Ports
  • Client Port Ranges
  • Thread Pool
  • Unix Daemon or Windows Service
  • Very Small Foot Print
Open TFTP Server
Download Open TFTP Server for free. MultiThreaded TFTP Server Open Source Freeware Windows/Unix for PXEBOOT, firmware load, support tsize, blksize, timeout Server Port Ranges, Block Number Rollover for Large Files. Runs as Service/daemon.

12- FileZilla (Client/ Server)

FileZilla® is a versatile FTP, SFTP, and FTPS client that supports multiple platforms like Windows, Mac OS X, and Linux. It offers dynamic tools for easy file transfer between your local machine and web server.

For instance, you can compare and sync files between your local directory and the server. It also allows you to browse and transfer files between multiple servers simultaneously, and edit server files on the go. FileZilla is available in 47 languages worldwide!

Features

  • FTP client and server
  • Supports FTP, FTPS and SFTP
  • Built-in file management
  • Advanced file settings
  • Reduces timeout errors
  • Multi-language support
FileZilla®
Download FileZilla® for free. A fast cross-platform FTP client. FileZilla® is a cross-platform FTP, SFTP, and FTPS client with a vast list of features, which supports Windows, Mac OS X, Linux, and more. FileZilla’s dynamic tools help you move files between your local machine and your Web site’s ser…

13- bftpd

bftpd is an FTP server for Unix systems, which is designed to be portable and fast. It supports inetd and standalone mode, most RFC FTP commands and is very easy to configure.

bftpd
Download bftpd for free. bftpd is an FTP server for Unix systems, which is designed to be portable and fast. It supports inetd and standalone mode, most RFC FTP commands and is very easy to configure.

14- Pure Java FTP server

This is a free and open-source portable Pure Java FTP server. It can run as root/admin!

Its features include full multi-threading, multi-platform support, high speed, GUI and CMD modes, IP filtering, read/write support, interface selection, speed limits, anonymous mode, TCP port selection, folder selection, logging, and login limitations.

pj-ftp-server
Download pj-ftp-server for free. Pure Java FTP server. Free portable cross-platform multi-threaded. Pure Java FTP server. Free portable cross-platform.

15- CrossFTP Server

CrossFTP Server is a secure-enabled FTP Server for multiple platforms. It offers a high-performance, easy configurable, and most of all a secure FTP server. It is very easy to start a new FTP service for the novice users, and for advanced users as well.

CrossFTP Server
Download CrossFTP Server for free. CrossFTP Server is a secure enabled FTP Server for multiple platforms. It offers a high-performance, easy configurable, and most of all a secure FTP server.

16- FtpServer Library .Net

An FTP server program for .NET Core, and its customizable .NET Standard core library.

GitHub - taoyouh/FtpServer: An FTP server program for .NET Core, and its customizable .NET Standard core library
An FTP server program for .NET Core, and its customizable .NET Standard core library - GitHub - taoyouh/FtpServer: An FTP server program for .NET Core, and its customizable .NET Standard core library

17- UniFTP

UniFTP is an FTP server lib & software written in C#. It's based on Sharp FTP Server, but have been rewritted and enhanced.

GitHub - UlyssesWu/UniFTP: Asynchronous FTP server written in C#. Rewrited and Enhanced from SharpServer.
Asynchronous FTP server written in C#. Rewrited and Enhanced from SharpServer. - GitHub - UlyssesWu/UniFTP: Asynchronous FTP server written in C#. Rewrited and Enhanced from SharpServer.

18- ZeptoServer

ZeptoServer is a Minimalistic light-weight server that offers a range of features and flexibility.

One of the key features of ZeptoServer is its built-in FTP implementation, which allows for efficient and secure file transfer. However, it doesn't stop there. With its modular design, ZeptoServer can be easily extended to support any text protocol you may need. This means that whether you require a server for HTTP, SMTP, or any other text-based protocol, ZeptoServer can handle it with ease.

Another advantage of ZeptoServer is its versatility in terms of hosting options. While it can be hosted as a standalone server, it also provides the option to be hosted in-proc. By utilizing the ServerHost class from the ZeptoServer project, you can seamlessly integrate ZeptoServer directly into your existing application.

GitHub - junk-machine/ZeptoServer: Minimalistic light-weight server
Minimalistic light-weight server. Contribute to junk-machine/ZeptoServer development by creating an account on GitHub.

19- SmallHTTP Server

SmallHTTP Server is a small, open-source, and free HTTP server that offers a range of functionalities including mail, DNS, FTP, and proxy servers.

It supports CGI scripts, Server Side Includes, virtual hosts, and directories. It also provides detailed statistics, web and local administration, IPv6 and SSL/TLS support, GZip compression, and an HTTP TLS VPN server.

Small HTTP server
Download Small HTTP server for free. Universal server. It is not only a web server, it is also Mail server, DNS server, FTP server, Proxy server... All in one!

15 Free Open source FTP Servers
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

Read more