This is a fully featured FTP server written in Java. It is an implementation of RFC 959. The design is really modular and the server is fully customizable. Using it you can share files over the Internet. This server is now a part of Apache Avalon project.

  • 100% pure Java, open source resumable FTP server!!!
  • Multi platform support and multithreaded design.
  • It can be deployed in multi-homes machines.
  • User virtual directory, write permission, idle time-out and upload/download bandwidth limitation support.
  • You can monitor all the ftp connections, user activities in real-time.
  • Handles both ASCII and binary data transfers.
  • Both upload and download files are resumable.
  • Supports PASV mode. Passive ports are configurable.
  • IP restriction support. You can use a limited set of regular expressions (*?[^-]) to specify the allowed/banned IPs.
  • Supports SITE commands. Use SITE HELP to get the available commands.
  • Anonymous login support. Default users admin/admin and anonymous will be created by the server when you start it for the first time.
  • The server reloads the user data at a regular interval if necessary.
  • Database and LDAP can be used to store user data.
  • New user managers can be added very easily by overriding ranab.server.ftp.usermanager.UserManager class.
  • For better performance the server can be started without any user interface by executing java ranab.server.ftp.FtpServer .
  • You can encrypt the password in property file based user manager by specifying FtpServer.server.config.prop.encrypt key. The encryption algorithm is MD5.
  • Database based user manager will try to create the user table FTP_USER if not found. You can create it manually by executing apps/ftp/conf/ftp-db.sql file. I have tested it using MySQL and Oracle database.
  • If you want to use LDAP to store and authenticate user, you need to change the LDAP schema and the config file. The schema file is ftp-db.ldif. I have tested it using Netscape LDAP (version 4.1).
  • Tested with different FTP clients like Internet Explorer, Netscape Navigator, cuteFTP, SmartFTP, LeechFTP, WsFTP etc.
  • If you are using property file based user manager, make sure that the user property file is not accesible by the FTP users. Otherwise it will be a security problem. Keep it below the user virtual root directory.

Licence: Apache License