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

因为一些原因,一直用的 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

 

OpenVPN 使用 chnroutes

1、下载 chnroutes,得到 vpnup.bat 和 vpndown.bat。

2、将 vpnup.bat 和 vpndown.bat 拷贝到你 OpenVPN 的 config 文件夹中:

将 vpnup.bat 和 vpndown.bat 拷贝到你 OpenVPN 的 config 文件夹中

3、修改 vpnup.bat,在其末尾加入语句

openvpn –-config 你的配置文件文件名(.ovpn 结尾)

修改配置文件

4、双击这个 bat 即可完成 chnroutes 路由表的添加和 OpenVPN 的连接。

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

  1. flsgsyd
    2011年10月12日01:17

    比较了一下,所谓最新的,其实与博主“http://igfw.net/archives/5607”里的相同,少了博主的自定义设置。

    • iGFW
      2011年10月12日13:18

      呵呵,都是转载的

  2. flsgsyd
    2011年10月12日00:36

    在博主的提醒下,试了下ipconfig /flushdns,也是同样的错误提示。原来是关闭了dns Client服务。打开后,用Python下载了最新的bat文件,设置了“set gw=”后,顺利地分路了。感觉很好。谢。

  3. flsgsyd
    2011年10月11日22:41

    用”http://igfw.net/archives/5607″里”http://sharesend.com/phefr”现在的“vpnup.bat”也试过。都是此提示。后面跟着”route: bad gateway address interface”。

    • iGFW
      2011年10月11日22:52

      这个我也没遇到过,不知道原因,你Google搜索下

  4. flsgsyd
    2011年10月11日19:23

    Could not flush the DNS Resolver Cache: 执行期间,函数出了问题。

    ——

    从“http://sharesend.com/bdbx3”和“http://chnroutes.googlecode.com/files/pre_created_for_win.zip”下载的文件,执行“http://chnroutes.googlecode.com/files/pre_created_for_win.zip”都出现了上述提示。
    已把DNS设定为8.8.8.8和8.8.4.4,添加了“set gw=”192.168.1.1″”(我的网关就是192.168.1.1)。

  5. southparkfan
    2011年8月17日23:02

    如果是电信或播号上网,或者网关不是固定的,应该怎么处理?

    • iGFW
      2011年8月18日08:26

      这个手动找本机网关然后再修改吧,或者直接使用chnroutes的脚本。

  6. windboy03
    2011年5月7日22:17

    用……吧,客户端带智能路由功能,自动加载国内路由。

    • iGFW
      2011年5月7日22:51

      他的客户端只能用它自己的帐号,我最讨厌这种客户端了。