在VPN中,只让国外的网站走VPN
2011-05-31 | 4:06http://code.google.com/p/chnroutes/wiki/Usage 这里,详细提到了原理
主要利用来自 http://ftp.apnic.net/apnic/dbase/data/country-ipv4.lst 的数据生成路由命令脚本, 让vpn客户端在进行连接的时候自动执行. 通过这些路由脚本, 可以让用户在使用vpn作为默认网络网关的时候, 不使用vpn进行对中国国内ip的访问, 从而减轻vpn的负担, 和增加访问国内网站的速度.
在使用这些脚本之前, 请确保你在自己的电脑上已经成功配置好一个vpn连接(pptp 或者 openvpn), 并且让之以默认网络网关的方式运行, 这通常也是默认配置, 即vpn接入之后所有网络流量都通过vpn进行.
其中windows平台下 pptp和l2tp 的设置,
1.在该站下载 chnroutes_ovpn_win 文件,对于已经安装有python的用户, 在命令行方式进入到下载到的文件所在目录, 执行python chnroutes_ovpn_win, 执行完毕之后同一目录下将生成'vpnup.bat', 'vpnup.vbs', 'vpndown.bat'和'vpndown.vbs'共四个文件. (如果你没有python, 可以直接下载项目下载页面上的pre_created_for_win.zip文件, 解开之后你将能得到预生成的上述4个文件)
但由于windows上的pptp不支持拨号脚本, 所以也只能在进行拨号之前手动执行vpnup.bat文件以设置路由表. 而在断开vpn之后, 如果你觉得有必要, 可以运行vpndown.bat把这些路由信息给清理掉.
备注:对于使用项目下载页面里的预生成的bat文件的用户, 这些预生成的文件将会不定期进行更新, 因为ipv4的范围的变化不会十分大, 所以路由信息文件应该不需要频繁更新. 另外, 有windows用户反映vbs文件并不能被正确调用, 这个大概是因为一些系统并没有建立到vbs文件的关联, 解决方法有2, 把.vbs文件的默认运行方式指定为C:WINDOWSsystem32wscript.exe (这里用wscript,不用cscript是防止出现那个黑色的console界面)
我个人的做法是保留原包的bat文件(也就是路由文件),vbs自己写如下:
pptp链接时 vpnup-pptpd.vbs
Sub cRun
set WshShell = CreateObject("Wscript.shell")
WshShell.Run "vpnup.bat"
WScript.Sleep 15000
WshShell.Run "rasphone.exe -d vps-pptpd"
End Sub
Call cRun
pptp断开时 vpndown-pptpd.vbs
Sub cRun
set WshShell = CreateObject("Wscript.shell")
WshShell.Run "vpndown.bat"
WshShell.Run "rasphone.exe -h vps-pptpd"
End Sub
Call cRun
l2tp链接时 vpnup-l2tpd.vbs
Sub cRun
set WshShell = CreateObject("Wscript.shell")
WshShell.Run "vpnup.bat"
WScript.Sleep 15000
WshShell.Run "rasphone.exe -d vps-l2tpd"
End Sub
Call cRun
l2tp断开时 vpndown-l2tpd.vbs
Sub cRun
set WshShell = CreateObject("Wscript.shell")
WshShell.Run "vpndown.bat"
WshShell.Run "rasphone.exe -h vps-l2tpd"
End Sub
Call cRun
注意,以上脚本中的 vps-pptpd 和 vps-l2tpd 正是vpn连接的名字,需要自行修改,在调试完成后,去掉选择 显示用户名和密码 那个勾,即可每次自动运行脚本时候就自动运行了。
分别进入 http://www.cz88.net/ 和 http://whatismyipaddress.com/ 这两个网站,将会看到两个不同的IP地址











最新评论