卡路由配置:從原理到實(shí)操解決內(nèi)外網(wǎng)沖突)
電腦上插了兩塊網(wǎng)卡一根網(wǎng)線接辦公內(nèi)網(wǎng)一根網(wǎng)線接寬帶外網(wǎng)結(jié)果要么外網(wǎng)上不去要么內(nèi)網(wǎng)系統(tǒng)打不開(kāi)這個(gè)場(chǎng)景估計(jì)不少人都撞上過(guò)。問(wèn)題不在網(wǎng)卡本身而在 Windows 的路由表——兩塊網(wǎng)卡各自帶著默認(rèn)網(wǎng)關(guān)系統(tǒng)不知道該把數(shù)據(jù)往哪兒送于是“打架”。這篇文章就把雙網(wǎng)卡配置這件事徹底講清楚從原理到實(shí)操再到排障照著做就能讓外網(wǎng)和內(nèi)網(wǎng)各走各的路互不干擾。1. 雙網(wǎng)卡配置到底在解決什么問(wèn)題1.1 為什么兩塊網(wǎng)卡會(huì)“打架”很多人以為網(wǎng)卡插上就能用兩塊網(wǎng)卡自然就是兩個(gè)網(wǎng)絡(luò)都能上。實(shí)際上 Windows 在同一時(shí)間只會(huì)選擇一個(gè)默認(rèn)網(wǎng)關(guān)也就是“所有數(shù)據(jù)包的默認(rèn)出口”。當(dāng)內(nèi)網(wǎng)網(wǎng)卡和外網(wǎng)網(wǎng)卡都配置了網(wǎng)關(guān)時(shí)系統(tǒng)會(huì)按自動(dòng)躍點(diǎn)數(shù)Metric選一個(gè)作為默認(rèn)網(wǎng)關(guān)另一個(gè)被晾在一邊。于是你看到的典型癥狀就是外網(wǎng)偶爾能上但慢得離譜或者內(nèi)網(wǎng)系統(tǒng)徹底打不開(kāi)又或者重啟一次網(wǎng)絡(luò)就換了一種“抽風(fēng)”方式。這個(gè)問(wèn)題的本質(zhì)是路由決策。Windows 每發(fā)一個(gè)數(shù)據(jù)包都會(huì)拿目標(biāo) IP 和路由表逐條比對(duì)先匹配掩碼范圍再比較躍點(diǎn)數(shù)最后決定從哪個(gè)網(wǎng)卡出去。內(nèi)網(wǎng)地址段如果沒(méi)被路由表精確命中數(shù)據(jù)包就會(huì)跑到默認(rèn)網(wǎng)關(guān)去而默認(rèn)網(wǎng)關(guān)是外網(wǎng)的內(nèi)網(wǎng)包自然就丟了。反過(guò)來(lái)外網(wǎng)數(shù)據(jù)包如果被內(nèi)網(wǎng)網(wǎng)卡搶了默認(rèn)路由就會(huì)發(fā)到內(nèi)網(wǎng)網(wǎng)關(guān)網(wǎng)關(guān)一看目標(biāo)不是內(nèi)網(wǎng)地址直接丟棄外網(wǎng)就斷。1.2 路由表的基本概念配置雙網(wǎng)卡前先理解路由表的四個(gè)核心字段字段含義舉例網(wǎng)絡(luò)目標(biāo)數(shù)據(jù)包要去的地址段10.10.0.0網(wǎng)絡(luò)掩碼地址段的范圍大小255.255.0.0網(wǎng)關(guān)下一跳設(shè)備的 IP10.10.0.1接口從哪塊網(wǎng)卡發(fā)出10.10.5.100Windows 判斷一個(gè)數(shù)據(jù)包走哪條路由關(guān)鍵是“最長(zhǎng)匹配”原則掩碼越長(zhǎng)、范圍越精確的路由優(yōu)先級(jí)越高。比如目標(biāo) 10.10.1.50 同時(shí)命中 0.0.0.0/0 和 10.10.0.0/16 兩條路由時(shí)系統(tǒng)一定走后者因?yàn)樗难诖a更長(zhǎng)、更精確。這就是雙網(wǎng)卡配置的理論基礎(chǔ)——你不需要?jiǎng)h除默認(rèn)路由只需要給內(nèi)網(wǎng)地址段添加一條更精確的靜態(tài)路由內(nèi)網(wǎng)流量就會(huì)自動(dòng)走內(nèi)網(wǎng)網(wǎng)卡其余流量繼續(xù)走外網(wǎng)默認(rèn)路由。提示雙網(wǎng)卡配置的核心思想不是“讓兩塊網(wǎng)卡同時(shí)上網(wǎng)”而是“讓不同的流量走不同的網(wǎng)卡”。默認(rèn)路由只能有一條剩下的靠精確路由來(lái)分流。2. 動(dòng)手之前先理清網(wǎng)絡(luò)拓?fù)?.1 采集網(wǎng)絡(luò)信息別上來(lái)就敲命令雙網(wǎng)卡配置翻車(chē)十有八九是沒(méi)搞清楚網(wǎng)絡(luò)地址段就開(kāi)始操作。我的建議是先花五分鐘把信息摸清楚再?zèng)Q定怎么配。按 Win R 輸入cmd打開(kāi)命令行執(zhí)行ipconfig /all重點(diǎn)看兩塊網(wǎng)卡各自的信息IPv4 地址、子網(wǎng)掩碼、默認(rèn)網(wǎng)關(guān)、DNS。把結(jié)果抄下來(lái)確認(rèn)哪個(gè)網(wǎng)卡對(duì)應(yīng)外網(wǎng)哪個(gè)對(duì)應(yīng)內(nèi)網(wǎng)。一般辦公環(huán)境里外網(wǎng)網(wǎng)卡可能是 DHCP 自動(dòng)獲取地址段常見(jiàn)是 192.168.x.x 或 172.16.x.x內(nèi)網(wǎng)網(wǎng)卡通常是固定 IP地址段多為 10.x.x.x 或 172.16.x.x。接下來(lái)再看當(dāng)前路由表route print -4這里會(huì)列出所有 IPv4 路由。你大概率會(huì)看到兩條 0.0.0.0/0 默認(rèn)路由分別指向兩個(gè)網(wǎng)關(guān)其中一條的躍點(diǎn)數(shù)更小系統(tǒng)就選了它。這就是問(wèn)題的根源。2.2 確定配置策略的幾個(gè)關(guān)鍵問(wèn)題在動(dòng)手前先回答下面幾個(gè)問(wèn)題哪個(gè)網(wǎng)卡有訪問(wèn)互聯(lián)網(wǎng)的能力只有這個(gè)網(wǎng)卡的默認(rèn)網(wǎng)關(guān)需要保留。內(nèi)網(wǎng)有哪些地址段是單個(gè)網(wǎng)段還是多個(gè)網(wǎng)段比如 10.10.0.0/16 和 172.16.3.0/24有幾個(gè)內(nèi)網(wǎng)段就要加幾條路由。內(nèi)網(wǎng)網(wǎng)關(guān)是多少內(nèi)網(wǎng)網(wǎng)卡的網(wǎng)關(guān)要作為靜態(tài)路由的下一跳地址。內(nèi)網(wǎng)網(wǎng)卡用 DHCP 還是靜態(tài) IP如果內(nèi)網(wǎng)網(wǎng)卡走 DHCPIP 變化會(huì)導(dǎo)致路由失效強(qiáng)烈建議內(nèi)網(wǎng)網(wǎng)卡改成靜態(tài) IP。這些信息決定了下文的配置方案。如果內(nèi)網(wǎng)只有一個(gè)網(wǎng)段靜態(tài)路由方案最省事如果內(nèi)網(wǎng)網(wǎng)段很多或者你不想維護(hù)一堆路由規(guī)則可以試試調(diào)整接口躍點(diǎn)數(shù)的方式后面會(huì)講到。2.3 事先確認(rèn)連通性配置之前先用 ping 測(cè)試一下當(dāng)前狀態(tài)作為基線ping 外網(wǎng)網(wǎng)關(guān)IP ping 內(nèi)網(wǎng)網(wǎng)關(guān)IP如果內(nèi)網(wǎng)網(wǎng)關(guān)都 ping 不通說(shuō)明網(wǎng)線、IP、防火墻這些基礎(chǔ)問(wèn)題還沒(méi)解決這時(shí)候配置路由沒(méi)有意義。順便說(shuō)一句有些內(nèi)網(wǎng)設(shè)備會(huì)禁 ICMPping 不通不代表網(wǎng)絡(luò)不通可以再試試訪問(wèn)內(nèi)網(wǎng)的具體服務(wù)端口比如telnet 10.10.1.50 8080能通就說(shuō)明鏈路是好的只是不響應(yīng) ping 而已。3. 兩種主流配置方案3.1 方案一靜態(tài)路由最精準(zhǔn)也最常用這是我最推薦的方式思路很簡(jiǎn)單內(nèi)網(wǎng)網(wǎng)卡只負(fù)責(zé)內(nèi)網(wǎng)網(wǎng)段外網(wǎng)網(wǎng)卡負(fù)責(zé)其余所有流量。實(shí)現(xiàn)方式就是添加一條或多條指向內(nèi)網(wǎng)網(wǎng)段的靜態(tài)路由。具體步驟分為三步第一步給內(nèi)網(wǎng)網(wǎng)卡配置固定 IP。打開(kāi)“網(wǎng)絡(luò)和 Internet 設(shè)置” - “更改適配器選項(xiàng)”找到內(nèi)網(wǎng)網(wǎng)卡右鍵屬性雙擊“Internet 協(xié)議版本 4 (TCP/IPv4)”填入內(nèi)網(wǎng) IP、子網(wǎng)掩碼。關(guān)于網(wǎng)關(guān)這一欄我的建議是先留空網(wǎng)關(guān)只作為后面靜態(tài)路由的下一跳參數(shù)使用不需要填在這里。如果某些內(nèi)網(wǎng)環(huán)境必須填網(wǎng)關(guān)才能通那就填上但后續(xù)要在“高級(jí)”設(shè)置里把自動(dòng)躍點(diǎn)數(shù)調(diào)大或者干脆用下方命令行的方式處理。第二步添加靜態(tài)路由?;氐焦芾韱T命令行執(zhí)行route add 10.0.0.0 mask 255.0.0.0 10.10.0.1 -p這條命令的含義是凡是目標(biāo)地址在 10.0.0.0/8 范圍內(nèi)的數(shù)據(jù)包下一跳交給 10.10.0.1內(nèi)網(wǎng)網(wǎng)關(guān)。-p參數(shù)表示持久化路由重啟后仍然有效。這里有幾個(gè)參數(shù)要解釋清楚10.0.0.0是內(nèi)網(wǎng)地址段的起始地址。255.0.0.0是子網(wǎng)掩碼兩者配合決定了路由覆蓋的范圍。10.10.0.1是內(nèi)網(wǎng)網(wǎng)卡的網(wǎng)關(guān)數(shù)據(jù)包會(huì)從內(nèi)網(wǎng)網(wǎng)卡發(fā)到這個(gè)地址再由它轉(zhuǎn)發(fā)。-p對(duì)應(yīng) persistent不寫(xiě)的話重啟就丟。第三步驗(yàn)證。執(zhí)行route print -4確認(rèn)路由已經(jīng)寫(xiě)入然后分別 ping 內(nèi)網(wǎng)和外網(wǎng)的地址測(cè)試。注意route add命令需要管理員權(quán)限。普通權(quán)限的命令行執(zhí)行會(huì)報(bào)“需要提升權(quán)限”的錯(cuò)誤。3.2 方案二調(diào)整接口躍點(diǎn)數(shù)適合內(nèi)網(wǎng)網(wǎng)段多的情況如果你所在的內(nèi)網(wǎng)有十幾個(gè)網(wǎng)段一條條加路由太痛苦這時(shí)可以用另一種思路讓內(nèi)網(wǎng)網(wǎng)卡接管所有“非外網(wǎng)”流量。做法是把內(nèi)網(wǎng)網(wǎng)卡的接口躍點(diǎn)數(shù)調(diào)低外網(wǎng)網(wǎng)卡的躍點(diǎn)數(shù)調(diào)高這樣當(dāng)兩條路由的匹配精度相同時(shí)系統(tǒng)會(huì)優(yōu)先走躍點(diǎn)數(shù)小的網(wǎng)卡。操作路徑網(wǎng)卡屬性 - IPv4 - 高級(jí) - 取消“自動(dòng)躍點(diǎn)”手動(dòng)填入一個(gè)數(shù)值。內(nèi)網(wǎng)網(wǎng)卡填 10外網(wǎng)網(wǎng)卡填 20。原理是 Windows 給每條路由計(jì)算一個(gè)綜合躍點(diǎn)數(shù)數(shù)值越小優(yōu)先級(jí)越高。所有需要走默認(rèn)路由的流量會(huì)優(yōu)先從躍點(diǎn)數(shù)小的網(wǎng)卡出去。這個(gè)方案的好處是配置簡(jiǎn)單內(nèi)網(wǎng)網(wǎng)段再多也不用管壞處是它的分流粒度比較粗如果內(nèi)網(wǎng)和外網(wǎng)存在重疊地址段或者某些流量必須走特定網(wǎng)卡它就搞不定了。另外如果你的外網(wǎng)網(wǎng)卡同時(shí)承擔(dān)著其他網(wǎng)段的轉(zhuǎn)發(fā)躍點(diǎn)數(shù)法也可能誤傷。3.3 方案三命令行一步到位對(duì)喜歡腳本化的朋友可以直接在管理員命令行里完成全部配置。修改網(wǎng)卡靜態(tài) IP 可以用 PowerShellNew-NetIPAddress -InterfaceAlias 以太網(wǎng) 2 -IPAddress 10.10.5.100 -PrefixLength 16添加靜態(tài)路由也可以用 PowerShell 的等價(jià)命令New-NetRoute -DestinationPrefix 10.0.0.0/8 -NextHop 10.10.0.1 -InterfaceAlias 以太網(wǎng) 2 -PersistentNew-NetRoute的-Persistent參數(shù)相當(dāng)于命令行的-p。這種方式的好處是可以在一個(gè)腳本里完成 IP、網(wǎng)關(guān)、路由、DNS 的全部設(shè)置適合多臺(tái)電腦批量部署。內(nèi)網(wǎng) DNS 的配置可以用Set-DnsClientServerAddress -InterfaceAlias 以太網(wǎng) 2 -ServerAddresses 10.10.0.24. 實(shí)操演示一次典型的辦公場(chǎng)景配置4.1 場(chǎng)景說(shuō)明與參數(shù)規(guī)劃假設(shè)一個(gè)典型的辦公環(huán)境外網(wǎng)網(wǎng)卡通過(guò) DHCP 自動(dòng)獲取當(dāng)前 IP 為 192.168.1.100子網(wǎng)掩碼 255.255.255.0網(wǎng)關(guān) 192.168.1.1內(nèi)網(wǎng)網(wǎng)卡需要配置靜態(tài) IP 10.10.5.100子網(wǎng)掩碼 255.255.0.0內(nèi)網(wǎng)網(wǎng)關(guān) 10.10.0.1內(nèi)網(wǎng)里有一臺(tái) ERP 服務(wù)器地址是 10.10.1.50還有一條獨(dú)立的財(cái)務(wù)網(wǎng)段 172.16.3.0/24。配置目標(biāo)訪問(wèn) 10.10.0.0/16 和 172.16.3.0/24 走內(nèi)網(wǎng)網(wǎng)卡其余流量全部走外網(wǎng)網(wǎng)卡。4.2 完整配置步驟第一步設(shè)置內(nèi)網(wǎng)網(wǎng)卡靜態(tài) IP。在內(nèi)網(wǎng)網(wǎng)卡的 IPv4 屬性里填入IP 地址10.10.5.100子網(wǎng)掩碼255.255.0.0默認(rèn)網(wǎng)關(guān)留空DNS 可以填內(nèi)網(wǎng) DNS 服務(wù)器比如 10.10.0.2也可以暫時(shí)不填后面按需補(bǔ)。第二步添加兩條靜態(tài)路由。管理員命令行執(zhí)行route add 10.0.0.0 mask 255.0.0.0 10.10.0.1 -p route add 172.16.3.0 mask 255.255.255.0 10.10.0.1 -p這里第二條第掩碼是 255.255.255.0只覆蓋 172.16.3.0/24 這一個(gè)網(wǎng)段。如果你想偷懶也可以只加一條 172.16.0.0 mask 255.255.0.0 的路由把整個(gè) 172.16 段都交給內(nèi)網(wǎng)網(wǎng)關(guān)但這樣如果外網(wǎng)也有 172.16 段的資源就會(huì)被錯(cuò)誤地拐到內(nèi)網(wǎng)去。我的原則是路由覆蓋范圍寧小勿大只寫(xiě)確實(shí)需要走內(nèi)網(wǎng)的地址段。第三步驗(yàn)證。先看路由表route print -4確認(rèn)存在這樣幾條路由網(wǎng)絡(luò)目標(biāo)掩碼網(wǎng)關(guān)接口躍點(diǎn)數(shù)0.0.0.00.0.0.0192.168.1.1192.168.1.1002010.0.0.0255.0.0.010.10.0.110.10.5.1001172.16.3.0255.255.255.010.10.0.110.10.5.1001然后測(cè)試連通性ping 10.10.1.50 ping www.baidu.com兩個(gè)都能通說(shuō)明配置成功。4.3 用 tracert 驗(yàn)證流量走向ping 通只是第一步你還需要確認(rèn)流量確實(shí)走了正確的路徑。用 tracert 可以直觀看到數(shù)據(jù)包的下一跳tracert -d 10.10.1.50 tracert -d 8.8.8.8第一個(gè)命令的第一個(gè)跳點(diǎn)應(yīng)該是 10.10.0.1第二個(gè)命令的第一個(gè)跳點(diǎn)應(yīng)該是 192.168.1.1。如果第一個(gè)命令的跳點(diǎn)里出現(xiàn)了外網(wǎng)網(wǎng)關(guān)說(shuō)明路由沒(méi)生效回去檢查路由表的接口和網(wǎng)關(guān)是不是填錯(cuò)了。提示tracert -d里的-d參數(shù)表示不對(duì) IP 反向解析域名輸出更快也更容易讀。5. 翻車(chē)現(xiàn)場(chǎng)與排查技巧實(shí)錄5.1 常見(jiàn)問(wèn)題速查表現(xiàn)象可能原因處理方法配置完成后重啟路由丟失沒(méi)加-p參數(shù)重新用route add … -p添加內(nèi)網(wǎng)能通外網(wǎng)時(shí)斷時(shí)續(xù)內(nèi)網(wǎng)網(wǎng)卡也配置了默認(rèn)網(wǎng)關(guān)系統(tǒng)選了內(nèi)網(wǎng)作為默認(rèn)出口把內(nèi)網(wǎng)網(wǎng)卡的默認(rèn)網(wǎng)關(guān)清空外網(wǎng)能通內(nèi)網(wǎng)某臺(tái)機(jī)器不通靜態(tài)路由的掩碼覆蓋范圍不夠確認(rèn)內(nèi)網(wǎng)地址段補(bǔ)充路由規(guī)則路由表里添加了規(guī)則但流量不走接口 IP 變化舊路由失效刪除舊路由用新接口重新添加內(nèi)網(wǎng)網(wǎng)卡是 DHCPIP 變了路由失效DHCP 動(dòng)態(tài)分配導(dǎo)致 IP 漂移內(nèi)網(wǎng)網(wǎng)卡改成靜態(tài) IP加了路由之后某個(gè)網(wǎng)站打不開(kāi)網(wǎng)站的地址段恰好被靜態(tài)路由覆蓋流量被拐進(jìn)內(nèi)網(wǎng)檢查路由覆蓋范圍拆分成更精確的網(wǎng)段5.2 路由不生效的經(jīng)典排查思路先說(shuō)一個(gè)我踩過(guò)的坑用route add添加了靜態(tài)路由route print也能看到但流量就是不走這條路。后來(lái)發(fā)現(xiàn)是因?yàn)樘砑勇酚蓵r(shí)沒(méi)指定接口Windows 自動(dòng)選了躍點(diǎn)數(shù)最小的網(wǎng)卡作為接口而這個(gè)網(wǎng)卡恰好是外網(wǎng)網(wǎng)卡。數(shù)據(jù)包被發(fā)到外網(wǎng)網(wǎng)卡后雖然下一跳是內(nèi)網(wǎng)網(wǎng)關(guān)但外網(wǎng)網(wǎng)卡和內(nèi)網(wǎng)網(wǎng)關(guān)不在同一二層網(wǎng)絡(luò)包根本發(fā)不出去。解決辦法是添加路由時(shí)用if參數(shù)顯式指定接口編號(hào)。先查接口編號(hào)route print -4輸出第一列 Interface List 里有每個(gè)網(wǎng)卡的編號(hào)比如內(nèi)網(wǎng)網(wǎng)卡的編號(hào)是 15。然后添加路由時(shí)帶上 if 參數(shù)route add 10.0.0.0 mask 255.0.0.0 10.10.0.1 if 15 -p這樣可以強(qiáng)制讓路由走內(nèi)網(wǎng)網(wǎng)卡徹底避免選錯(cuò)接口的問(wèn)題。5.3 DHCP 和系統(tǒng)更新導(dǎo)致的坑公司網(wǎng)絡(luò)如果統(tǒng)一走 DHCP你內(nèi)網(wǎng)網(wǎng)卡的 IP 每次開(kāi)機(jī)都可能變靜態(tài)路由里的接口 IP 對(duì)應(yīng)的路由就廢了。這種情況下有兩個(gè)選擇一是找網(wǎng)管把內(nèi)網(wǎng)網(wǎng)卡的 MAC 地址綁定到固定 IP二是堅(jiān)持使用靜態(tài) IP對(duì)內(nèi)網(wǎng)網(wǎng)卡手動(dòng)配置。我個(gè)人強(qiáng)烈推薦后者因?yàn)檗k公電腦的內(nèi)網(wǎng) IP 通常需要穩(wěn)定手動(dòng)配置反而省心。另外Windows 大版本更新后有可能會(huì)重置網(wǎng)絡(luò)配置包括清空靜態(tài)路由和網(wǎng)卡的高級(jí)設(shè)置。我遇到過(guò)幾次某次系統(tǒng)更新后內(nèi)網(wǎng)突然不通一看路由表空了一條只能重新執(zhí)行一遍 route add。建議把配置命令存成腳本出了問(wèn)題時(shí)一鍵恢復(fù)下一節(jié)會(huì)給出腳本。5.4 防火墻和 DNS 的連帶問(wèn)題雙網(wǎng)卡配置完成后內(nèi)網(wǎng)和外網(wǎng)都能通了但有時(shí)還是會(huì)出現(xiàn)“能 ping 通但打不開(kāi)網(wǎng)頁(yè)”的情況這時(shí)候多半是 DNS 的問(wèn)題。外網(wǎng) DNS 用 114.114.114.114 或者運(yùn)營(yíng)商的 DNS 沒(méi)問(wèn)題但內(nèi)網(wǎng)資源如果用域名訪問(wèn)那必須同時(shí)配置內(nèi)網(wǎng) DNS。我的做法是外網(wǎng)網(wǎng)卡只填外網(wǎng) DNS內(nèi)網(wǎng)網(wǎng)卡只填內(nèi)網(wǎng) DNS別混著填。因?yàn)?Windows 查詢 DNS 時(shí)會(huì)按網(wǎng)卡順序嘗試混填可能導(dǎo)致內(nèi)網(wǎng)域名被外網(wǎng) DNS 拒答。注意Windows 防火墻有時(shí)會(huì)攔截跨網(wǎng)卡的訪問(wèn)尤其是從外網(wǎng)網(wǎng)卡去訪問(wèn)內(nèi)網(wǎng)共享資源時(shí)。如果排除了路由問(wèn)題還是不通用臨時(shí)關(guān)閉防火墻測(cè)試一下能通就把對(duì)應(yīng)的入站規(guī)則加白名單不要因噎廢食長(zhǎng)期關(guān)防火墻。6. 配置腳本與長(zhǎng)期維護(hù)6.1 一鍵配置腳本把常用的配置命令寫(xiě)成一個(gè)批處理腳本省去每次手敲的麻煩。以下腳本以第 4 節(jié)的場(chǎng)景為例echo off rem 內(nèi)網(wǎng)網(wǎng)卡配置靜態(tài) IP netsh interface ip set address name以太網(wǎng) 2 static 10.10.5.100 255.255.0.0 netsh interface ip set dns name以太網(wǎng) 2 static 10.10.0.2 rem 添加靜態(tài)路由 route delete 10.0.0.0 mask 255.0.0.0 route delete 172.16.3.0 mask 255.255.255.0 route add 10.0.0.0 mask 255.0.0.0 10.10.0.1 if 15 -p route add 172.16.3.0 mask 255.255.255.0 10.10.0.1 if 15 -p rem 驗(yàn)證 route print -4 pause腳本開(kāi)頭先執(zhí)行route delete是為了保證腳本可重復(fù)運(yùn)行。很多人寫(xiě)腳本時(shí)忘了刪除舊路由第二次執(zhí)行會(huì)報(bào)“路由已存在”的錯(cuò)或者殘留多條相同的路由導(dǎo)致系統(tǒng)選路混亂。6.2 路由表備份與恢復(fù)配置完成后最好把整個(gè) IPv4 配置備份一份。用 netsh 可以在命令行里導(dǎo)出網(wǎng)卡配置netsh interface ipv4 show config 網(wǎng)卡配置備份.txt netsh interface ipv4 show route 路由表備份.txt系統(tǒng)更新或誤操作后對(duì)照備份文件恢復(fù)即可。如果只是路由表亂了可以直接重置所有靜態(tài)路由恢復(fù)到純 DHCP 狀態(tài)route -f這個(gè)命令會(huì)清除所有非默認(rèn)路由謹(jǐn)慎使用。執(zhí)行后需要重新添加你的靜態(tài)路由。6.3 把配置做成開(kāi)機(jī)自啟有些環(huán)境里同事的電腦也需要同樣的雙網(wǎng)卡配置與其一臺(tái)臺(tái)手動(dòng)配我建議做一個(gè)更省事的版本把腳本放到“啟動(dòng)”文件夾或者用任務(wù)計(jì)劃程序設(shè)置開(kāi)機(jī)運(yùn)行一次。批處理文件在開(kāi)機(jī)時(shí)自動(dòng)執(zhí)行管理員權(quán)限可以通過(guò)任務(wù)計(jì)劃程序設(shè)置為“使用最高權(quán)限運(yùn)行”來(lái)解決。這樣即使 DHCP 或系統(tǒng)更新把路由搞亂了重啟一次電腦也能自動(dòng)恢復(fù)。實(shí)測(cè)這個(gè)方案在公司幾十臺(tái)辦公電腦上運(yùn)行穩(wěn)定省了不少運(yùn)維時(shí)間。6.4 多網(wǎng)段內(nèi)網(wǎng)環(huán)境的擴(kuò)展思路如果你的內(nèi)網(wǎng)不是單網(wǎng)段而是多個(gè)業(yè)務(wù)系統(tǒng)分布在幾個(gè)不同的地址段只要重復(fù)添加靜態(tài)路由就行了。比如公司還有一套 OA 系統(tǒng)在 172.16.8.0/24只需要再加一條route add 172.16.8.0 mask 255.255.255.0 10.10.0.1 if 15 -p這時(shí)候“路由覆蓋范圍寧小勿大”的原則就很重要了。我習(xí)慣把每個(gè)獨(dú)立業(yè)務(wù)系統(tǒng)的網(wǎng)段拆開(kāi)寫(xiě)而不是圖省事寫(xiě)個(gè)大范圍的掩碼。少寫(xiě)一條路由的代價(jià)是某天某個(gè)業(yè)務(wù)突然不通多寫(xiě)一條路由的代價(jià)是有可能把外網(wǎng)流量錯(cuò)誤地拐進(jìn)內(nèi)網(wǎng)權(quán)衡下來(lái)還是細(xì)粒度更安全。我個(gè)人在實(shí)際操作中還有一個(gè)習(xí)慣每次配置完成后把命令、IP 規(guī)劃、驗(yàn)證結(jié)果都記在文檔里標(biāo)注清楚每塊網(wǎng)卡的用途和路由規(guī)則。別小看這一步幾個(gè)月后網(wǎng)卡驅(qū)動(dòng)更新或者換新電腦需要重新配置時(shí)這份記錄比任何記憶都可靠。雙網(wǎng)卡配置本身不算復(fù)雜真正讓人翻車(chē)的永遠(yuǎn)是細(xì)節(jié)——接口選錯(cuò)、掩碼寫(xiě)寬、DHCP 漂移、忘了加持久化參數(shù)這些坑踩過(guò)一次就記住了。