Linux setup default gateway with route command

last updated in Categories , , , , ,

How do I setup default gateway with a route command on a Linux operating systems?

You can use the route command to show and/or manipulate the IP routing table under a Linux and UNIX-like operating systems. Modern Linux based operating system recommend the ip command to set the IP routing table.


[donotprint][/donotprint]The route command manipulates the kernel’s IP routing tables. Its primary use is to set up static routes to specific hosts or networks via an interface after it has been configured with the ifconfig program. When the add or del options are used, route modifies the routing tables. Without these options, route displays the current contents of the routing tables.

Display default route

Following three-command display the current routing table:
# route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface     *        U     0      0        0 ra0
default         dsl-router         UG    0      0        0 ra0

$ /sbin/route

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface   *        U     0      0        0 eth0     *          U     0      0        0 eth0
default         UG    0      0        0 eth0

You can use -n option, to display numerical addresses instead of trying to determine symbolic host names (via dns or /etc/hosts file). This is useful if you are trying to determine why the route to your nameserver has vanished.
$ /sbin/route -nOutput:

Kernel IP routing table
Destination     Gateway         Genmask         Flags Metric Ref    Use Iface   U     0      0        0 venet0     U     0      0        0 venet0         UG    0      0        0 venet0

Please note that a destination entry (or default) is the default gateway. In above example is a default gateway.

Add / setup a new route

The syntax is as follows:

route add default gw {IP-ADDRESS} {INTERFACE-NAME}


  • IP-ADDRESS: Specify router IP address
  • INTERFACE-NAME: Specify interface name such as eth0

For example if your router IP address is type the following command as the root user:
# route add default gw eth0
OR use hostname such as dsl-router:
# route add default gw dsl-router eth0
Or use the ip command (newer syntax) to route all traffic via gateway connected via eth0 network interface:
# ip route add dev eth0
# ip route add via

Setting route using GUI tools/command under Linux

If you find above command hard to use, consider using GUI tools. If your are using Red Hat/CentOS/Fedora core Linux type following command:# redhat-config-networkOR If you are using other Linux distribution use command:# network-admin

See also


Posted by: Vivek Gite

The author is the creator of nixCraft and a seasoned sysadmin, DevOps engineer, and a trainer for the Linux operating system/Unix shell scripting. Get the latest tutorials on SysAdmin, Linux/Unix and open source topics via RSS/XML feed or weekly email newsletter.

32 comment

  1. Running BT3 on an eeePC, I’ve been finding that I have to run:

    # route add -net dev ath0

    to get my wireless to connect to the internet.

  2. when i used the command, i got the following error:

    # route add default gw eth4
    SIOCADDRT: No such process

    could you please guide me?

    1. I was getting that, too. Turns out I was putting in the wrong interface. Use the ‘route’ command without any parameters, and confirm that the network is really attached to interface eth4. My problem now is that the server keeps ‘forgetting’ my default gateway, even though it’s in my /etc/network/interfaces file:

      auto eth0
      iface eth0 inet static

      What gives?

      1. It may still be pulling that info from another file. Check to make sure if it’s pulling the info from either a copy or original /etc/network/interfaces file.

  3. Works on Natty 11.04 on ASUS G73sw laptop. Thanks for script! Ubuntu Devs should have already noticed and fixed this issue. Shame on them.

  4. Hi All friends

    Im going to Configure a Linux Gateway server for my LAN. It will locate in between router and my LAN.

    I used 192.168.0.x private ip range for my LAN PCs. and im expecting to configure firewall, nat, proxy on that gateway server

    who can guide me to do that.

    Im new for linux and im interesting Linux


  5. What is the difference between you example using this command:
    # route add default gw eth0

    And inserting the gateway in the file below?
    # vi /etc/sysconfig/network

  6. Thank you for the info. Worked like a charm on RHEL 5.8 x64 server.
    Question: are changes made with route command persistent? or do they revert on network restart or server restart?

    Still, have a question? Get help on our forum!