1. 程式人生 > >在Linux下使用兩張網絡卡的設定(gateway)

在Linux下使用兩張網絡卡的設定(gateway)

轉載自http://astone-working.blogspot.com/2012/05/linux.html

參考資料

1. 鳥哥的Linux私房菜--第八章、路由觀念與路由器設定

2. 兩張網絡卡,不能2個gateway嗎?

在一些場合,需要讓同一臺電腦,用兩張不同的網絡卡,來做不同的事情,今天要說的就是這個。最常應用的狀況就是:一個網絡卡用於對內網路,一個網絡卡用於對外網路。

 

設定如下:

一般我們現在用的NB通常會有ethernet介面跟wifi介面,我們假設要用wifi連上internet(前題是wifi 熱點已經可以上網),用ethernet連私有網路。

 

wifi設定應該如下:

wlan_IP: 192.168.0.X

Submask: 255.255.255.0

以上資料由熱點的DHCP提供。


ethernat設定如下:

eth0_IP: 172.16.0.X

Submask: 255.255.255.0

以上資料由內部的DHCP提供。

 

我們要做的事:

1. 先查出這兩張網絡卡的gateway.

我的方式比較簡單,只要停用其中一個網絡卡,利用 route -n 即可知道。如:

Destination = 0.0.0.0 的那一行就是default gateway.

 

我們可以用這個方式查出兩個gateway的IP.

 

2. 查出 route的設定

完成之後,將兩張網絡卡都啟動,再次執行route -n,察看目前預設的route狀況

 

3. 修改route成我們要的方式

因為 linux環境中只能有一個 default gateway,所以我們可以先用下列指令新增default gateway.

sudo route add default gw {default_gateway_ip1}

用下列指令將不要的default gateway 移除

sudo route delate default gw {default_gateway_ip2}

但是這樣做只是將大家的default gateway換掉,並沒有做到分開。

為了要將內網/外網分開,所以我們要加一條指令,設定封包流動的方法

route add -net 172.16.0.0 netmask 255.255.0.0 gw 172.16.100.1

上面這一條指令的意思就是,只要是要到172.16.*.*的封包,都請傳送到172.16.100.1的gateway。

其餘的就請透過 default gateway來傳送。