筆記本同時接內網 (有線/無線) 與外網 (4G/5G/寬帶)、伺服器多網卡連不同業務網段、虛擬機多網卡隔離流量 —— 這些場景都需要「多網關共存、按目標網段自動選路」。Windows GUI 僅支持單一默認網關,實現多網關關鍵在於 持久靜態路由 (persistent static routes) 配合開機自動加載。本文提供標準化部署方案。
route -p add ... (持久路由) 寫入註冊表 HKLM\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\PersistentRoutes,重啟自動生效,無需啟動腳本。# 內網網段走有線網卡網關 (假設有線網關 192.168.10.1, 介面索引 12)
route -p add 10.0.0.0 mask 255.0.0.0 192.168.10.1 metric 10 if 12
route -p add 172.16.0.0 mask 255.240.0.0 192.168.10.1 metric 10 if 12
route -p add 192.168.100.0 mask 255.255.255.0 192.168.10.1 metric 10 if 12
# 外網預設走無線/4G 網卡 (假設無線網關 192.168.43.1, 介面索引 18)
route -p add 0.0.0.0 mask 0.0.0.0 192.168.43.1 metric 20 if 18
-p : 持久化 (寫註冊表,重啟保留)。metric : 路由度量值,越小優先級越高。內網具體路由 metric 10 < 默認路由 metric 20。if 介面索引 : 綁定具體出接口 (用 route print 或 Get-NetAdapter 確認 idx),防止多網卡時出錯介面。route print -4 # 顯示 IPv4 路由表 (含持久路由 Persistent Routes 區塊)
route -p delete 10.0.0.0 # 刪除持久路由
route -p change 10.0.0.0 mask 255.0.0.0 192.168.10.254 # 修改網關
@echo off
REM === 多網關靜態路由配置 ===
REM 內網網段 → 有線網關
route add 10.0.0.0 mask 255.0.0.0 192.168.10.1
route add 172.16.0.0 mask 255.240.0.0 192.168.10.1
route add 192.168.100.0 mask 255.255.255.0 192.168.10.1
REM 外網默認 → 無線/4G 網關
route add 0.0.0.0 mask 0.0.0.0 192.168.43.1
REM 可選:根據介面別名動態獲取索引 (需 Win8+/Server 2012+)
REM for /f "tokens=11" %%i in ('netsh interface ipv4 show interface "以太網" ^| findstr "Idx"') do set IDX=%%i
REM route add 10.0.0.0 mask 255.0.0.0 192.168.10.1 if %IDX%
shell:startup (當前用戶) 或 shell:common startup (所有用戶)。C:\Windows\route.bat → 下一步 → 命名「多網關路由加載」 → 完成。cmd.exe,參數 /c C:\Windows\route.bat。| 場景 | 處理策略 |
|---|---|
| DHCP 獲取的網關 IP 會變 | 用腳本動態解析:for /f "tokens=3" %a in ('route print 0.0.0.0 ^| findstr "0.0.0.0"') do set GW=%a 然後 route -p add 10.0.0.0 mask 255.0.0.0 %GW%。或配置 DHCP 保留/靜態租約固定網關。 |
| VPN 接入 (公司/雲上) | VPN 客戶端通常自動推送路由 (Class 1/2/3),若衝突手動調整 metric 或用 route -p add 固化關鍵內網段優先走物理內網卡。 |
| Hyper-V/WSL2/虛擬機網卡干擾 | vEthernet (Default Switch) 等虛擬介面可能搶佔介面索引。用 if 指定索引 明確綁定物理網卡。 |
| IPv6 多網關 | 同理用 route -p -6 add ...,前綴如 2001:db8:1::/64、默認 ::/0。 |
| 策略路由 (PBR) 需求 | Windows 原生不支持基於源 IP/應用/標記的策略路由。需:Linux 虛擬機做網關、RRAS (Windows Server)、第三方軟路由 (OpenWrt/OPNsense/pfSense) 虛擬機、或應用層代理 (Proxifier/Clash/V2Ray/Netch) 走 TUN/TAP 介面。 |
route print -4 確認 Persistent Routes 區塊包含預期條目,Active Routes 顯示正確介面/度量值。tracert 內網服務器IP 首跳為內網網關;tracert 8.8.8.8 首跳為外網網關。ping 內網服務器 / ping 8.8.8.8 均通。掌握 route -p 持久路由 + 介面索引綁定 + metric 優先級設計,是 Windows 多網卡、多網關、內外網隔離、VPN 共存場景的標準解法。拋棄脆弱的啟動腳本,擁抱原生註冊表持久化,讓路由配置隨系統生命週期自動管理。