1. 程式人生 > 其它 >關於自動根據情況通過不同網絡卡傳送資料的方案

關於自動根據情況通過不同網絡卡傳送資料的方案

目前有兩個網路,一個可以直接連結外網,一個是公司私有的內網,而印表機是在內網中的,也就是說如果我現在正在跟人用微信聊天,突然需要列印,我需要先從外網切換到內網,然後用內網印表機,使用完成以後再修改回外網。

想到的解決方案是同時使用無線網絡卡和有線網絡卡,然後手動修改路由表,根據資料傳送的destination自動選擇網路。這裡是windows修改路由器的方法
以下為路由表的名詞解釋:

1)名詞解釋:
Active Routes:活動的路由
Network destination :目的網段
Netmask:子網掩碼
Gateway:閘道器,又稱下一跳路由器。在傳送IP資料包時,閘道器定義了針對特定的網路目的地址,資料包傳送到的下一跳伺服器。如果是本地計算機直接連線到的網路,閘道器通常是本地計算機對應的網路介面,但是此時介面必須和閘道器一致;如果是遠端網路或預設路由,閘道器通常是本地計算機所連線到的網路上的某個伺服器或路由器。
Interface:介面,介面定義了針對特定的網路目的地址,本地計算機用於傳送資料包的網路介面。閘道器必須位於和介面相同的子網(預設閘道器除外),否則造成在使用此路由項時需呼叫其他路由項,從而可能會導致路由死鎖。
Metric:跳數,跳數用於指出路由的成本,通常情況下代表到達目標地址所需要經過的跳躍數量,一個跳數代表經過一個路由器。跳數越低,代表路由成本越低,優先順序越高。
Persistent Routes:手動配置的靜態固化路由
2)第一條路由資訊:預設路由
當系統接收到一個目的地址不在路由表中的資料包時,系統會將該資料包通過192.168.99.8這個介面傳送到預設閘道器192.168.99.1。
3)第二條路由資訊:本地環路
當系統接收到一個發往目標網段127.0.0.0的資料包時,系統將接收發送給該網段的所有資料包。
4)第三條路由資訊:直連網段的路由記錄
當系統接收到一個發往目的網段192.168.99.0/24的資料包時,系統會將該資料包通過192.168.99.8這個介面傳送出去。
5)第四條路由資訊:本地主機路由
當系統接收到一個目標ip地址為本地網絡卡ip地址的資料包時,系統會將該資料包收下。
6)第五條路由資訊:本地廣播路由
當系統接收到一個發給直連網段的本地廣播資料包時,系統會將該資料包從192.168.99.8這個介面以廣播的形式傳送出去。
7)第六條路由資訊:組播路由
當系統接收到一個組播資料包時,系統會將該資料包從192.168.99.8這個介面以組播的形式傳送出去。
8)第七條路由資訊:廣播路由
在系統接收到一個絕對廣播資料包時,系統會將該資料包通過192.168.99.8這個介面傳送出去。
9)Default Gateway(預設閘道器)
二、windows路由表操作
windows路由表的設定主要通過route命令,ROUTE命令格式如下:
ROUTE [-f] [-p] [command [destination] [MASK netmask] [gateway] [METRIC metric] [IF interface]
其中 –f 引數用於清除路由表,-p引數用於永久保留某條路由(即在系統重啟時不會丟失路由)。
Command主要有PRINT(列印)、ADD(新增)、DELETE(刪除)、CHANGE(修改)共4個命令。
Destination代表所要達到的目標IP地址。
MASK是子網掩碼的關鍵字。Netmask代表具體的子網掩碼,如果不加說明,預設是255.255.255.255(單機IP地址)。如果代表全部出口子網掩碼可用0.0.0.0。
Gateway代表出口閘道器。
其他interface和metric分別代表特殊路由的介面數目和到達目標地址的跳數,一般預設。

注意要管理員模式的cmd,比較難理解的地方是子網掩碼這部分

以下是我自己使用的

// 新增:
route add -p 192.168.1.2 mask 255.255.255.0 192.168.1.1 metric 1 if 1
// 刪除:
route delete 192.168.1.2 mask 255.255.255.0 192.168.1.1 metric 1 if 1


這裡不知道為什麼我不加引數(-p)會報引數錯誤,必須帶引數
由於公司網路內網為網線,外網為wifi,因此使用該方法還要讓wifi的優先順序高於乙太網:

// 新增:
route -p add 0.0.0.0 mask 0.0.0.0 192.168.2.1 metric 2
// 刪除 刪除後記得重新聯網
route delete 0.0.0.0 mask 0.0.0.0 192.168.2.1 metric 2