1. 程式人生 > >解決雙網絡卡機器同時訪問內外網的問題

解決雙網絡卡機器同時訪問內外網的問題

以前為了方便測試,我在自己的電腦(不是伺服器)安裝了雙網絡卡,雙網絡卡接入的是兩個不同的網路但都可上網。最近為了搭建和測試VPN,我將其中一塊網絡卡接入一個小型內網(即不能訪問Internet),此時便遇到問題:只能訪問那個小型內網,卻無法訪問Internet,經查閱眾多解決方案後,覺得還是手動新增路有點比較好,同時區分優先權。

以下是系統環境與解決方案:

本機內網IP:192.168.3.172    子網掩碼:255.255.255.0  內網閘道器:192.168.3.240    (不可訪問Internet)

本機外網IP:192.168.1.199    子網掩碼:255.255.255.0  內網閘道器:192.168.1.1

      (可訪問Internet)

方案:

開啟“執行”〉輸入“CMD”,然後輸入以下命令:

route delete 0.0.0.0 mask 0.0.0.0 192.168.3.240             #刪除內網閘道器

route change 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 2          #改變預設外網閘道器優先權為2,220.184.16.118為外網分配的ip地址

route add 192.0.0.0 mask 255.0.0.0 192.168.3.240 metric 1     #新增內網路由點,且優先權設定為1

現在終於可以內網外網同時訪問了,但問題依然有,重啟之後這些更改就失效,需要重新配置,如果你會寫DOS批處理,可以在開機的時候自啟動就好了,以下是我寫的批處理參考:(複製到記事本,閘道器自己更改,然後把字尾改為.bat即可)

@ echo off

route delete 0.0.0.0 mask 0.0.0.0 192.168.3.240

route change 0.0.0.0 mask 0.0.0.0 192.168.1.1 metric 2

route add 192.0.0.0 mask 255.0.0.0 192.168.3.240 metric 1

很簡單吧,呵呵

其實也有更簡單的方法,只是上邊的方法適合測試或不常用雙網絡卡實現內外網的,但公司裡確實需要固定的,這就手動調整就顯得太麻煩了

下面再介紹一種方法:

首先介紹一下路由原理:雙網絡卡機器一般內網網絡卡ip都設定了閘道器地址,而windows預設閘道器只能有一個,不上外網的情況下預設閘道器就是內網閘道器,使用外網上網後預設閘道器自動改為外網分配的ip,可以使用route print

檢視,即所有資料流都流向外網網絡卡ip,導致此時不能訪問內網。用route print命令檢視此時的路由情況不難發現地址0.0.0.0(可以把0看成萬用字元)開始的路由點有兩個,一個是內網閘道器,一個是外網ip,而外網ip成了預設閘道器。因此我的思路是:不用內網閘道器,將內網閘道器做成永久路由點且僅過濾內網網段(192開頭的ip資料),而不改變外網的預設閘道器,這樣根據優先權,訪問內網的資料會從永久路由點走,其它資料從外網的預設閘道器走(路由表設定的特殊地址除外),從而達到目的。具體方法如下:
        到內網本地連線屬性設定中記住閘道器ip地址並刪除內網閘道器,執行CMD視窗,執行以下命令route -p add 192.0.0.0 mask 255.0.0.0 192.168.3.240(建立永久路由點),結束。這樣未連線外網時正常訪問內網,連線外網後能同時訪問內外網。

現在很多企業為了安全都是使用內外網的,希望以上資訊對你有所幫助

***************************************************

route add命令的主要作用是新增靜態路由,通常的格式是:
route ADD 157.0.0.0 MASK 255.0.0.0 157.55.80.1 METRIC 3 IF 2
引數含義:^destination ^mask ^gateway metric^ ^interface destination【網段地址】
mask【子網掩碼】
gateway【閘道器地址】
metric 【路由跳數】
if【埠號】
一般情況下,不涉及本機地址,除非你要做測試。 其中:
可以省略【路由跳數】引數;
當通往該閘道器地址的路徑唯一時,【埠號】引數可以省略。(因為在多埠的路由交換裝置上,可能存在通往同一個IP地址的多條備份路徑。)
mask 是關鍵字,不能省略。 route add 134.105.0.0 mask 255.255.0.0 134.105.64.1
意思是:所有需要發往134.105.0.0/16地址段的IP資料包,全部由134.105.64.1路徑轉發。 這個命令在大型IP網路組建時經常用到,在不同廠商的裝置上命令格式可能不同,但原理是一樣的。 如果有多條路由,根據不同的路由協議(比如rip, ospf等)的規定,一般優先選擇網段地址小的路由。比如,當以下兩條路由同時被新增的時候:
route add 134.105.0.0 mask 255.255.0.0 134.105.64.1
route add 134.105.128.0 mask 255.255.128.0 134.105.0.1
目標地址是134.105.128.1的IP包會優先選擇第二條路由。
***************************************************