知识 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 路由。
