前些日子我給筆記本配了一個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開源的發展做出貢獻...