首先:创建一个文本文件。
其次:在文本文件中输入如下代码:
@echo off
@Rem 用户名
set user=xxx //你的vpn用户名
@Rem 密码
set pass=xxx //你的vpn密码
@Rem 拨号文件名
set NIC_name=VPN //注意这个nic_name一定要和你创建的网络vpn连接的名字一样,否则无法连接成功
echo 正在VPN连接...
rasdial %NIC_name% %user% %pass% //rasdial为自动拔号命令
echo 已经连接.
for /f "tokens=1* delims=:" %%i in ('ipconfig /all^|find "192.168.123"') do set ip=%%j //过滤出ipconfig命令输出的信息包含192.168.230这个地址段的信息(这个ip段就是你连接vpn成功后vpn服务器分配的内网ip地址)
echo %ip%
route delete 0.0.0.0 mask 0.0.0.0 %ip% METRIC 1 //这句就是删除缺省指向vpn内网的路由
route add 192.168.21.0 mask 255.255.255.0 %ip% METRIC 1 //以下是添加需要访问的内网地址段
route add 192.168.13.0 mask 255.255.255.0 %ip% METRIC 1
前面的代码中都有相关参数的解析,这里就不多做介绍了,主要介绍一下如果配置将内网和外网数据分离,实现即可以上外网又可以访问公司内网(当然要保证你的本地是可以上外网的),以下代码中最后route部分就是解决这个问题的:
route delete 0.0.0.0 mask 0.0.0.0 %ip% METRIC 1
这条命令的作用是删除vpn连接成功后自动创建缺省路由网关是指向vpn地址的那条缺省路由,后面的%ip%就是前面通过过滤ipconfig输出信息中包含vpn服务器分配的内网ip。删除这个缺省路由后,缺省路由的网关会自动切换到原来本地接口所指向的网关,这样就实现了所有数据都是通过本地的接口转发,而不是能过vpn通道来转发。有人就会问那启不是只能上外网又不能上内网了,也没有意义。没错,接下来就要添加可以通过vpn通道访问的公司内网的相应内网网段地址如下:
route add 192.168.21.0 mask 255.255.255.0 %ip% METRIC 1
route add 192.168.13.0 mask 255.255.255.0 %ip% METRIC 1
这段代码中就添加了192.168.21.0和192.168.13.0两个内网网段地址段,当然你还可以继续添加你想访问的公司内网地址段。
最后命名任意保存为.bat的文件,例:vpn.bat。