How to Add a Static TCP/IP Route to the Windows Routing Table

By Walter Glenn on December 20th, 2016


In some specific types of environments, you might find it useful to add a static route to the routing table in Windows. Here’s how to go about it.

A routing table dictates where all packets go when they leave a system—whether that system is a physical router or a PC. Most routers—including the one built into your Windows PC—use some form of dynamic routing, where the router is capable of selecting the best place to forward packets based on information it gets from other routers. You can see it at work if you use the traceroute command to watch the connections a packet makes as it reaches it’s final destination.

Most routers also allow you to add a static route (one that doesn’t get dynamically updated) if you want to always forward certain traffic to a specific router or gateway. Why? Well, most people using Windows in their home or small business probably won’t—but this can be useful under certain circumstances, such as:

  • You have two internet connections—maybe one for regular use and one for connecting to a work network—and you want all traffic to a certain IP address range to go out over one of those connections.
  • You have set up multiple subnets on your network and need to direct traffic to a particular subnet. Static routes can be particular useful in testing these types of environments.
  • You’re actually using a Windows PC as a router for your network and you want finer control over it.

If any of those apply to you, read on. You’ll need to dive into the Command Prompt to add a static route to the Windows routing table, but it’s easy and we’ll walk you through the steps.

View the Windows Routing Table

Before you get started adding routes, it may be helpful to view the routing table first. Fire up Command Prompt by hitting Windows+X and then selecting “Command Prompt (Admin)” on the Power Users menu.


Note: If you see PowerShell instead of Command Prompt on the Power Users menu, that’s a switch that came about with the Creators Update for Windows 10. It’s very easy to switch back to showing the Command Prompt on the Power Users menu if you want, or you can give PowerShell a try. You can do pretty much everything in PowerShell that you can do in Command Prompt, plus a lot of other useful things.

At the Command Prompt, type the following command and hit Enter:

route print


You’ll see a long list of network destinations and the gateways to which packets are forwarded when they are headed to that destination. Unless you’ve already added static routes to the table, everything you see here will be dynamically generated.

Add a Static Route to the Windows Routing Table

To add a static route to the table, you’ll type a command using the following syntax:

route ADD destination_network MASK subnet_mask  gateway_ip metric_cost

The subnet_mask and metric_cost components are optional to the command. If you don’t specify a subnet mask, will be used automatically. If you don’t specify a metric cost, a cost one greater than the destination entry will be used. The metric cost value is just a cost that is relative to other costs in the table and is used when Windows decides between multiple routes that could reach the same destination.

So, for example, if you wanted to add a route specifying that all traffic bound for the subnet went to a gateway at and you just wanted to use the automatic metric cost, you would use the following command:

route ADD MASK


If you were to use the route print command to look at the table now, you’d see your new static route.


That’s all easy enough, but there is one extra little catch. When you add a static route, by default it only lasts until the next time you start Windows. The reason for this is that many companies use a coordinated list of static routes that gets updated fairly often. Rather than adding and updating all those routes on every machine, they just distribute a batch script file that adds the newest routes during Windows startup. This keeps the routing table relatively uncluttered.

You could certainly use the batch script method yourself. Writing batch scripts isn’t hard. But if you’re just adding one or two static routes that you don’t expect to change often, you can instead just add the -p option to the command to make the route persistent. A persistent route stays in place even when Windows starts up. Using the same command we used earlier, you could make that route persistent with the following modification:

route -p ADD MASK


Remove a Static Route from the Windows Routing Table

Of course, there will come a time you might want to remove a static route from your table. All you have to do is type a command using the following syntax:

route delete destination_network

So, to delete the route we created earlier with the destination network, all we’d have to do is type this command and hit Enter:

route delete


Yes, using static routes is a bit esoteric when it comes to managing most home and small business networks. But if you do need to do it, it’s a pretty easy process. And if you don’t need to do it right now, at least you know it’s an option in the future.

Walter Glenn is a long time computer geek and tech writer. Though he's mostly a Windows and gadget guy, he has a fondness for anything tech. You can follow him on Facebook and Twitter.

  • Published 12/20/16
More Articles You Might Like

Enter Your Email Here to Get Access for Free:

Go check your email!