Tomato is a powerful third-party firmware for your router, but tweaking the software makes it even more powerful. We’ll be showing you our 5 favorite tips for Tomato routers to help speed them up and help you get your work done… faster!

If you’re scratching your head at what Tomato is, check out our guide to installing it and come back when you’re done for some handy tips. This guide assumes you’re running Tomato version 1.28. We will be demonstrating all examples on a Linksys WRT54GL.  So grab your router, a computer, and a fire extinguisher (just kidding) and let’s get started!

1) Increase Your Wireless Signal

Sometimes your router’s wireless signal may not be reaching certain areas of your house. That’s a bummer, but you can fix that with a few simple steps inside Tomato. In most cases the easiest solution is to reposition your wireless router to the central point of the area you want covered. If you’ve already tried that and still need better coverage, increasing your wireless signal would be the next best, cost-effective method.

To start open up a web browser and navigate to your Tomato router. Click the Advanced link and then Wireless in the left sidebar. Further down on this page you’ll notice a section called “Transmit Power”. The default value for Tomato is 42mW (milliwatts). The maximum value that Tomato supports is 251mW, but we recommend not going over 70mW unless you’re willing to risk an overheated router with a significantly shortly lifespan.

2) Overclock Your Router’s CPU

Note: Before we begin with this tip, we should mention that we’re confident you won’t fry your router or burn your house down only if you follow the directions we provide exactly. We are not responsible for your cat walking across your keyboard when entering the overclocking commands. Got it? Let’s get started!

Overclocking your router has its advantages: faster responses from websites, faster downloads, and lower latency. At the very least, overclocking your router’s CPU gives you a faster response time between LAN connections and the router itself. There is almost no risk (when done properly) and it doesn’t involve understanding the multiplier system or front-side bus relationship.

However, each router has different clock frequencies that its CPU can handle. Check out the DD-WRT Wiki for more information about your router’s CPU and speed. We’re using a Linksys WRT54GL in this example and the default CPU clock speed that is set by Linksys is 200 MHz. The good news is that you can overclock up to another 50 MHz without doing any damage or extra cooling to your router! These are the clock frequencies the WRT54GL supports: (in MHz) 183, 188, 197, 200, 206, 212, 216, 217, 225, 238, 240, and 250.

Sounds good, right? All you have to do is enable SSH access on your router and run three simple commands. First, log in to your router and click the Administration link in the sidebar. Scroll down until you see “SSH Daemon”. Be sure that “Enable at Startup” is checked. Scroll down until you see “Password”. Type in a password for SSH access, and then click Save at the bottom.

Now that we have SSH access enabled on our router, let’s download a program that will allow us to access our router via SSH. We suggest using PuTTY for Windows and the built-in Terminal applications for Mac and Linux users. For this example we will be using PuTTY on Windows. Type in the IP address of your router and be sure that SSH is selected under Connection type. Click the Open button.

You will be prompted to login in as an username. Type “root” and hit Enter. Now you will be prompted for a password. Type in the password we set above earlier. Now type the following three commands and hit Enter after each one. Be sure to replace the 3 x’s with your desired clock frequency. Here are the valid clock frequencies again for your reference: 183, 188, 197, 200, 206, 212, 216, 217, 225, 238, 240, and 250. Do not type in anything else but one of these frequencies.

nvram set clkfreq=xxx
nvram commit

Your router will reboot. When it turns back on your router’s CPU will be set at whatever clock frequency you specified. Happy downloading!

3) Speed Up Device Discovery on Your Network

This nifty tricks is for Windows only and requires all computers to be on the same workgroup. By default Windows sets your workgroup name as WORKGROUP or MSHOME depending on if you own a professional or home edition of Windows. You can leave it as the default, but be sure that each computer on your network is also on this same workgroup. This trick allows your Tomato router to act as a server that logs the presence of each device on your network and serves this information as soon as it is requested. Network discovery of devices should be much faster and less of a hassle.

First, let’s change the WINS (Windows Internet Name Service) server IP address in the DHCP menu. Click Basic and scroll down until you see “DHCP Server”. Change the “WINS” IP address to Click Save at the bottom.

Next, click the USB and NAS link in the sidebar. The click the sub-link File Sharing. Make sure your workgroup name is set to the same workgroup name all your devices on your network. Then check both boxes next to “Master Browser” and “WINS Server”. Click Save at the bottom.

Now let’s make sure that our computer is actually using the WINS server we just set up.  Go ahead and open up a command prompt and type “ipconfig –all”. You may have to scroll down to see your current network adapter, but when you do look for the line that says “Primary WINS Sever”. Next to that you should see your router’s IP address. If you do not see your router’s IP address, try restarting your computer and running the command again. Sometimes the WINS server doesn’t update until a new IP is renewed from the DHCP server.

4) Set Up Access Restriction For Productivity

Access restriction never sounds like a good thing, but it is when you’re trying to get work done or when you want to keep certain people off certain parts of the web. Tomato’s Access Restriction feature allows you, the administrator, to create rules for your network. In the example below, we are going to set up a rule that will restrict us from going to certain websites that cause us to not get any work done. This rule will be effective on weekdays from 6 PM to 10 PM.

To start, log in to your Tomato router and click the Access Restriction link on the left sidebar.

From here, you’ll see a blank page with an “Add” button. When you click the “Add” button you’ll be brought to another page to set up a new restriction rule.

In the description field, enter anything that describes your rule (i.e. “Work Time”). Next, use the dropdown menus adjacent to “Time” and choose 6:00 PM and 10:00 PM.  Now uncheck the “Sun”, “Fri”, and “Sat” checkboxes next to “Days”. Adjacent to “Type”, we’re going to leave the “Normal Access Restriction” radio button marked. If you decide to choose the “Disable Wireless” option, it will completely disable your router’s wireless functionality for the duration you specified earlier. We’re not going to do that now because we want to restrict access to only one computer and not everyone who is using WiFi.

Adjacent to “Applies To” we want to click the dropdown menu and choose “The Following”. You’ll notice that Tomato is asking you for the MAC address or IP address the computer you want to restrict access to. If your computer isn’t set up to have a static IP address, it’s best to enter in your computer’s MAC address for reliability. To find your computer’s MAC address in Windows, open up a command prompt and type “ipconfig –all”. The 12 character string next to “Physical Address” is your computer’s MAC address. Enter this in Tomato without hyphens (Tomato will automatically add semicolons between every 2nd value) and click the “Add” button below.

At this point, your access restriction set up should look similar to ours below:

Finally, make sure you uncheck the “Block All Internet Accesss” box. If left checked, your computer won’t be able to access the Internet at all. A new set of options will appear. These options allow you to filter traffic based on protocols such as RDP (Remote Desktop Protocol) or  ICMP (Internet Control Message Protocol) to name a few. For this example, we won’t be dealing with protocols and are simply going to block access to certain websites by typing only their names into the “HTTP Request” text box.

There are also special characters you can use for HTTP requests that define your rule even further:$ (blocks everything ending with
^facebook (blocks everything beginning with facebook)
^$ (blocks the subdomain exactly)

Click the “Save” button near the bottom. Tomato will load the rule and soon after your websites will be blocked. Let the productivity begin!

To recap, the rule we defined blocks access to any HTTP request that contains the words “reddit”, “twitter”, “facebook”, and “linkedin” and begins with “plus” from the computer with the MAC address of 00:19:D1:81:02:AF. This rule is becomes effective at 6 PM on every weekday and ends at 10 PM. When you try to access these sites, you will see a connection reset error in your browser.

5) Set Up Quality of Service (QoS) Rules

Quality of Service rules give priority to more “important” Internet traffic. Think of QoS like rush hour traffic on a busy highway; every vehicle is moving at a slow pace because there too many people trying to get out (or in). When something important arrives on the highway, like an emergency vehicle, vehicles slow down even more and pull over to let the emergency vehicle drive faster. The emergency vehicle in this example is the traffic that you determine to be most important (Xbox Live) while the other vehicles are things you consider less important (BitTorrent traffic).

Now what determines which traffic is better than others? That’s completely up to you, and we’ll show you how to set that up in Tomato. We want to mention a quick side note before we begin: there is no “right” way to set up QoS rules. Everyone has different preferences as to which protocols/traffic are important to them. With that in mind, we’ll be showing you the basics of QoS rules and we’ll let you take over from there.

The first step is setting up our speed classes which dictate what protocols/traffic get the most or least bandwidth. Click QoS on the sidebar and then Basic Settings. Check off “Enable QoS” to activate the other options below.

Now we’re going to do a speed test on our Internet connection to see what our maximum bandwidth is. Head over to your favorite speed test website. We suggest using Find a server located near you geographically and begin the test. Take note of your upload speed in kilobits per second. If your test displays your speeds in megabits per second, just multiply it by 1024 to display the speed in kilobits. For example, my upload speed was 0.76 Mbps (don’t laugh!), so my speed would be 778 in Kbps. If you notice that your upload speed from the speed test is not near the upload speed your ISP advertises, run multiple tests and use the average of these tests.

Once you know your maximum upload speed, enter it in next to “Max Bandwidth” under “Outbound Rate/Limit”. You’ll notice Tomato will do some work for you by automatically adjusting the speed classes below.

Now let’s take note of the download speed from our speed test earlier. Convert that into kilobits per second and enter it in “Max Bandwidth” underneath “Inbound Limit”. This time Tomato won’t perform its magic and adjust the speed classes below, so we’ll have to manually do it ourselves. You can use the speed classes we used below or configure it specifically to your environment (which is what we recommend). These settings work for us in our environment. Click Save near the bottom of the page.

Now that we have our speed classes set up, we have to apply them to specified protocols/traffic. Click Classification underneath QoS in the sidebar to begin pairing speed classes with protocols.

This step of QoS rules is a bit tricky because, like we said earlier, everyone has different preferences over what protocols require the most or least bandwidth. You can take QoS into your own hands now, or stick around with us to see how we set up QoS on our network.

It helps having both the Classification page and Basic Settings page open in two separate tabs for reference. The first rule, and arguably the most important, we set up was WWW traffic. Now Tomato does a good job setting up this rule by default, so there’s not much tweaking we have to do. This rule gives the highest priority (between 622 – 778 kbit/s in our setup) to outbound traffic that goes through ports 80 (HTTP) and 443 (HTTPS). In order for traffic to be pushed through this class, it must not exceed 512 KB of data transferred outbound (upload). This helps ensure that huge file uploads (like copying a 4 GB .mkv video file to Dropbox) don’t fall into this class and hog all our bandwidth.

We’re going to set up one more rule that is very dear to us: Xbox Live. First, we’re going to set the source IP address to the static IP address of our Xbox console: Then we’re going to prioritize the traffic at the highest priority. Xbox Live uses port 3074, so any traffic that is originating from to delivering to will be in this class. We also set our L7 (Layer 7) filter to “xboxlive” just in case. Be careful adding too many L7 filters to multiple classes because it may bog down your router.

If you find that your Internet connection speeds aren’t that great after setting up your QoS rules, we suggest starting from scratch and redefining your rules and classifications. It might take you 3 or 4 times before you get it right, but once you do, you’ll be happy you put forth the effort.

That’s it for our list of Tomato tips. Your WiFi strength should be at its best along with faster device discovery on your network. Your QoS rules should help speed up your Internet connection all while getting more work done with access restriction rules. And with your new overclocked router, sending packets should be lightning fast! If you’re craving more tips, check out our guide to setting up OpenVPN on Tomato to access your network from anywhere in the world!

Images by Dugbee and spisharam