Java FTP Proxy Server allows FTP clients to connect through a firewall if it is run on a firewall machine. Some clients have built-in support for proxies like this, but it can be used by any FTP client. The proxy is written entirely in Java and can thus be run by administrators as well as by the users themselves.
This program will help you if you are behind a firewall and do not have FTP access to the Internet, but you have access to machine that has. It will then work as proxy server and in that way let you connect to FTP servers outside the firewall. It is also possible to do it the other way around, i.e. gain FTP access from the Internet to beyond the firewall (make sure this wont constitute a security hazard).
The proxy is extremely small and light-weight and can be run by almost anyone. Originally I wrote the program because I was behind a firewall that did not allow FTP, but I did have shell access to a machine inside the firewall but with full internet access.
The proxy machine should have Java 1.1 or better installed. You start the program with java FtpProxy. The default port is 8089. Before you start the program, you might want to restrict access to the server, so that it wont constitute a security hazard in your firewall. Use the allow_from and/or the bind_address directives in the configuration file. A sample configuration file is included in the download. The file itself contains a lot of explanation of the various options. Currently no further documentation of the configuration file exists.
As of version 1.3.0 the configuration variables may also be specified on the command line, e.g. java FtpProxy --bind_port=1234. In addition to those variables listed in the sample configuration file, --config_file=myconfig.conf may also be specified in order to use a different configuration file than the default, ftproxy.conf. In earlier versions (≤ 1.2.4) only the port number could be specified on the command line: java FtpProxy 1234.
If your FTP client supports proxying of the type "USERID=user@site", just enter the proxy computers name and the preferred port number in your client, and you should be up and running. If your FTP client does not support that you will have to connect to the proxy machine on the predefined port using user@site[:port] as login, where user is your username for the remote FTP host, site is the name of the latter and port is the port number on which the FTP server is running (if omitted, the standard port, 21, is assumed).
What's New in This Release:
· Race condition fixed, validate_data_connection configuration variable and other sanity/security checks added (thanks to Kenneth Golomb). Ability to specifiy configuration variables on the command line added.