连接VPN后无法上网 Windows Route 轻松解决

连接VPN后无法上网 Windows Route 轻松解决

引言

很多时候,我们公司的 VPN 为了不占用公司的外网带宽和安全起见,都会禁止访问外网。我们的电脑连接 VPN 后,所有的网络数据包都会走 VPN,从而导致我们无法访问互联网。而我们大多数情况下工作时需要连接互联网去查询资料。这时候我们可以使用 Windows Route 将我们的 VPN 网络和外网隔开,以实现同时可以访问内网和互联网。

Windows Route 还可以解决两个网关不在一个IP段内的网络互通。

文档

Windows Route

cmd 或者 powershell 中输入

route --help

route help

添加路由

  • 连接好 VPN,假如我们不加任何路由的话,所有的网络请求数据包都是走的 VPN,所以互联网是打不开的。
  • cmd 中输入 route print 查看路由。
route print  // 查看所有路由
route print -4 // 查看IPV4路由
  • 下图中红框1代表的是本地路由,红框2代表的是 VPN 路由。我们可以看到我本地的网关是 192.168.50.1,VPN 网关是 192.168.253.1。而我们内网的服务器 IP 段为 192.168.1.2-192.168.1.255。那么我们只需要添加一条让 192.168.1.2-192.168.1.255 段的数据请求走 VPN 网关的路由就可以解决问题。
    route print
    注:在路由表中,前一列为网络的目标地址,即可以访问的网络段,如:0.0.0.0 为所有网段

  • 最好不要将自己本地的网关和服务器的网关设为一样,会出现冲突现象。这也是为啥我的网关是 192.168.50.1 而不是 192.168.1.1 的原因。因为公司服务器的网关是 192.168.1.1。

  • 输入命令 route add -p 192.168.1.0 mask 255.255.255.0 192.168.253.1 其中 -p 代表永久添加。然后再输入 route print 查看路由,出现永久路由代表添加成功。添加成功后就可以访问外网和VPN网络了。

route add -p 192.168.1.0 mask 255.255.255.0 192.168.253.1
  • 如果不能访问互联网注意查看一下跃点数,跃点数越小代表他的优先级越高。可以看到我的 VPN 路由的跃点数比本地路由的跃点数小。所以会优先匹配 VPN 路由。