WRT54GL, Tomato firmware and Filezilla FTP Server

Alrighty folks, first entry.

I have recently switched firmwares on my Linksys WRT54GL from DD-WRT, which has, despite its bloatedness, always served me well, to the Tomato firmware.

The first thing you’ll notice is the entirely different Web-Interface. Everything is based heavily on AJAX, so the load on the firmware’s HTTP server is reduced. Additionally, configuring becomes a lot more “fluent”, as only the values that the Web-Interface presents you with, are being reloaded, instead of the entire page.

Second thing that jumps at you is going to be the Bandwidth meter. It shows – in realtime – how much down- and upstream are being used. They are using Scalable Vector Graphics for the generation of the graphs, which is interpreted on a client-basis, so again: no stress to the router.

Another important feature, that, in my opinion, also shows how Tomato is superior to DD-WRT, is Tomato’s QoS settings. The Basic settings are quite basic – they are used for the definition of classes that will later on represent different priorities. This section isn’t too different from DD-WRT’s. The easy configuration that takes place in “Classification”, as well as the again svg-driven, beautiful connection and bandwidth distribution graphs under “View Graphs” will blow your mind. This part of the firmware shows a great piece of AJAX-programming, and in my opinion, elevates Tomato to one of, if not THE best firmware of WRT54g/gl/gs routers out there.

As I set up the priorization rules for different kinds of traffic however, i stumbled over an issue. Outbound connections from my local Filezilla FTP Server would not be recognized as FTP-connections by any QoS rule using the Layer7 FTP filter.

I took a look at the file and my (fairly poor) understanding of regular expressions used in these filters led me to understand, that the pattern demanded, that after the ftp 220-command, a string containing “ftp” was to follow. Looking at the RFC for the FTP, i found, that the string the pattern file required wasn’t considered mandatory in the RFC. As it turns out, there are a lot of FTP Server programs that have “ftp” standing in their 220-command due to the fact that it usually contains the application’s name. Filezilla FTP Server appears to be different here – its standard greeting message (which is, while connecting, displayed after the 220-command) is as follows:

written by Tim Kosse (Tim.Kosse@gmx.de)
Please visit http://sourceforge.net/projects/filezilla/

Noticed anything? No “ftp” in there. That exactly is, what prevents the firmware from recognizing the ftp connections.

Obviously, you can easily fix this by going into the Filezilla FTP Server Interface, navigating through the menus to Edit/Settings/General Settings/Welcome message and just adding a “ftp” somewhere in there. This would for instance be a solution that deviates the least from the default message:

FTP %v
written by Tim Kosse (Tim.Kosse@gmx.de)
Please visit http://sourceforge.net/projects/filezilla/

But you really just need an “ftp” in there, so throw in a little fantasy. Afterwards, a rule using the Layer7-FTP-filter will work just fine.



– thread that discussed the phenomenon


– tomato support forums on linksysinfo.org

Leave a Reply

Fill in your details below or click an icon to log in:

WordPress.com Logo

You are commenting using your WordPress.com account. Log Out /  Change )

Twitter picture

You are commenting using your Twitter account. Log Out /  Change )

Facebook photo

You are commenting using your Facebook account. Log Out /  Change )

Connecting to %s