Getting Started With CrushFTP
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.
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 version.
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 command line.
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 sensible way.
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).