FileZilla ftp client

Transport Manager


High-performance GUI-based ftp clients for Linux are hard to find. The graphical FileZilla ftp client closes the gap.

By Thomas Leichtenstern

Although the name might lead you to think otherwise, FileZilla has nothing in common with the Mozilla project. The FileZilla project, which was launched in 2001 by Tim Kosse [1], was the SourceForge "Project of the Month" [2] in November 2003. In version 3, the developers have recoded the ftp client, which was originally released for Windows only, and ported the results to Linux and Mac OS X [3].

Besides a neat GUI, the GPL2-licensed ftp client includes features that put some commercial competitors to shame. Proxy support is included, as is support for encrypted protocols, such as FTPS, FTPES, or SSH File Transfer Protocol. A file and directory filter make sure that you only see what you are looking for. The program includes a download limiter, which lets you restrict the number of uploads and downloads and the maximum transfer speed.


FTPS: Ftp via SSL. Encrypts the control and data channels of an ftp connection during the transfer process.
FTPES: Ftp via Explicit SSL. With this FTPS variant, control channel encryption has to be triggered explicitly by clear text commands.
SSH File Transfer Protocol: Advanced SCP (secure copy) variant that not only provides encrypted data transfer but also supports modifying remote files.
FXP: The File Exchange Protocol supports transferring of data from one ftp server to another, with the client acting as a proxy.

Installation

FileZilla has made its way into the repositories of all the major distributions and can be installed by your distro's native package manager. Ubuntu users will need to enable the Universe repository, which only has the 3.0.0 through 3.0.1 versions, compared with the current 3.0.7. Because versions above 3.0.5 include various new features that I will be referring to in this article, it makes more sense to download the generic, pre-built package from the project homepage [3].

After the download, copy the tarball to the /opt folder and unpack at the command line with the command:

tar xfvj FileZilla_3.0.7_i586-linux-gnu.tar.bz2

Clicking on /opt/FileZilla3/bin/filezilla launches the program. When first launched, the application creates a .filezilla folder below its home directory, which is where the configuration files are stored.

Configuration

The first settings are configured with the assistance of the network configuration wizard, which you can launch by clicking the item in the Edit menu. The wizard guides you step by step through the network configuration and provides a detailed description for each item you are prompted to configure.

Settings that relate to the client connection, transfer, or view are accessed via the Settings dialog, which you can access via the Edit | Settings menu. Connection lets you specify whether the client should use active or passive ftp to contact the server [4]. The Active mode and Passive mode items let you set up the details.

The input dialog for proxy support configuration appears by clicking FTP Proxy. To avoid consuming all the available bandwidth, you can restrict the upload or download speed in the Transfers dialog. The Threshold item lets you specify whether FileZilla should apply these restrictions strictly or less so. The speed limit applies to the sum total of current downloads. Simultaneous transmissions share the bandwidth you specify. The Concurrent transfers area lets you set the number of simultaneous transfers the program will allow (Figure 1).

Figure 1: The Transfers selection allows you to restrict download and upload speeds.

Also, you can configure the View to suit your own taste. In File and Directory View:, the options are Explorer, Classic, Widescreen, and Billboard. Because the program applies the changes immediately, you can watch the program window to decide whether you like the new view. The Designs category gives you the option of changing the widget sets, but not the window layouts.

Edit remote file takes you to the settings for the new feature added in version 3.0.5 that lets you edit text files on the ftp server just like local files. To use this feature, just enter the path to your Default editor:.

Site Manager

FileZilla has multiple options for connecting to a server. For example, it has a quick connection below the menu icons, much like the address bar in a web browser. To use the quick connection feature, just fill out the fields and click Connect. The server stores a history of the sites you visit, and you can click the down arrow next to the Connect button to access them. As of this writing, the program does not have a feature for opening a server directly in the Site Manager.

The Site Manager works like the bookmarks in a web browser but has far more functionality. Clicking the Opens the site manager icon on the far left of the menu bar launches the Site Manager. Clicking the New Folder button lets you organize sites in directories that you create. To bookmark a server, first click the directory where you want it to appear, and then click New Site. Because you cannot shift entries around between folders, it makes sense to create a meaningful directory structure before you start creating entries.

Clicking on a server listed in the right window panel opens the corresponding settings. In the General tab, enter the connection data and server type (ftp, SSH File Transfer Protocol, etc.). The Advanced tab lets you specify standard directories for the client to use locally and remotely after logging on (Figure 2). The Transfer settings tab lets you decide whether to use active or passive ftp [4]. After completing an entry, you can just double-click to open a connection.

Figure 2: The Advanced tab lets you specify directories.

Data Traffic

The FileZilla GUI is divided into four vertically tiled areas. The top area shows the log entries, besides displaying the current status and any errors that have occurred. In Explorer mode this is followed by the local and remote directory listings. The program shows files tagged for downloading in a queue at the bottom of the window (Figure 3).

Figure 3: The GUI is divided into four vertically tiled areas.

In the local and remote directory tree area, the left panel shows a directory tree, whereas the content of the selected folder is displayed on the right. To copy files or folders, just drag and drop to the target directory. As an alternative, you can drag files and folders to the queue manager at the bottom of the window, where they move from the currently selected folder to the directory tree at the opposite end of the connection. Double-clicking a file achieves the same results. FileZilla supports cross-program drag and drop, for example, from Konqueror to the remote directory, but only from the local machine to the server and not vice versa.

FileZilla processes files and directories from the queue sequentially and independently of the download source. The program does not support changes to the download order, and it lacks a function for pausing individual files in the queue. The queue runs in a separate instance from the ftp browser, and this makes it possible to access other ftp servers while a download is in progress. At the bottom of the program module, you can use the tabs to switch between the successful and failed transfer views. The Transfer Queue tab shows the download queue.

When you relaunch the application, the download is not lost, but it is in a wait state. To continue downloading, right-click an entry and select Process Queue in the context menu. If a download is partially complete, you are prompted to decide how FileZilla should handle this; you can decided to continue, overwrite, rename, or skip.

If you want to perform an action after completing the download, such as quitting FileZilla or sounding an audible warning, right-click the entry in the queue and select Action after processing queue. You can even execute a command that you enter via Enter command.... FileZilla does not currently support FXP.

Miscellaneous

In Edit, the import/export function lets users back up and restore the configuration files. Depending on the selection, FileZilla will either save just the client configuration or will include the server data in filezilla.xml. The file is stored in the user's home directory. The only problem with this is that the program stores the login passwords for the server's bookmarks in the clear, just as it stores them in the ~/.filezilla/sitemanager.xml and ~/.filezilla/recentservers.xml configuration files. Security-conscious users will want to avoid storing passwords for remote ftp hosts in Site Manager.

The file filter function is particularly useful for searches in directories with large numbers of files (View | File Filter...), and it lets you create any number of filters, which you can apply to the directory by clicking. The three-tier mechanism has filter set, filter, and rule layers. In theory, different filter sets let you manager groups of filters. In our lab, I managed to create multiple filter sets, but all of them contained the same rules. A deletion in one set removed the rule from the others.

To create a new filter, click Edit Filter... in the Filter for folder content window. This pops up a window in which you can type a name for the filter after clicking New. The name is then displayed in the selection list. To add rules to a filter, click on Add more, which displays a line with two drop-down menus and a text box. Here you can specify the criteria for the rules and create multiple rules for a filter, such as the minimum size and file extension. In our lab, when I tried to copy filters by pressing Copy, version 3.0.5.2 of the program crashed reproducibly. However, the author posted a bug fix on the CVS just two hours after my bug report, removing the issue in all later versions.

To apply filters to a directory, click on the directory to open it in the FileZilla Browser window. Then select View | File filter to open the Filter for Folder Content dialog and select the filters you want to apply locally or server-side.

The new View | Compare directories function added in version 3.0.5 makes it easier to synchronize local directories with those on the connected server. You can select whether the tool should compare by file size or time stamp. FileZilla highlights differing entries in yellow.

The option of using a previously selected text editor to edit ASCII files on the remote server just like local files is also new. To use it, right-click the file in question and select View/Edit in the drop-down list. This tells the ftp client to copy the file to the local temporary directory and back to the server when stored.

Conclusions

On Linux, FileZilla has just raised the bar for GUI-based ftp clients. The well-organized and mature program offers many useful features, from the independent download queue through highly granular file filters. Plus, unlike many other open source projects, FileZilla has excellent documentation [5].

Of course, nobody is perfect, not even FileZilla. FileZilla saves server passwords in the clear in XML files, which is an unnecessary vulnerability. That said, the maintainers are working hard to remove the project's rough edges. The response time of not even two hours from a bug report to a bug fix on CVS is quite impressive.

INFO
[1] FileZilla: http://filezilla-project.org
[2] SourceForge "Project of the Month": http://sourceforge.net/potm/potm-2003-11.php
[3] FileZilla download: http://sourceforge.net/project/showfiles.php?group_id=21558
[4] Wikipedia on ftp: http://en.wikipedia.org/wiki/File_Transfer_Protocol
[5] FileZilla wiki: http://wiki.filezilla-project.org/Documentation