這文章的前半段是 就是要上網 – 透過手機 主要是討論如何透過改 Routing Table 修改網路走的路徑
當你有多個網路埠的時候有什麼方式可以讓個人電腦同時可以自己選擇從哪一個埠出去.
這時候可以設定個人電腦的 Routing Table (告訴封包要從哪一個網路埠出去) 即可!
Windows
先來看一下目前的 IP 狀況
C:\Users\BENJR\ipconfig Windows IP 設定 乙太網路卡 區域連線 4: 連線特定 DNS 尾碼 . . . . . . . . : 連結-本機 IPv6 位址 . . . . . . . : fe80::8059:a5ac:6971:43d3%18 IPv4 位址 . . . . . . . . . . . . : 192.168.42.52 子網路遮罩 . . . . . . . . . . . .: 255.255.255.0 預設閘道 . . . . . . . . . . . . .: 192.168.42.129 乙太網路卡 區域連線: 連線特定 DNS 尾碼 . . . . . . . . : benjr.com 連結-本機 IPv6 位址 . . . . . . . : fe80::e875:a079:72b3:c4f3%10 IPv4 位址 . . . . . . . . . . . . : 10.32.78.136 子網路遮罩 . . . . . . . . . . . .: 255.255.252.0 預設閘道 . . . . . . . . . . . . .:
假設你有兩個網段 10.32.78.136 (只有10.0.0.0的網路從這邊出去) 與 192.168.42.52 (其他的封包從這邊出去)
將下列的 routing table 寫成一個 Windows 的 bat 檔案(xx.bat)
route delete 0.0.0.0 route add 0.0.0.0 mask 0.0.0.0 192.168.42.129 route add 10.0.0.0 mask 255.0.0.0 10.32.76.1
10.32.76.1 是 10.0.0.0 的 Gateway
192.168.42.129 是 其他封包的 Gateway
這指令需要透過系統管理員身分執行才可以.
看一下 Routing Tables 的改變
C:\Users\BENJR>route print IPv4 路由表 =========================================================================== 使用中的路由: 網路目的地 網路遮罩 閘道 介面 計量 0.0.0.0 0.0.0.0 192.168.42.129 192.168.42.52 11 10.0.0.0 255.0.0.0 10.32.76.1 10.32.78.136 11 ===========================================================================
你可以很清楚看到前兩行 大部分的網路是透過 192.168.42.129 出去的,如果遇到 10.0.0.0 (10 開頭的網段) 還是透過 10.32.76.1
透過 tracert www.google.com 你可以很明顯看到網路是由 192.168.42.129 出去的.
C:\Users\BENJR>tracert www.google.com 在上限 30 個躍點上 追蹤 www.google.com [74.125.203.103] 的路由: 1 <1 ms <1 ms <1 ms 192.168.42.129 2 * * * 要求等候逾時。 3 32 ms 30 ms 30 ms 10.156.65.1 4 38 ms 23 ms 30 ms 10.156.67.42 5 124 ms 211 ms 19 ms 10.156.67.6 6 93 ms 31 ms 30 ms 10.156.67.18 7 25 ms 20 ms 26 ms 210-65-126-98.HINET-IP.hinet.net [210.65.126.98] 8 45 ms 28 ms 42 ms r4005-s2.tp.hinet.net [220.128.3.162] 9 36 ms 28 ms 31 ms tyfo-3011.hinet.net [220.128.8.81] 10 21 ms 23 ms 35 ms 220-128-8-169.HINET-IP.hinet.net [220.128.8.169] 11 26 ms 30 ms 36 ms 74.125.49.158 12 36 ms 35 ms 22 ms 209.85.243.26 13 90 ms 66 ms 40 ms 209.85.252.167 14 * * * 要求等候逾時。 15 46 ms 36 ms 38 ms 74.125.203.103
Linux
Linux 下的 Routing Table 跟 Windows 是一樣的,指令也差不多, 一樣使用 route add 來新增 Routing 規則,
# route [-f] [-p] [Command [Destination] [mask Netmask] [Gateway] [metric Metric]] [if Interface]]
常用的大概就這一些.
add: 新增一條路由 Routing
del: 刪除一條路由 Routing
-net: 指定網段
netmask: 網路遮罩
gw: 路由 Routing table 閘道
檢視當前路由表 Routing table
# route # route -n
新增一條路由+閘道
# route add -net 172.16.0.0 netmask 255.255.255.0 gw 172.16.0.254
刪除一條路由
# route del -net 172.16.0.0 netmask 255.255.255.0 gw 172.16.0.254