jftpd is an FTP server written in Java. It currently implements the following commands:
USER | PASS | CWD | CDUP | QUIT | REIN |
PORT | TYPE | STRU | MODE | RETR | STOR |
DELE | RMD | MKD | PWD | LIST | NLST |
SYST | NOOP | SIZE | MDTM |
jftpd does not currently implement the following commands:
ACCT | SMNT | PASV | STOU | APPE | ALLO |
REST | RNFR | RNTO | ABOR | SITE | STAT |
HELP |
jftpd supports the ASCII and IMAGE (binary) representation types.
The only transmission mode supported is STREAM, and the only structure supported is file-structure.
No user authentication is currently provided.
A copy of the FTP specification (RFC 959) can be found here.
jftpd is Copyright (C) 1998 Ryan Heise
This program is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details.
You should have received a copy of the GNU General Public License along with this program; if not, write to the Free Software Foundation, Inc., 675 Mass Ave, Cambridge, MA 02139, USA.
Include the classes directory in your CLASSPATH. You can change the name from classes to anything you prefer or put it in a zip or jar archive.
There should be a configuration file called jftpd.properties in rheise/jftpd with some configuration options:
This property specifies the level of logging to be enabled. The priorities from highest to lowest are:
EMERG | system is unusable |
ALERT | action must be taken immediately |
CRIT | critical conditions |
ERR | error conditions |
WARNING | warning conditions |
NOTICE | normal but significant condition |
INFO | informational |
DEBUG | debug-level messages |
These correspond to logging priorities supported by the syslog facility of UNIX and possibly in the future, logging will be handed off to an external logging facility such as this.
By setting this property to a particular priority, all log messages of that priority or of higher priority will be logged. For example, a value of CRIT will log all CRIT, ALERT and EMERG messages. Setting the priority to DEBUG will enable all log messages. Finally, setting the priority to OFF will turn logging off completely.
This specifies the output file that log messages will be logged to. The special file "stderr" may be specified to output log messages to the console.
To run jftpd, type:
java rheise.jftpd.Serveror
java.rheise.jftpd.Server <port>
if you do not have privileges to bind to port 21. If you use a non-standard port (say, 7645), you can test jftpd using a web browser with a url such as:
ftp://server.host.edu:7645/path/to/file