linux-多网卡首选上网卡和路由配置
To make packets with destinations 192.168.10.* use eth0, and all other packets use eth1:
- View your current routing table
ip route list
One entry will be something like “default via 192.168.1.1” where 192.168.1.1 is your router (a.k.a. gateway) ip address. Remember the gateways for eth0 and eth1, as we’ll need them later.
- Delete the default route(s). (Warning: this will kick you offline.)
1 | ip route del default |
- Add a new default route (this will bring you back online). Replace 192.168.1.1, below, with your gateway ip address from above.
1 | ip route add default via 192.168.1.1 dev eth1 |
- Add a specific route that will be served by eth0. More-specific routes automatically take precedence over less-specific ones.
1 | ip route add 192.168.10.0/24 via 192.168.1.1 dev eth0 |
- Finally, you can ask Linux which interface will be used to send a packet to a specific ip address:
1 | ip route get 8.8.8.8 |
If the configuration worked, packets to 8.8.8.8 (Google’s server) will use eth1. Packets to any ip on your local network:
1 | ip route get 192.168.10.7 |
will use eth0.