解決windows下配置多個網卡後無法訪問外網的問題

首先打開CMD,命令提示符下輸入route print查看系統路由表,此時一般會出現兩條路由:

network destination             netmask                 Gateway                       interface                      metric

           0.0.0.0                          0.0.0.0                 192.168.1.1                192.168.1.100                    3

           0.0.0.0                          0.0.0.0                 10.10.10.1                   10.10.10.20                        3

 可想而知,由於系統自動學習路由的關係,出現到目的網絡0.0.0.0,的多條默認路由,導致數據包轉發無法判斷走哪個網關和接口,所以無法訪問外網,在這裏我們需要留下10.10.10.1該條路由,因爲10.10.10.20屬於外網IP,屬於外網訪問的接口,具體操作命令如下:

route delete 0.0.0.0

由於該條命令的特性是會把所有到目的網絡0.0.0.0的路由條目刪除,所以我們還需要重新添加外網路由,即

route add 0.0.0.0 mask 0.0.0.0 10.10.10.1 metric 1 if 2

若內網應用無法訪問,可相應地添加內網路由,即

route add 192.168.1.0 mask 255.255.255.0 192.168.1.1 metric 1 if 1

完了之後再訪問一下外網測試看看

下面再簡單介紹一下route命令的一些用法

----------------------------------------route 分割線----------------------------------------

以下是route命令基本格式:

route  [-p]   [-f]  [command]  [destination]   [MASK  netmask]     [gateway]     [METRIC  metric]    [IF interface]

從左往右各選項含義依次爲

-p 加上此參數可以使路由條目永久生效,默認情況下路由條目是重啓後消失

-f  刪除所有非默認路由條目,加上這個選項可以先清除再改動

[command]有以下幾個選項:

print  列出路由表

add   增加路由條目

delete  刪除路由條目

change  更改路由條目,且僅能用來更改網關gateway和跳數mertic

當命令選項爲列出打印和刪除的時候,即print和delete,可使用正則表達式的*和?,*表示匹配任意長度字符,?表示匹配任意單個字符

[destination]

即目的主機,可以是網絡地址或者主機地址,也可以使用位於系統分區:/windows/system32/driver/etc/目錄下的networks文件裏描述的別名

[MASK netmask}

即子網掩碼,格式爲mask 255.255.255.0,若不指定,默認子網掩碼爲255.255.255.255,需要注意的是當子網掩碼跟目的網絡/主機不匹配的時候,即子網掩碼跟目的網絡/主機的地址進行二進制的按位“與”運算,得出的結果跟目的網絡/主機不相同的時候,會提示掩碼不合法錯誤

[gateway]

即所經過的網關,也可以使用位於系統分區:/windows/system32/driver/etc/目錄下的hosts文件裏描述的別名

[Metric metric]

即到達目的網絡/主機所經過的跳數,格式爲metric 3

[IF interface]

即所使用的接口(網卡),格式爲if 2,若不指定,則系統會自動選擇合適的網卡

下面舉幾個常用的例子:

route add 192.168.1.0 mask 255.255.255.0 192.168.1.1 metric 1 if 1      //意爲增加一個從1號網卡出去的經過192.168.1.1網關的到192.168.1.0/24這個網絡的路由

route delete 157.0.0.0/  route delete 157* / route delete 15?   //刪除匹配157.0.0.0 ,157*和15?的路由條目

route print / route print 157* / route print 15?        // 列出所有,匹配157*和15?的路由條目

route change 157.0.0.0 mask 255.0.0.0 157.55.80.5 metric 2 if 2    //更改原路由條目

 

PS:本文基於windows下route命令幫助文檔翻譯整理,有錯漏的地方希望大家指正

 

 

 

 

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