翁桑我最近需要利用無線網路卡上網,但是卻需要用有線網路卡連線到區域網路。
不幸的是接上可愛的 USB無線網路卡,網路不會聰明的從無線網路連線出去 Orz…
為了要上msn的我(噓…),花了一點時間研究了如何在Windows XP完成這個目標。
經過幾個小時的奮鬥,過濾無數個亂回答、錯誤答案、虎爛的指引(就是被騙去看其他沒用的方法)等等…
終於被我試出來了!! 哈哈哈!!
以下就是我的作法:
首先,先來介紹一些名詞
Network Destination: 表示路由的網路目的地,可以是 IP 網段或IP位址。
Net mask:表示子網路遮罩,用來配合 Network Destination 的運算。
Gateway:是封包欲送往的 IP 位址,如果目的 IP 位址與 Net mask 作 AND 邏輯運算,剛好與 Network Destination 相同,封包就會送到此 Gateway 的 IP 位址。
Interface: 是此電腦送出封包的 IP 位址。
Metric: 則是傳送成本的參考數字,通常與網路連接速度有關,Windows XP 本身有自動計算 Metric 的能力, 100Mbps 的網路速度 Metric 設為 20,迴路(loopback)的 Metric 設為 1,越低的 Metric 表示速度越快。
以上這些名詞都是在 命令提示字元 模式下,打上route print會出現的。(顯示目前路由表狀態)
再來介紹一下常用的route指令介紹
● route add 用來加入路由路徑
例如:route add 192.168.0.0 mask 255.255.0.0 192.168.1.1 if 0x2 metric 20
格式:route add Network Destination、Net mask、Gateway、Interface 和 metric。
● route -p add 用來永久加入路由路徑,使用-p 參數可以保留路徑設定,不會因為電腦重開機而消失。
● route delete用來刪除路由路徑。
例如:route delete 192.168.0.0 mask 255.255.0.0
● route change用來修改現有的路徑設定。
例如:route change 192.168.0.0 mask 255.255.0.0 192.168.1.1 if 0x2 metric 10
大致上了解後,我們開始實際測試
操作環境:
1. 無線網卡 x 1,負責對外網路
2. 有線網卡 x 1,負責區域網路
步驟:
1. 刪除兩個0.0.0.0 mask 0.0.0.0的route rule。(因為有兩張網路卡,所以會有兩個)
每一個代表所有IP位址都會經由該網路卡連線出去,但是各metric不同,可以發現有線網路卡的metric是20而無線網路卡的是25,所以Default Gatway是經由有線網路卡出去,導致所有封包都會被指派到有線網路卡。
指令:route delete 0.0.0.0
2. 將所有IP位址設定經由無線網路卡連線。
指令:route add 0.0.0.0 mask 0.0.0.0 192.168.1.254 metric 25
3. 將區域網路的IP位址設定經由區域網路卡連線。
指令:route add 172.0.0.0 mask 255.0.0.0 172.16.13.254 metric 1
經由以上三行指令修改過後,只要是172.*.*.*的IP都會經由有線網路卡連線。其它的IP位址都會經由無線網路卡連線。因為172.*.*.*走有線網路卡的metric只有1,所以優先走有線網路卡。
為了重開機後可以還原route table,所以沒有使用 -p 的指令。但是每次開機不就要再重新設定嗎…
放心,翁桑我沒那的呆,大家可以先建立一個 xxx.bat 的檔案,然後在裡面打上需要輸入的三行指令(可用記事本編輯)
然後存檔就好了!只要副檔名是*.bat裡面的每一行都會自動在 命令提示字元 執行。
如此每次重開機後,只要滑鼠點兩下該檔案,一瞬間就設定完成,這樣就不怕動到原有設定了。
下圖為設定後路由表狀態