I have my network set up like this:

present network architecture

In words: I have a machine (Calcium, running Arch Linux) that has two network interfaces. Interface eth0 is hooked up to a router, and is gigabit. Interface eth1 is hooked up directly to the university network over 10Megabit. The router's uplink is hooked up to the university network as well, and it is also 10Megabit.

Currently (I believe) all traffic on Calcium is going through eth0, through the router, regardless of whether it is internal or external. (How can I confirm this?)

Ideally, traffic that is destined for the internal network ( would travel over eth0 to the router, and wherever it is going. ALL other traffic should go over eth1.


2 Answers 2


Your network routing table will determine how the packets are routed. You can add additional routes or change the default gateway to affect the routing.

If you would like additional assistance, please provide your routing table.

To display the routing table:

/sbin/route -n

To delete default gw:

/sbin/route del default gw $IP

To add default gw:

/sbin/route add default gw $IP

For additional details, check out the manpage. There are other ways to manipulate and display the routing table as well.

netstat -r to display and ip to manipulate further.

  • 1
    13 years later: THANK YOU! I have a small server at home and its listeners suddenly stopped responding after I connected a second network interface to it. I simply rearranged the defaults by doing del & add default GWs and everything started working the same second.
    – dimitarvp
    Jul 23, 2023 at 16:13

Here's the complete answer, in case it helps others:

To make packets with destinations 192.168.10.* use eth0, and all other packets use eth1:

1) View your current routing table

ip route list

One entry will be something like "default via" where is your router (a.k.a. gateway) ip address. Remember the gateways for eth0 and eth1, as we'll need them later.

2) Delete the default route(s). (Warning: this will kick you offline.)

ip route del default

3) Add a new default route (this will bring you back online). Replace, below, with your gateway ip address from above.

ip route add default via dev eth1

4) Add a specific route that will be served by eth0. More-specific routes automatically take precedence over less-specific ones.

ip route add via dev eth0

Finally, you can ask Linux which interface will be used to send a packet to a specific ip address:

ip route get

If the configuration worked, packets to (Google's server) will use eth1. Packets to any ip on your local network:

ip route get

will use eth0.


You must log in to answer this question.

Not the answer you're looking for? Browse other questions tagged .