windows下配置路由,解決內外網同時上掉線的問題,路由掉線
這是個最基本的網路知識了,可前些天遇到這個問題,發現快忘完了,就在這記下來吧。
基本原理
首先上兩張圖
正確的路由設定下的網路包流向
有兩個預設路由設定的網路包流向
你的電腦同時串連內外網,會向不同的地址發送很多網路包,首先的機器上會緩衝一個路由表,你的網卡根據這個路由表,決定你的網路包下一站的地址是哪。
正常情況下,訪問特別網段地址都會設定路由,比如訪問10.11.12.0/24段的包因為符合路由條件
10.11.12.0 255.255.255.0 10.11.12.1
因此,它會被導向到10.11.12.1這個網關地址,然後去找自己的目的的。
而那些沒有符合的路由條件的包,則會一股腦的跑到預設路由的地址上去,即
0.0.0.0 0.0.0.0 192.168.1.1(預設閘道)
但是,如果你的機器緩衝中有兩個預設網管,如下面那個圖所示
那麼那些本來找不到要去哪的包就會有兩條路可走,即
一條0.0.0.0 0.0.0.0 192.168.1.1-----可正常找到百度Google的路
一條0.0.0.0 0.0.0.0 10.11.12.1-----找不到百度Google的路
所以,當你訪問百度Google的時,有些請求包走著192.168.1.1的路,有些就會走另外一條。
走192.168這條路的包能因為包丟失,返回不了結果,走另外一條路的包則直接進了死胡同,直接被丟掉了。
所以,你的網路會出現,網路不穩定的情況。因為有時候一批包都走192.168那條路,你訪問外網正常,一會一批包走錯路了,你就又上不去外網了。
所以,在一台電腦上,只能設定一條預設路由,而這條預設路由是要能走通外網的網關。
而對於對內網地址的訪問,你只需要針對你要訪問的內網網段設定合適的路由,那麼這些放回就不會因為找不到路而跑到預設網管上面去。
基本就是這個道理。
說下基本設定(windows環境下)
查看本機快取路由表
cmd裡面執行
route print
裡面會有兩種路由,臨時路由和永久路由,臨時路由是你重啟就會消失的,而永久路由重啟機器依然存在。
增加一條路由
route add 10.11.12.0(網路地址) mask 255.255.255.0(子網路遮罩) 10.11.12.1(網關地址)
刪除一條路由
route delete 10.11.12.0(網路地址)
改變一條路由
route change <span style="font-family: Arial, Helvetica, sans-serif;">10.11.12.0(網路地址) mask 255.255.255.0(子網路遮罩) 10.11.12.2(網關地址)
永久路由的問題
上面增加的路由為臨時路由,若想使之變成永久路由,可在
route add 命令的最後使用參數 -p。
不過我這裡不推薦增加永久路由,因為永久路由刪除比較麻煩。而且你可以把你要增加的路由寫進一個批次檔中,每次雙擊執行就行了。
但是,如果你機器中已經存在了一條永久路由,要刪除它,需要在註冊表
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\services\Tcpip\Parameters\PersistentRoutes]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet001\services\Tcpip\Parameters\PersistentRoutes]
[HKEY_LOCAL_MACHINE\SYSTEM\ControlSet002\services\Tcpip\Parameters\PersistentRoutes]
下找到對應的條目刪除。
這個方法,我曾在xp系統上實驗,都是每次直接成功,但在window 7系統實驗的時候則遇到了些問題,沒法順利刪除。
所以,還是不建議使用永久路由吧。