DDWRT + autoddvpn + openvpn 实现自动翻墙

  1. 以前翻墙用openvpn用了很多年, 后来放弃. 因为要生成密钥文件,还要在客户端安装软件, 编辑配置文件,使用相当繁琐
  2. 后改用ssh + firefox + bitvise tunnelier + autoproxy的方案, 这个方案省却了产生密钥的麻烦, 但还是需要在客户端安装软件, 而且iphone,ipad等无法采用
  3. 期间用过一段pptp vpn,但在前几年开始在北京用这个vpn就很不稳定,只好放弃
  4. 最后看到了秋树的分享贴,在表格的鼓励支持下,终于决定采用DDWRT + autoddvpn 的方案实现路由级的自动翻墙, 因为上面的原因决定不用ppt,而是用openvpn
  5. 开始想在原先使用的tplink wr841n上实现, 但该路由器只有4M空间, ddwrt上默认显示的是std版本, 装上去后,没有空间再装openvpn,openvpn只有wget模式可用,而jffs不能打开, 注定不能用grace模式。 于是买了asus的n12 b1, 这款路由器的rom空间是8M, 游刃有余
  6. ASUS N12 B1 在ddwrt网站查到的默认固件是迷你版, 我是刷完该mini版后,又刷了http://www.dd-wrt.com/site/support/other-downloads?path=others%2Feko%2FV24-K26%2Fsvn17084%2F 里的 dd-wrt.v24-17084_NEWD-2_K2.6_openvpn.bin。 这个同时支持openvpn和jffs。 
  7. 安装就是按照 http://code.google.com/p/autoddvpn/wiki/graceMode 一步步来的,很顺利。
  8. 但安装完后访问facebook, twitter都有些小问题, 发现是一些子域名指向的ip没有加入vpnup.sh脚本中, 于是编辑创建了 /jffs/openvpn/vpnup_custom 文件, 内容如下

    # this script will be executed after loading the routing rules in vpnup.sh
    # for twtter
    route add -net 199.59.148.0/24 gw $VPNGW# for facebook
    route add -net 69.171.0.0/16 gw $VPNGW
    route add -net 66.220.0.0/16 gw $VPNGW
    route add -net 204.141.0.0/16 gw $VPNGW
    route add -net 78.16.0.0/16 gw $VPNGW
    route add -net 63.110.0.0/16 gw $VPNGW
    route add -net 72.246.0.0/16 gw $VPNGW
    # for vimeo
    route add -net 74.113.233.0/24 gw $VPNGW

    # for recordhistory.org
    route add -host 69.163.224.254 gw $VPNGW

    # for delicious
    route add -net 50.18.0.0/16 gw $VPNGW

配置完成后全家电脑无需安装任何软件或做任何配置就实现了翻墙, 用起来感觉很爽。 但grace mode还有个小问题, 就是发现有些国外网站被墙了后要手动把ip加入vpn_custom, 稍显麻烦。