校园网使用VPN设置

在使用拨号程序上网的同时连接vpn,会导致拨号程序的掉线。这是因为连接上vpn后,默认所有流量都走vpn,拨号程序一般是连接内网地址,这个在公网上是找不到的,这时拨号程序就会自动掉线,拨号程序一掉,vpn跟着就掉了

解决这个问题的方法很简单,那就是手动添加一个路由表,让拨号程序连接的认证ip不走vpn,还是走原来的通道


这里拿校园网为例,拨号程序为drcom5.2,电脑系统为win8.1_64

1.查找内网ip段

查找内网ip

首先我们需要找到校园网的内网ip段,方法有两个:

  • 通过drcom客户端来查看
    通过drcom查看ip
    可以看到,校园网的认证ip为202.202.0.163

  • 学校网站的ip或者学校提供的dns地址应该是校园网的内网地址,例如我这里校园网的dns地址为202.202.0.33

以ip段的形式表示

这里我们找到的ip地址为A.B.C.D,那么内网网段通常会是A.B.0.0/255.255.0.0(当然也不全是所有的都这样划分)。也就是说我这里的校园网的内网网段为202.202.0.0/255.255.0.0

2.添加路由表

找到内网ip段后,剩下的工作就是添加路由表了

首先建立一个bat脚本,名字随意,例如vpn.bat

添加如下内容:

1
2
3
4
5
6
7
8
@echo off
for /F "tokens=3" %%* in ('route print ^| findstr "\<0.0.0.0\>"') do set "gw=%%*"
ipconfig /flushdns
route add 202.202.0.0 mask 255.255.0.0 %gw% metric 5
pause

下面我来解释下每行代码的作用

  • @echo off关闭回显
  • for /F "tokens=3" %%* in ('route print ^| findstr "\<0.0.0.0\>"') do set "gw=%%*"寻找当前默认网关,即本地网卡,也就是0.0.0.0所对应的网关地址
  • ipconfig /flushdns刷新dns
  • route add 202.202.0.0 mask 255.255.0.0 %gw% metric 5设置内网ip段走原来默认网关

这里的202.202.0.0 mask 255.255.0.0也就是之前找到的内网ip段202.202.0.0/255.255.0.0

当然你也可以写成,202.202.0.0 mask 255.255.255.0202.202.0.163 mask 255.255.255.255,只要ip段里面包含的有202.202.0.163就行,这里比较灵活

最后只需要保存后右键管理员权限运行即可,然后你就可以连接vpn快乐的上网了


如果你是win10用户,脚本为:

1
2
3
4
5
6
7
8
@echo off
for /F "tokens=3" %%* in ('route print ^| findstr "\<0.0.0.0\>"') do set "gw=%%*"
ipconfig /flushdns
route add -p 202.202.0.0 mask 255.255.0.0 %gw% metric 5
pause

其它的和上面的一致


3.添加路由表前后对比

下图为添加路由表前系统的路由表
添加路由表前

下面是添加路由表后的系统路由表
添加路由表后

可以看的到,之前脚本添加的路由表添加成功


4.提示错误

路由添加失败:参数错误

路由添加失败-参数错误

这个错误是添加的路由命令无法获取到网关地址导致的,这里就需要手动设置网关地址

网关地址的获取方法很简单,在cmd命令中输入route print,然后找到网络目标为0.0.0.0对应的网关地址,如下图,

获取网关地址

这里的网关地址就是192.168.199.1,然后脚本文件修改为:

1
2
3
4
5
6
7
@echo off
ipconfig /flushdns
route add 202.202.0.0 mask 255.255.0.0 192.168.199.1 metric 5
pause

5.最后

  1. 脚本的作用是临时的,电脑重启后会自动失效,所以你可以不用怕设置改不回来
  2. 最重要的一点:理论上脚本有用,暂时还没拨vpn测试过。暂时还没用到vpn,只能凭借着之前使用时的回忆来写,理论上可行的