✳相遇
导航

VPN连上了但内网访问不了?一条路由命令解决

910 字
5 分钟
VPN连上了但内网访问不了?一条路由命令解决

现象#

VPN 连上了,图标也绿了,但内网地址就是打不开。

浏览器访问公司 OA(10.101.0.x)超时,SVN checkout 报无法连接主机,Ping 也全部丢包。

VPN 状态看着没问题,IP 也分配到了,但内网就像不存在一样。

排查#

打开命令行看一眼路由表:

Terminal window
route print -4

发现问题:路由表里根本没有 10.101.0.0/24 网段的路由。

VPN 客户端连接成功后,只添加了默认路由或 VPN 网关自身的路由,但公司内网的子网(10.101.0.0/24)没有被正确添加到路由表中。

也就是说,系统并不知道去 10.101.0.x 的流量应该走 VPN 的虚拟网卡,而是试图从物理网卡发出去 —— 物理网卡当然找不到公司内网,所以全部超时。

解决#

手动加一条路由,告诉系统:要去 10.101.0.0/24 的流量,走 VPN 的网关出去。

Terminal window
# 先删掉可能存在的冲突路由
route delete 10.101.0.0
# 添加持久路由
route add -p 10.101.0.0 mask 255.255.255.0 10.105.8.1 metric 5 if 13

参数说明:

参数值含义
-p持久化路由,重启后不丢失
10.101.0.0目标网络公司内网段
mask 255.255.255.0子网掩码/24 网段
10.105.8.1网关VPN 虚拟网卡的网关地址
metric 5跃点数优先走这条路由
if 13接口号VPN 虚拟网卡的接口索引

添加完成后,再访问内网 —— 秒开。

原理#

VPN 连接本质上是在系统里创建了一张虚拟网卡(tap/tun 设备),并分配一个虚拟 IP(比如 10.105.8.x)。公司内网的数据包需要经过这张虚拟网卡加密后送到 VPN 网关,再由网关转发到内网目标。

但 VPN 客户端在连接时,只负责添加它知道的少量路由(通常是 VPN 网关本身的路由),并不会自动添加公司内网的所有子网路由。如果你的内网网段不在 VPN 客户端的”推送路由列表”里,就需要手动补上。

这条手动路由的含义就是:

凡是发往 10.101.0.1 ~ 10.101.0.255 的数据包,不走物理网卡,而是交给虚拟网卡(if 13),通过 VPN 网关 10.105.8.1 转发。

如何找到自己的 VPN 网关和接口号#

不知道 10.105.8.1 和 if 13 怎么来的?两步就能找到:

1. 找 VPN 虚拟网卡的网关地址:

VPN 连上后,执行:

Terminal window
ipconfig

找到 VPN 虚拟网卡(通常叫 “以太网适配器” 或 “TAP-Windows Adapter”),看它的 默认网关 那一栏。那个地址就是你的 VPN 网关。

2. 找接口号:

Terminal window
route print

找到 VPN 虚拟网卡对应的 if 编号(第一列的数字)。或者用:

Terminal window
netsh interface ip show interfaces

更直观地看到每个接口的名称和 ID。

让重启也不失效#

加 -p 参数(Persistent)后,路由会写入注册表,重启电脑也还在:

Terminal window
route add -p 10.101.0.0 mask 255.255.255.0 10.105.8.1

如果想删除这条持久路由:

Terminal window
route delete 10.101.0.0

写在最后#

SSL VPN 的路由问题算是个老生常谈的坑。客户端只管”连上”,不管”连上后你能不能访问”。特别是公司内网有多个网段、或者用了非标准子网的时候,路由表缺条目的情况非常常见。

如果你也遇到 VPN 连上但内网访问不了的问题,可以按这个思路走一遍:

  1. ipconfig 找 VPN 虚拟网卡的 IP 和网关
  2. route print 查看当前路由表
  3. 确认缺少的目标网段
  4. route add 补上

一条命令的事,比折腾 VPN 客户端重装快多了。

文章分享

如果这篇文章对你有帮助,欢迎分享给更多人!

VPN连上了但内网访问不了?一条路由命令解决
https://blog.xuefei.art/posts/vpn-routing-fix/
作者
雪飞
发布于
2026-07-22
许可协议
CC BY-NC-SA 4.0

文章目录