PPTP VPN 使用国内路由表 + 自动触发 VPN 连接

来源:http://www.geektu.com/?p=548

因为一些原因,一直用的 SSH 不太够用,于是买了一个 PPTP VPN。PPTP VPN 的好处是在绝大多数平台上都无需任何客户端,适合各平台使用,同时价钱一般也不贵 XD。

不过,相比起 OpenVPN 来,PPTP 不用客户端也有一个坏处:不能够配置连接脚本,这样就不好使用国内路由表。(因为 VPN 默认发送全局流量,因此连接 VPN 后访问国内网站速度会慢很多。)

但是解决办法还是有的。

一、国内路由表

Google Project “chnroutes” 提供了国内路由表。对 Windows 用户来说,可以下载“pre_created_for_win.zip”压缩包(Downloads 标签页中下载即可),解压后将得到四个文件:vpnup.bat, vpnup.vbs, vpndown.bat, vpndown.vbs。

两个 vbs 文件下载好后删掉就行(没什么用,部分杀软还会对 vbs 文件报毒)。

根据 chnroutes 的说明,使用 PPTP VPN 的 Windows 用户可以这样操作:

由于 Windows 上的 PPTP 不支持拨号脚本,所以也只能在进行拨号之前手动执行 vpnup.bat 文件以设置路由表。而在断开 VPN 之后,如果你觉得有必要,可以运行 vpndown.bat 把这些路由信息给清理掉。

这样毕竟还是不方便(要先双击这个 vpnup.bat,然后再双击 VPN 连接,麻烦!)。

同时,如果你有多网卡,还可能造成添加的路由信息不正确(因为该 bat 采用

for /F "tokens=3" %%* in (‘route print ^| findstr "\<0.0.0.0\>"’) do set "gw=%%*"

方式来获得以太网连接的网关地址,当你有多网卡时,有可能获取不到正确的出口网关)。

所以,我把这个 bat 稍稍修改了一下。修改了两个地方:

    1. 手动指定网关(如果你的网络环境相对稳定,并且觉得有必要的话);
    2. 路由信息添加完毕后,自动触发 rasdial.exe 进行 VPN 的拨号连接。

 

二、修改方法

0、提示

修改 vpnup.bat 时,请使用 EditPlus / Notepad++ 等编辑器,尽量不要使用 Windows 自带的记事本 / 写字板程序。

1、手动指定网关

vpnup.bat 文件中用 gw 变量代表以太网出口网关。所以,只要在该 bat 的 route add 语句前,用语句

set gw=”你的网关地址”

即可:

指定网关地址

当然,前提是你的网关相对固定。

2、自动进行 VPN 拨号

只要在 vpnup.bat 文件的末尾添加语句

rasdial "你的 PPTP VPN 连接名称" "用户名" "密码"

即可:

自动进行 VPN 拨号

经过这样两步修改后的 vpnup.bat 脚本就更好用了。这样,你可以把这个 bat 创建一个快捷方式放在桌面上 / 开始菜单里,以后每次开机后只要点击这个 bat 文件就可完成国内路由表的设置 + VPN 连接的触发:

一键连上 VPN


没有评论: