linux下雙網卡做主機

前些日子我給筆記本配了一個U口網卡,這是由於寢室沒有臺式,前些日子好不容易整了一個臺式的電腦,可是沒有雙網卡啊,用網通的時候homeshare, 再加之這破windows系統的不穩定,網通老是掉線,昨天我產生了個想法,用我的linux做主機,雙網卡全寢室共享上網。這樣在linux穩定的支持 下,不用任何路由軟件就能夠實現共享上網。

然而在linux下配置雙網卡是有一定難度的,一個設計到軟路由的問題,還有一個設計到firefox與網通客戶端不兼容的問題。
今天早上忙活了一早上,終於解決了這個問題,現在寢室可以共享上網了,很是開心啊......
下面把方法記錄一下,便於以後用,也給linux菜鳥們一些提示。

首先我介紹一下東北大學專用網通的拓撲結構吧:
將網通寬帶主線插到你的第一個網卡,也就是eth0;然後從交換機接一網線到網卡2,也就是eth1;

然後配置我的主機:兩網卡的設置:
eth0:配置其自動獲取IP地址,配置DNS爲 :首選202.96.75.68 備選202.96.64.68
eth1:192.168.1.1 掩碼:255.255.255.0   網關爲空:                      #局域網內與其它各分機的匹配設置
客戶機子網段:192.168.1.0~255

以上只設置eth0和eth1.先不要激活eth1,只激活eth0; 讓eth0自動獲取外網的IP地址。

接着繼續設置,這裏我在網上查了一下有兩種方法:

一種是用NAT方法
在主機終端上做下面兩條指令:
#echo "1" > /proc/sys.Net/ipv4/ip_forward                   #打開IP轉發,1表示轉發;0表示不轉發
#iptables -t nat -A POSTROUTING -o eth0 -j MASQUERADE        #打開NAT,關於iptables命令的規則下面我會介紹一下
這時候就已經給eth0做好了轉發和eth1的共享,其它分機就可以共享了,然後就是激活你的eth1了。

我就是通過這種方法來實現共享的,這種方法比較簡單易用,兩行命令就能夠實現了。

下面這種方法就是通過linux的網橋軟件來搭建一個網橋,
#echo "1" > /proc/sys.Net/ipv4/ip_forward
#ifconfig eth0 0.0.0.0 up
#ifconfig eth1 0.0.0.0 up
#brctl addbr br0           #添加一個網橋
#brctl addif br0 eth0
#brctl addif br0 eth1      #將eth0 eth1加到網橋中去
#ifconfig br0 192.168.1.1.Netmask 255.255.255.0 broadcast 192.168.1.255 up  
#給網橋分配IP地址,如果不做NAT,也不需要遠程訪問網橋的話,可以不設IP地址,但必須啓用網橋(ifconfig br0 up)
#route add default gw 202.96.168.68 #如果網橋不需要訪問其他機器的話,可以不添加網關。
第二種方法我不推薦,因爲自己建立網橋必須清楚地認識網橋的配置,明白brctl的使用,這樣做成功的機率不大,我試了一下沒有成功就不再試了,既然第一種NAT方法比較簡單還是先用第一種吧,
第二種等以後再慢慢研究它啊..........呵呵

接下來就是客戶機的設置了,客戶機有linux,也有xp的,我覺得大多數寢室的客戶機應該是xp吧,沒關係,都 一樣的方法
如果是linux客戶機,那麼eth0:192.168.1.1~255 掩碼:255.255.255.0 網關:192.168.1.1
如果是xp的客戶機,那麼網絡連接tcp/ip協議設置:IP:192.168.1.1~255 掩碼:255.255.255.0 網關:192.168.1.1


這樣就實現了雙網卡的共享了,接下來你要用linux登錄網通的客戶端,firefox下地址欄輸入:http://202.96.75.14/queryPort.jsp?userIp=221.200.*.*&newbl=1
上面的221.200.*.*就是你eth0自動獲得的IP地址,如何得到這個IP地址呢?
#ifconfig
看到eth0的IP就行了,將上面那個IP改成你得到的IP,就能登錄了,這個是方法是xiaomao101原創的,我在這裏借來一用,呵呵
這樣做有個不好的地方就是沒有網通的計時框,不過這個我覺得也沒有什麼用,能上網就行了,管它多長時間呢,反正網通是不計流量和時間的。
(注意:我在fedora 8下用的時候環境變量有問題,因此在執行#ifconfig,還有#route的時候,顯示bash: ifconfig: command not found
這樣就是你的環境變量有問題,解決方法看看這篇文章就明白了,我就不寫出來了:http://hi.baidu.com/lengyuex/blog/item/20d2221fd4178067f624e4dc.html)

其實也有人提出來說登錄網通的客戶端可以在linux的wine下用IE來實現,這樣我沒有試過,應該理論上是完全可以實現的,但是使用linux的人是痛恨用wine這樣的虛windows的,所以我不想用它。
還有一個問題就是如果你在使用網橋brctl的時候也顯示找不到的話,有可能你沒有裝這兩個軟件uml-utilities 和bridge-utils,安裝上才能找到,
安裝的方法用yum就行了,如果你的yum源不能用,配置一下,看看我的blog,http://hi.baidu.com/lengyuex/ 有詳細的配置方法。
#yum install bridge-utils
就能做到了)

這些都是我在配置的過程中遇到的問題,拿出來跟大家分享一下,也許有的人還會遇到更多的問題,建議你自己google一下,也可以提出來我們共同解決,呵呵,非常樂意的。

下面介紹一下上面提到的iptables命令:

iptables命令格式

iptables [-t nat] CMD [chain] [rule-matcher] [-j target]

-t nat:表示操作nat表

CMD:爲操作命令

chain:爲鏈名

rule-matcher:爲規則匹配器

target:爲目標動作


iptables -t nat -F #清除原有的nat表中的規則
iptables -F #清除原有的filter有中的規則
iptables -P FORWARD ACCEPT #缺省允許IP轉發


祝用linux的朋友們能夠共同進步,取得成績........爲linux開源的發展做出貢獻...

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章