家里的移动设备越来越多,目前就有8台终端要联网,服役了3年的D-LINK终于到了要下岗的时候了,赶上京东的618店庆,拿了个带SD的极壹S,到手直接刷残废了,无限重启,无限闪灯,赶上阿兵要结婚没顾上折腾,就扔在一边了。
抽开手之后才开始仔细研究一下这个小东西,极路由按住RESET加电会通过TFTP加载固件,理论上FLASH本身没坏的情况下是刷不坏的(我反复刷了4次才正常开机),ROOT和刷Openwrt有傻瓜包,网上教程到处都是就不再赘述了。
更新日期 2014/9/30
安装goagent
极壹S目前比较成熟的OpenWrt固件就是PandoraBox了(只有LAN灯不亮,其他一切正常),登录到路由器,按照顺序安装下列软件包
libffi pyopenssl python-openssl python-crypto
使用WinSCP登录路由器,文件协议选择SCP,建立/usr/lib/goagent
文件夹,上传goagent的certs
文件夹和下列文件
CA.crt dnslib-0.8.3.egg proxy.ini proxy.pac proxy.py
由于安全线程的问题,该固件的/lib/libcrypto.so.1.0.0
/lib/libssl.so.1.0.0
两个文件需要替换掉,否则goagent会经常崩溃,壹S自带的SD卡里带了这两个文件
重启路由就可以了。
goagent开机自启动
在启动项中增加
#goagent killall python python /usr/lib/goagent/proxy.py &
或者将goagent注册为系统服务,新建一个文件goagent,内容如下
1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 | #!/bin/sh /etc/rc.common START=99; PIDFILE="/var/run/goagent.pid"; DAEMON="/usr/lib/goagent/proxy.py"; start() { sleep 3; if `ps |grep -v grep |grep "python $DAEMON" >/dev/nul`; then echo "running"; else start-stop-daemon -S -m -p $PIDFILE -c nobody -b -x python -- $DAEMON; fi; } stop() { if `ps |grep -v grep |grep "python $DAEMON" >/dev/nul`; then start-stop-daemon -K -p $PIDFILE; else echo "Not running"; fi; } |
上传到/etc/init.d目录,并将文件属性设置为0755,再登陆OpenWrt的WEB界面就可以在启动项中看到了,点击启用和开始即可
可选安装包
libevent2 python-greenlet gevent
开启gevent模式,可以优化性能,减少系统资源占用。
libevent2
可以在WEB界面直接安装,python-greenlet
和gevent
官方源没有提供,下载ipk包上传到/tmp
目录
opkg install /tmp/文件名.ipk
如果安装时遇到pkg_hash_fetch_best_installation_candidate
错误,在WEB管理界面->系统->软件包->配置(或者手动编辑/etc/opkg.conf
)尾部追加
arch all 1 arch ralink 200 arch ramips_24kec 100
再执行安装,重启goagent可以看到gevent/1.0
字样,说明启动成功最明显的变化就是可以在top
中看到goagent的内存占用减少了一半左右。
配合Dnsmasq和iptables实现自动科学上网
添加防火墙自定义规则
iptables -t nat -N GFW iptables -t nat -A GFW -p tcp -d 1.1.1.0/24 -j REDIRECT --to-portsiptables -t nat -A GFW -p tcp -j RETURN iptables -t nat -A PREROUTING -p tcp -j GFW
在Dnsmasq中将域名解析到1.1.1.1/254 示例代码如下
#Flickr address=/.flickr.com/1.1.1.1 address=/.yimg.com/1.1.1.1 address=/.staticflickr.com/1.1.1.1
具体设置方法参考openwrt过滤广告
修改goagent配置文件开启透明代理模式以支持https转发
[gae] transport = 1
python2.7占用的空间很骇人,搜遍百度谷歌也没有找到解决方案,于是研究了下代码,这里分享下这个小技巧,可以节约2M左右的空间,保留/usr/lib/python2.7
目录中的config
lib-dynload
plat-linux2
site-packages
os.py
,其他的文件压缩到/usr/lib/python27.zip
以牺牲少量性能,来换取点空间折腾其他东西。
安装nginx屏蔽优酷/土豆/酷6/PPTV/搜狐视频广告
有了优酷去广告 – 解决2003错误的顿悟之后,终于可以和优酷广告说拜拜了
首先解除固件自带的uhttpd对80端口的占用,修改/etc/config/uhttpd
文件中的80端口为其他的不常用端口,执行
/etc/init.d/uhttpd restart
重启uhttpd,这样路由的WEB管理界面就变成了192.168.1.1:自定义端口
到OpenWrt安装nginx软件包,编辑/etc/nginx/nginx.conf
文件添加以下内容
流量太大,服务器跨了,暂不开放了
编辑/etc/hosts
文件或者本地的hosts
文件添加内容
# AD Block 192.168.1.1 static.youku.com 192.168.1.1 player.youku.com 192.168.1.1 v.youku.com 192.168.1.1 js.tudouui.com 192.168.1.1 player.ku6cdn.com 192.168.1.1 player.ku6.com 192.168.1.1 player.pplive.cn 192.168.1.1 tv.sohu.com
本地连接的DNS使用路由的IP或者在路由中添加防火墙规则强制转发到路由器,在防火墙自定义规则中添加代码(手动修改文件路径/etc/firewall.user
)
#DNS iptables -t nat -I PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53 iptables -t nat -I PREROUTING -p udp --dport 53 -j REDIRECT --to-ports 53
重启路由或者运行/etc/init.d/nginx restart
重启nginx
现在访问这些视频网站就没有广告了,其他视频网站支持还在开发中..
修改系统文件数限制
如果nginx运行一段时间之后经常500错误,可以修改系统文件数限制,编辑/etc/sysctl.conf
文件中的fs.file-max
为65536,执行sysctl -p
应用
挂载swap
按照这样使用的话极路由的128M内存还真是有点吃紧,给一点swap以应对突发情况
使用Putty登录路由执行以下命令
dd if=/dev/zero of=/mnt/sd/.swap bs=1024 count=131072 mkswap /mnt/sd/.swap swapon /mnt/sd/.swap
这版潘多拉没办法使用fstab来自动开机挂载swap文件,我们可以在启动项中加入swapon /mnt/sd/.swap
来实现开机自动挂载
这个奇怪的问题已经找到解决办法了,由于我们的swap文件在SD卡上所以要先挂载了SD卡才能访问到swap文件,编辑/etc/init.d/fstab
文件,将start()部分的do_swapon放到do_mount后面,重启fstab就可以了
config_foreach do_mount mount config_foreach do_swapon swap
文章中所有出现的/mnt/sd/
是我的SD卡路径,可以使用df
命令查看自己的SD挂载路径,该版本的多拨有个BUG,重启之后不会拨号,在本地启动脚本中加入 /etc/init.d/nwannumset start
即可。即使只将被封的网站流量通过路由器,对路由的小CPU来说也还是比较吃力的,所以可以配合pdnsd解决DNS污染问题,很多网站就可以直连了。
nginx的这段,可以完整的发到我邮箱里面吗?
不好意思,没有在维护了.
编辑/etc/nginx/nginx.conf文件添加以下内容。是什么内容?
极路由极2理论上也是可以刷入极1S的固件吗?我看主控芯片都一样,只不过5Gwifi不能用?
U应该是一样的,但是1s的固件编译工程中很多HC5661字样,我不确定2是否要改成HC5761,应该是可以做出1s/2通用的固件,但是专门为1s编译的固件估计是有问题的,但是应该可以开机。
建议作者拓展一下,网站结构,可以做个分布式的技术交流站群。
欸?greenlet和gevent有编译好的嘛?
围观下
这个和那个opengg有啥不一样(去广告的部分)
一样的,不同的是路由器下所有设备都没广告了,电脑/PAD/手机都没了。
大神可以把上面的固件和IPK包都发给我吗?
打算在tp720试试能不能干掉优酷的ad
好方法!谢谢楼主分享
这相当于是用NGINX+IPTABLES做了一个代理?所有请求都走它,会不会影响迅雷之类的P2P下载?尤其性能方面……有点担心,楼主测试过没?
Dnsmasq中特定IP才会去goagent,nginx反代的只是视频网站的几个SWF,理论上是不会影响到P2P,不是一回事吧
话说不启动啊
python-greenlet和gevent 的ipk无法下载!
用ss替代goagent 还不错
正好需要
真厉害
想求那个代码,现在也是不想要广告
这个和那个opengg有啥不一样(去广告的部分)
霸气的分享!技术宅拯救世界
围观下
在tomato上安装nginx是否也可以?
Tomato也能装Nginx实现相同的效果。
nginx的这段,可以完整的发到我邮箱里面吗?
可是极路由官方有极1S的Openwrt包啊。
有个问题想请教一下,为什么螃蟹的芯片不能刷Openwrt呢?
官方只放出了极1的源码吧,至于什么芯片支持什么固件,这个和CPU厂商有关系,没驱动固件的开发者也没办法。
我的极1S刷Openwrt后,空闲空间: 86% (1.40 MB),只有这点,安装一个软件就没有空间了,博主的是这样的吗?这正常吗。路由器名称 PandoraBox
路由器型号 HiWiFi JI2 Board
固件版本 OpenWrt PandoraBox 12.09.1 / LuCI 0.11 Branch (0.11+svn)
内核版本 3.4.100
我刷的内核是3.38,型号那里显示的是D-Team PRY-1
有推荐的极2的Openwrt的包吗?或者博主你可以帮适配一个吗?官方的HiwifiOS我真的用的醉了,各种莫名其妙的Bug
请博主加我QQ好吗?我不是极路由,是如意云,也想像你这样,我会先按照你的文章操作,有不会的想方便向您请教,请一定要加QQ啊,我的QQ2577503
博主那个群 55969444 人满不能加了。。想问一下自己编译极壹s 的 openwrt 该怎么搞?MT7620a 的 u 貌似官方 svn 上的 openwrt 源码里没有
谢谢
不太清楚,潘多拉没有开源,听说有人自己编译OP成功了,不过各种问题,建议刷PandoraBox-ralink-pry1-r208-20140123.bin吧
多谢博主!我后来照着 hiwifimi.com 上面的教程来了,他们的固件还挺稳定的,能否帮我加到极路由群里?我 qq 22987382
抱歉啊,我不是管理…
博主能否讲OP固件共享一下?我刷的是PandoraBox-ralink-pry1-r208-20140123.bin,安装python一直不成功,运行的时候就提示“Illegal instruction”。
另外python-greenlet和gevent两个文件能否也共享一下?
谢谢
我第一次刷是傻瓜包,现在用的是从这个群里找的固件 55969444,不知道是不是20140123,群共享里有很多1s相关的资源,你可以去看看。
前辈, 小白新入1s , pandorabox下要如何挂载SD呢, 我搜索了教程,没出现/dev/sda 这个东西 。
刷完潘多拉重启之后SD会自动挂载的,你到/mnt目录下看看有个文件夹应该就是了。
好高端的方法,虽然不是1s我也去试试
不简单的折腾哈!
好折腾,直接用浏览器广告拦截插件就可以了,不过自己动手搞的,感觉就是不同~~
围观下
ftab 还是 fstab ?
抱歉,笔误,谢谢更正
高端!
现在 goa 也不稳定啊!
仔细筛选下IP段,每个地区每个运营商都不一样,网上公布的不一定适合你,我这里稳定到没话说。
这方法应该适合各种OpenWrt系统的路由器吧
话是这么说,但是有些地方是针对这个U和这个固件,会玩OpenWrt的可以参考,只会复制代码的新手最好是1s啦,呵呵