SIFT / KNOWLEDGE BASE

知识 Wiki 总览 / VPN

路由与默认网关

更新于 2026-11-07条目链接

路由表描述本机如何将 IP 数据报转发到目标网络。每条路由通常包含目标前缀、下一跳、出口接口和度量值。系统先选择匹配目标地址的最长前缀;同等前缀下再按路由与接口度量等规则选择路径。

默认路由与 VPN 路由

IPv4 默认路由为 0.0.0.0/0,IPv6 默认路由为 ::/0。全隧道 VPN 通常让默认流量经隧道转发;分流 VPN 只添加指定内网前缀,例如 10.20.0.0/16。VPN 客户端还必须确保访问 VPN 服务端本身的外层连接仍可经物理网络到达,避免路由递归。

查看生效路由

Windows

Get-NetRoute -AddressFamily IPv4 | Sort-Object DestinationPrefix,RouteMetric | Select-Object DestinationPrefix,NextHop,InterfaceAlias,RouteMetric

macOS

netstat -rn -f inet
route -n get 10.20.0.10

Linux

ip route
ip route get 10.20.0.10

添加路由的示例

下列示例适用于已经建立且由管理员配置的 VPN 接口。接口名称、网段和下一跳必须替换为实际值;手工添加的路由可能在断开连接或重启后失效。

Windows 原生 VPN 配置

Add-VpnConnectionRoute -ConnectionName "Corp-IKEv2" -DestinationPrefix "10.20.0.0/16"

macOS 诊断

route -n get 10.20.0.10

macOS VPN 路由应由系统 VPN 配置或 Network Extension 提供方管理;此命令只检查目标地址当前采用的路由。

Linux 临时路由

sudo ip route add 10.20.0.0/16 dev wg0

排查重点

  • 确认目标 IP 命中了预期的最长前缀。
  • 确认 VPN 地址段与本地 LAN 不重叠。
  • 确认隧道网关有返回路由,且防火墙允许目标服务。
  • 确认 IPv4 与 IPv6 的默认路由策略一致,避免仅有一类地址进入隧道。

参考资料

Microsoft Learn:Get-NetRoute;Microsoft Learn:Add-VpnConnectionRoute;Linux ip-route 手册;Apple:VPN 路由。