Hermes FTP Server is a free, cross-platform FTP server adhering to RFC 959, RFC 2228, RFC 2389, and RFC 2428. It is being developed in Java with a focus on security and extensibility. Currently, these features are supported:

  • Active and passive transfer mode.
  • Customizable data channel ports (firewall friendly).
  • Block transmission mode and mainframe record structure.
  • ASCII, EBCDIC, and UTF-8 code pages.
  • Data encryption via 128-Bit Secure Sockets Layer (SSL/TLS).
  • Authentication via implicit or explicit SSL/TLS.
  • Network protocols IPv4 and IPv6.
  • Data compression (MODE Z).
  • Pre-configured Windows service or Linux daemon.
  • Management of users and user groups via XML file.
  • Global and group based bandwidth limits.
  • Group based transfer volume limits
  • Group based authorization model.
  • User password encryption.
  • IP black lists.
  • Embedded web console for monitoring statistics, logs etc. via browser.
  • Per-user and per-session statistics.
  • Strong focus on extensibility and ability to integrate into different environments.

Hermes FTP server is a console application, configured exclusively through XML files. An embedded web console allows for monitoring resource consumption, session statistics, user statistics and log files.


The development of yet another FTP server was driven by the motivation to provide a flexible, customizable software that is able to integrate into various environments such as J2EE.

Apart from FTP specific settings, such as connection limits or supported cipher suites, the internal structure of the application can be configured as well. The IoC based architecture allows for registering new FTP commands or replacing existing ones without the need to recompile the Hermes FTP server application. Hence, by re-implementing a subset of the FTP command classes, you could make Hermes FTP server behave like an EJB client delegating requests directly to an application server instead of accessing the local file system.

Hermes FTP Server is based on the Spring Framework . So, if you are familiar with this framework and its underlying concept of dependency injection you will get started quickly developing customized extensions.

Related Projects

Want to give another FTP server a try? Here is a list of similar OSS projects developed in Java.

Name Link
Apache FTP Server
Anomic FTP Server
Cross FTP Server

Locations of visitors to this page