dd-wrt 集体翻墙(实现分流)

你妹这篇文章写好了突然不再了, fuck 又得重新写,真的不知道什么原因;

前两天以前的一个大学同学突然qq问到我有没有弄过dd-wrt,这个路由器固件也听说过很久,但是一直也没空去关注

于是就决定弄一下,起初远程进去看了一下同学路由器的配置都和网上标准一个样,就是看不到连接上了pptpvpn了没有

于是我就登录telnet 进入命令终端去看看, 毕竟做为一个中级以上的Linux运维,linux的日常调试这些没任何问题,刚好

dd-wrt也是基于linux开发的命令这些差不多都有, 发现日志没有出什么问题,于是就手动pptp /tmp/pptpclient/pptp.conf 这个配置文件

发现也没反应,在进去一看配置文件貌似有问题,于是叫同学又去弄了一个版本换上去,这个版本对了,直接按照网上的标注配置上去就能ok

,但是还是不能上twitter, 于是又登录进去,发现在网络接口出现了ppp0 这个接口,

在route 看一下原来是路由没有加, 在跑到web界面的管理->命令中去看 ,发现粘帖网上的shell启动脚本有问题, 空格很多都变成了乱码

,终于发现问题了, 这个启动脚本有问题, 可能是粘帖时候编码之类的原因到处出现乱码, 所以修改一下配置脚本 重启动路由器,等了90秒

终于能上twitter了

sleep 90  OLDGW=$(nvram get wan_gateway)  VPNSRV=$(nvram get pptpd_client_srvip)  VPNSRVSUB=$(nvram get pptpd_client_srvsub)  PPTPDEV=$(route -n | grep ^${VPNSRVSUB%.[0-9]*} | awk '{print $NF}'| head -n 1)  VPNGW=$(ifconfig $PPTPDEV | grep -Eo "P-t-P:([0-9.]+)" | cut -d: -f2)  route add -host $VPNSRV gw $OLDGW  route del default gw $OLDGW  route add default gw $VPNGW

启动后等90秒主要是那个sleep 90 决定,其实可以修改为sleep 20 ,因为这个脚本貌似是在路由器启动好了后才开始运行;

忙活了将近一天终于搞定了,能帮到同学忙,感觉也不错, 由于昨天说了下 说现在国内的流量其实可以走国内线路,没必要走vpn速度慢死了
,其实原理和网上的chnroutes 项目差不多,就是指定路由表的方式, 让国内线路走default gateway 出去,其它的流量全部走vpn出去, 导入的路由表也是
国内所有的地址和网段,
其实Google上也有个项目autoaddvpn ,地址如下:
svn checkout http://autoddvpn.googlecode.com/svn/trunk/ autoddvpn-read-only

svn下来之后,我们只需要根目录的vpnup.sh 这个文件从里面提取出

route add -net *.*.*.*/*

的条目,有将近3k条,于是马上就想通过web界面的管理保存到启动脚本里面,无奈,可能是太多了吧,直接保存卡死了,保存不完 ,然后上网一查,才知道
要打开挂载jffs2 这个 ,但是进入管理也没看没有开启jffs2 这个选项,原来是路由器不支持,这样没办法 ,没法直接保存到路由器上面了
难道只有手动的每次断电后去粘帖这个路由表麽,这样肯定不行, 于是在网上看到一篇文章:

http://2955941.blog.51cto.com/2945941/910748

这文章说的就是,我们可以把路由表文件写成一个启动脚本类型,然后放到远程的一台路由器能够访问到的服务器上面, 这样在路由器启动时候 ,我们保存
一个启动指令自动下载远程服务器的文件,并运行就ok了, 这让我想到了思科交换机路由器也有这个功能, 开源的东西就是自定义操作强,命令如下:

 if  [ ! -e  "/tmp/startup.sh" ];then   cd /tmp/; wget https://blog.4u45.com/startup.sh    ./startup.sh   fi

这样就ok了,每次启动了自动执行,忙活了将近2天,这下可以解决一套东西 也挺不错,以后自己有公司了 ,全部选择开源的路由软件,节约成本 ,哈哈,开源的东西
很稳定的;


原文:https://blog.4u45.com/?p=641
发表评论