chnroutes更新(通过路由脚本给你的VPN减负给你访问国内网站加速)

自动区分国内国外线路,实现VPN智能翻墙,提高国内网站浏览速度,节省VPN流量:http://igfw.net/archives/5607

SSH与VPN客户端配置完全手册&给VPN添加路由表+自动替换DNS服务器:http://igfw.net/archives/4404

推薦使用chnroutes取代SSH翻牆:http://igfw.net/archives/3111

PPTP VPN 使用国内路由表 + 自动触发 VPN 连接:http://igfw.net/archives/2486

VPN智能翻墙:http://igfw.net/archives/2205

使用OpenVPN的route命令实现选择性翻墙:http://igfw.net/archives/241

chnroutes——VPN 路由助手,自动区分国内国外线路,实现VPN智能翻墙:http://igfw.net/archives/970

chnroutes——Scripts to generate special routes for china ips:http://igfw.net/archives/181

========

以前的文章里多次提到chnroutes,不过它很久没有更新了,上次更新还是在去年,最近官方又更新了教程和文件,一起看看吧。

介绍

这几个脚本主要利用来自 http://ftp.apnic.net/apnic/stats/apnic/delegated-apnic-latest 的数据生成路由命令脚本, 让vpn客户端在进行连接的时候自动执行. 通过这些路由脚本, 可以让用户在使用vpn作为默认网络网关的时候, 不使用vpn进行对中国国内ip的访问, 从而减轻vpn的负担, 和增加访问国内网站的速度.

基本约定

在使用这些脚本之前, 请确保你在自己的电脑上已经成功配置好一个vpn连接(pptp 或者 openvpn), 并且让之以默认网络网关的方式运行, 这通常也是默认配置, 即vpn接入之后所有网络流量都通过vpn进行.

Openvpn

使用此法之前, 请确认openvpn版本是否为 v2.1 或者以上, 如果不是请参看下方不同系统关于openvpn部分的描述

客户端设置

本 方法适用于使用openvpn v2.1或更高版本的用户. 因为openvpn v2.1比之前版本增加了一个名为max-routes的新参数, 通过设置该参数, 我们可以在配置文件里(服务端, 客户端)直接添加超过100条以上的路由信息. 具体设置步骤如下:

  1. 下载 chnroutes.py 文件
  2. 在命令行里执行 python chnroutes.py, 这将生成一个名为 routes.txt 的文本文件. 对于不想安装python的用户, 可以直接从项目下来列表里下载该文件. 它将会每月更新一次.
  3. 使用你喜欢的文本编辑器打开上述文件, 并把内容复制粘贴到openvpn配置文件的末尾
  4. 同 时在openvpn配置文件的头部添加一句 max-routes num, 其中num是一个不小于文件routes.txt的行数的数字, 实际上因为还有一些服务器端push过来的路由信息, 所以保险起见可以用 routes.txt的行数加上50, 比如目前得到的routes.txt的行数是940, 你可以把数字设置为1000: max-routes 1000
  5. 修改完之后, 重新进行openvpn连接, 你可以用之前描述过的方法进行测试是否成功

以 上方法在Mac OSX, Linux 和 Windows上测试通过. 但需要注意的是, 这里用到一个net_gateway的变量表示未连接openvpn前的网关地址, 但openvpn的文档里有说明这个不是所有系统都支持的, 如果发生这个情况, 可以修改一下生成脚本, 把net_gateway修改为你的局域网的网关地址. 对于windows 7 和 vista, OpenVPN的windows客户端可能需要设置Windows XP兼容模式才能使用, 安装文件要在属性选择中的兼容性选择Windows XP和以管理员的身份运行,安装好的运行文件也同样选择这两个选项。如果还是不能连接到VPN的网络,可以尝试在配置文件中加入:

route-method exe
route-delay 2

注意事项

  • 因为这些ip数据不是固定不变的, 尽管变化不大, 但还是建议每隔两三个月更新一次
  • 使 用此法之后, 可能会导致google music无法访问, 这个其实是因为连上vpn之后, 使用的dns也是国外的, 国外dns对google.cn 解析出来的是国外的ip, 所以一个简单的解决方法是修改本机的hosts文件, 把国内dns解析出来的google.cn的地址写上去: 203.208.39.99 www.google.cn google.cn

PPTP

Mac OSX

  1. 下载 chnroutes.py
  2. 从终端进入下载目录, 执行python chnroutes.py -p mac, 执行完毕之后同一目录下将生成两个新文件’ip-up’和’ip-down’
  3. 把这两个文件copy到 /etc/ppp 目录, 并使用 sudo chmod a+x ip-up ip-down命令把它们设置为可执行
  4. 设置完毕, 重新连接vpn. 测试步骤同上.

Linux

  1. 下载 chnroutes.py
  2. 从终端进入下载目录, 执行python chnroutes.py -p linux, 执行完毕之后同一目录下将生成两个新文件’ip-pre-up’和’ip-down’.
  3. 把ip-pre-up 拷贝到 /etc/ppp目录, ip-down 拷贝到 /etc/ppp/ip-down.d 目录. 测试步骤同上.

Windows

  1. 下载 chnroutes.py
  2. 从终端进入下载目录, 执行python chnroutes.py -p win, 执行之后会生成vpnup.bat和vpndown.bat两个文件.

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

如果机器上没有安装python, 可以直接从下载页面上下载已经预生成的bat文件.

Android

由于没在android上进行过测试, 无法确定上文描述的openvpn v2.1的使用方法是否也在android手机上适用, 所以保留以下内容

openvpn

  1. 下载 chnroutes.py
  2. 从终端进入下载目录, 执行python chnroutes.py -p linux, 这将生成’vpnup.sh’和’vpndown.sh’两个文件.
  3. 把步骤2生成的两个文件拷贝到 android 的 /sdcard/openvpn/目录下, 然后修改openvpn配置文件, 在文件中加上以上三句:
    script-security 2
    up "/system/bin/sh /sdcard/openvpn/vpnup.sh"
    down "/system/bin/sh /sdcard/openvpn/vpndown.sh"

注意自行修改其中的路径以符合你的android rom的实际路径

另外, 这里假定了你的android已经安装过busybox, 否则请先安装busybox再进行以上操作, 还需要知道的是, 这个脚本在手机上执行会花费比较长的时间, 如非必要, 就不要用了. 也许采用非redirect-gateway方式, 然后在ovpn配置文件里添加几条需要路由的ip段是比较快捷方便的做法.

基于Linux的第三方系统的路由器

一 些基于Linux系统的第三方路由器系统如: OpenWRT, DD-WRT, Tomato 都带有VPN(PPTP/Openvpn)客户端的, 也就是说, 我们只需要在路由器进行VPN拨号, 并利用本项目提供的路由表脚本就可以把VPN针对性翻墙扩展到整个局域网. 当然, 使用这个方式也是会带来副作用, 即局域网的任何机器都不适合使用Emule或者BT等P2P下载软件. 但对于那些不使用P2P, 希望在路由器上设置针对性翻墙的用户, 这方法十分有用, 因为只需要一个VPN帐号, 局域网内的所有机器, 包括使用wifi的手机都能自动翻墙. 相信配置方式请参考: Autoddvpn 项目.

信息反馈

本 项目的脚本都是在使用路由器进行拨号的情况下测试通过的, 如果在其它拨号方式下, 脚本不能运作, 请在本页添加comment说明. 或者添加一个新的issue. 另外, 在配合openvpn使用的时候, 可能会出现一种情况是因为网络质量不好, openvpn非主动断开, 这时候vpndown脚本也会被自动调用, 但重新连上之后, 可能会找不到默认的路由而添加失败, 这时候你可以通过停止openvpn重连, 并手动设置好原来的默认路由再重新进行openvpn拨号.

项目地址http://code.google.com/p/chnroutes/

下载地址http://code.google.com/p/chnroutes/downloads/list

========

http://sourceforge.net/projects/advtor/files/ (简单易用的tor客户端更新)

http://sourceforge.net/projects/blackbeltpriv/files/ (一个基于tor的匿名浏览器更新)

http://code.google.com/p/pnet/ (该项目试图生成专用的P2P网络)

以上信息感谢AS网友提供

本文原始地址http://igfw.net/archives/6592

  1. AS
    2011年11月29日17:40

    https://code.google.com/p/therabbit/
    “This a project to jump the wall.”
    “Supported OS – Window XP, Visa, 7 and maybe new.
    Instruct
    Run the code and select server. Workes on Internet Explorer. If you needed Firefox, you have to need to put proxy 127.0.0.1 port 6969 in Firfox settings (HTTP + HTTPS).
    This project be joint venture between me and my brother. We learning program.
    We sorry for my bad english. ”
    https://code.google.com/p/therabbit/downloads/detail?name=Rabbit.1.0.zip&can=2&q=
    “Rabbit.1.0.zip 644 KB”

    (2011年11月27日)

    • iGFW
      2011年11月29日20:50

      谢谢支持呀

      • Jackie
        2011年11月29日21:13

        AS是谁,他经常投稿一堆堆的英文教材或文章。

        • iGFW
          2011年11月29日22:35

          我也不清楚,
          是为热心网友,
          资源比较乱我要区分出能用的,呵呵

  2. AS
    2011年11月29日16:48

    http://assh.sourceforge.net/
    “…Introduction
    Assh (Anonymous Secure SHell) is a ssh client which uses SSL proxies to establish anonymous connections. This tool can be usefull for people who want to keep anonymity when they connect to public servers or, for people who work on restricted LAN networks that do not authorize connection to destination port tcp/22 (for example, behind a firewall). See README included in the tarball file for further details.
    The Anonymous Secure SHell program has been made under GPL licence and use a Corckscrew module…..”

    (2011年11月27日 )

  3. AS
    2011年11月29日16:39

    Free TV :
    http://www.ge3ktv.com/
    http://www.ge3ktv.com/download
    http://sourceforge.net/projects/ge3ktv/
    http://sourceforge.net/projects/ge3ktv/files/
    “GE3K TV.zip 2011-04-06 622.4 kB”

    Wird dies in China nuetzlich sein ?

    (2011年11月27日

  4. Jackie
    2011年11月29日08:59

    怎么样达到永久添加路由?我发现chnroutes的修改路由每次重新启动就会没有了。

    • iGFW
      2011年11月29日10:39

      现在chnroutes还是添加的临时路由重启失效,
      要添加永久路由用写字板打开vpnup.bat文件将其中的route add全部替换为route -p add保存后再执行即可

      • Jackie
        2011年11月29日20:11

        route -p add 这个命令是一直执行吧?难道不关闭这个命令行窗口?每次执行的时候我都是占用CPU90%以上,等他执行完毕!

        • iGFW
          2011年11月29日20:58

          不是的
          route -p add命令添加的是永久路由,只需执行一次,以后你只要不删除路由或清空路由表就不用重复执行了。
          chnroutes默认添加临时路由,重启系统后需要重新添加一次。

          • Jackie
            2011年11月29日21:12

            哦 那这个好。那我用notepad+全部替换掉。然后运行一次 那么以后都不需要弄了。

            另外我还有个问题,如果VPN失效,这东西会不会影响正常访问?

          • iGFW
            2011年11月29日22:34

            一般不会,特殊情况下会(比如连接思科VPN的客户端后可能无法上网,只需执行vpndown.bat删除路由即可)。

  5. AS
    2011年11月29日01:52

    http://sshvpn.sourceforge.net/
    “SSHVpn tunnel Creator.
    sshvpn is a simple shell script to establish a secure vpn tunnel using openSSH vpn tunneling feature which is available from openssh-4.3 and above. The openssh uses the tun(4) network tunnel device which is available in most platforms either for layer 2 or 3 traffic to create the tunnel. This new vpn tunnel feature is different from portforwarding, where just a service is forwarded.
    This script will help to establish a secure bridge between two private network or to attach a single host to the remote network over the internet, like PPTP vpn tunnel.
    To enable the ssh server to accept tunnel requests from the client, the following directive should be set on the server configuration.
    PermitTunnel yes
    Requirements:
    Currently this script works with Linux as client and server (the network gateways of the two private network). This can be easily modified to work on other unixvariants.
    OpenSSH-4.3 or above server and client.
    The linux kernel should have the support for
    the tun device.
    the netfilter.
    either in the kernel or as a kernel module. Most of the Linux distribution that come these days have the support built-in.”

    (2011年11月27日)

  6. 2011年11月28日15:40

    我自从用了永久添加路由,什么麻烦事基本上都没了。哈哈

    • iGFW
      2011年11月28日16:24

      呵呵,你连接Cisco Systems VPN Client后可能会发现,啊,怎么不能上网了(记得删除添加的路由表后就可以了)。