作者實測:家用路由器網段 192.168.1.0/24 與公司內網 192.168.1.0/24 完全重疊,導致 Windows 路由表優先走實體介面而非 VPN 介面。解決方法是手動加入更高優先順序(Metric 較小)的靜態路由,強制目標網段走 VPN 閘道。
C:\> route print
...(撥號前)...
IPv4 路由表
===========================================================================
介面清單
... 192.168.1.109 ... <- 家用無線網卡 IP
===========================================================================
作用中路由:
網路目的地 網路遮罩 閘道 介面 計量
0.0.0.0 0.0.0.0 192.168.1.1 192.168.1.109 25 <- 預設閘道
192.168.1.0 255.255.255.0 On-link 192.168.1.109 281 <- 本地網段(衝突!)
...
撥號後出現 VPN 介面(如 172.16.0.10),但因本地 192.168.1.0/24 已存在且 Metric 較低,封包仍走實體網卡。
C:\> route add 192.168.1.0 mask 255.255.255.0 172.16.0.1 metric 1
OK!
172.16.0.1 為 VPN 介面的閘道 IP(可用 ipconfig 查看 VPN 介面的 IPv4 位址)。
metric 1 使此路由優先於本地介面的 281。
C:\> tracert 192.168.1.161
1 30 ms 31 ms 31 ms 172.16.0.1 <- 走 VPN 閘道!
2 29 ms 30 ms 30 ms 192.168.1.161
Trace complete.
加 -p 參數:
route -p add 192.168.1.0 mask 255.255.255.0 172.16.0.1 metric 1
或建立批次檔 vpn_route.bat 放入啟動資料夾 / 工作排程器(登入時執行,最高權限)。
作者發現:公司電腦預設閘道必須設為 ISA Proxy 伺服器 IP,才能回傳 RDP 封包。解法:
1. 遠端桌面連線前,先用 PsExec / 群組原則 / 手動將目標電腦預設閘道改為 ISA IP。
2. 或在 ISA 上發布 RDP 規則,允許 VPN 子網直連。
$vpnGateway = (Get-NetIPConfiguration -InterfaceAlias "*VPN*" | Where-Object {$_.IPv4DefaultGateway}).IPv4DefaultGateway.NextHop
if ($vpnGateway) {
New-NetRoute -DestinationPrefix "192.168.1.0/24" -InterfaceAlias "*VPN*" -NextHop $vpnGateway -RouteMetric 1
Write-Host "已加入靜態路由 192.168.1.0/24 -> $vpnGateway (Metric 1)"
} else {
Write-Warning "找不到 VPN 介面閘道,請確認已撥號成功。"
}
核心概念:路由表由 Metric 決定優先順序,Metric 較小者優先。手動加入 Metric=1 的靜態路由,即可覆蓋本地衝突路由,強制流量走 VPN 隧道。