CrushFTP is a Java FTP server for
Mac, Windows and Linux that also handles HTTP, HTTPS, SFTP, FTPS (FTP over
SSL), and WebDAV. Its major selling point is its ability to compress
transfers on the fly, thus speeding them up, in some cases significantly. I
took the recently released version 5.0.3 for a test run.
This multiplatform FTP server delivers more than it says on the tin, yet still isn’t quite all it could be.
Note that CrushFTP is a pay-for product (priced between $40 and $100 depending on how many
concurrent users you want to support); I tried out the 30 day trial shareware
Install and Setup
I downloaded the Windows/Linux zip file. The initial installation
instructions are straightforward. However, on Debian systems you’ll need to
create the /var/lock/subsys directory or edit the init script to keep
the lockfile elsewhere. After that, it seemed to run fine. I could connect
to the server but couldn’t actually log on, as no users were set up. It’s
possible to create users and manage server setup via the command-line, but
this isn’t well-documented, and you’ll need to edit undocumented XML files:
What you need to do next is to access the graphical interface.
I tried to follow the onsite documentation on running a headless Linux
install. However, it wasn’t terribly well-written, and when it got to the
“set up remote admin” stage, it referred me to one of the training videos. I
couldn’t find any other documentation for this stage. I accept that this may
be a personal preference, but I find training videos very unhelpful,
especially if that’s the only straightforward way of getting the required
information. Videos are slow, formats vary, and they have major
accessibility issues. I tried just running the .jar file via a
remote desktop to see if I could access the configuration setup that way, but
had little success.
I did eventually manage to get it running, once I found the user creation
command line in the very short Linux install docs. However, I couldn’t
determine where the FTP root directory was lcoated, so I still
couldn’t actually do any transfers. Unfortunately, as well as the video
issue, the ‘full docs’ aren’t really full – they don’t say anything
useful about the form of the XML files or on running the server from the
One disconcerting note if you’re running on Linux is that the documentation
is primarily for OS X, and the error messages often refer specifically to OSX.
It’s possible to work around this, but it does make life harder.
The default welcome message also still refers to version 4 rather than version
5; not a particularly important error, but a little offputting.
When I gave up on my Linux machine and tried installing on the Mac, things went much more smoothly. The message about needing to
get OS X authorization makes a lot more sense when the software is actually
running on OS X, for a start.
When configuring the server, you must set up users via the Java
interface; it seems that you can’t have it just use the user database that
already exists on your machine. There is an option to grab userinfo from an
SQL database, but that’s not the same thing as just using the existing
userinfo (because you’ll need to update it regularly, if nothing else).
I was also slightly confused about how to set up anon FTP; it turns out
that you just add the ‘anonymous’ user in the Users admin tab, and this is
then treated as a special user (you’re warned about this on creation), whereas
I was looking for a tick box somewhere in the options. Once I worked this
out, anonymous login and transfer worked fine.
Choosing which files to share is incredibly easy, though: Just drag and
drop, hit save changes and you’re done. The range of options available to
set in the configuration is also impressive, and they’re organised in a
I wasn’t able to do proper benchmarking, due to not being able to install
it on Linux. However, some basic comparisons against SCP didn’t show any
significant speed difference for the filetypes I tested. My guess is that the
speed increase will depend very much on what files you’re transferring (as
with any compression algorithm).
CrushFTP doesn’t give you a progress bar while you’re transferring files,
which is a little alarming, especially for larger files. I prefer to be able
to see that something is happening!
If you’re running a Linux server, I wouldn’t bother using CrushFTP. The lack of thorough Linux documentation, and the OSX-centric error and
information messages, are particularly offputting. However, if you’re running
a Mac OSX server, it’s worth looking into. It’s certainly easy to use and
very quick to get set up. My main criticism would be the apparent lack of any
way to tie it in to the existing user database – if your existing users
might want to use the server at all, it’s a real nuisance to have to add them
all over again.
Juliet Kemp has been messing around with Linux systems, for financial reward and otherwise, for about a decade. She is also the author of “Linux System Administration Recipes: A Problem-Solution Approach” (Apress, 2009).