文章目录
安装goagent
极壹S目前比较成熟的OpenWrt固件就是PandoraBox了(只有LAN灯不亮,其他一切正常),登录到路由器,按照顺序安装下列软件包
libffipyopensslpython-opensslpython-crypto
使用WinSCP登录路由器,文件协议选择SCP,建立/usr/lib/goagent
文件夹,上传goagent的certs
文件夹和下列文件
CA.crtdnslib-0.8.3.eggproxy.iniproxy.pacproxy.py
由于安全线程的问题,该固件的/lib/libcrypto.so.1.0.0
/lib/libssl.so.1.0.0
两个文件需要替换掉,否则goagent会经常崩溃,壹S自带的SD卡里带了这两个文件
重启路由就可以了。
goagent开机自启动
在启动项中增加
#goagentkillall pythonpython /usr/lib/goagent/proxy.py &
或者将goagent注册为系统服务,新建一个文件goagent,内容如下
上传到/etc/init.d目录,并将文件属性设置为0755,再登陆OpenWrt的WEB界面就可以在启动项中看到了,点击启用和开始即可
可选安装包
libevent2python-greenletgevent
开启gevent模式,可以优化性能,减少系统资源占用。
libevent2
可以在WEB界面直接安装,python-greenlet
和gevent
官方源没有提供,下载ipk包上传到/tmp
目录
opkg install /tmp/文件名.ipk
如果安装时遇到pkg_hash_fetch_best_installation_candidate
错误,在WEB管理界面->系统->软件包->配置(或者手动编辑/etc/opkg.conf
)尾部追加
arch all 1arch ralink 200arch ramips_24kec 100
再执行安装,重启goagent可以看到gevent/1.0
字样,说明启动成功最明显的变化就是可以在top
中看到goagent的内存占用减少了一半左右。
配合Dnsmasq和iptables实现自动科学上网
添加防火墙自定义规则
iptables -t nat -N GFWiptables -t nat -A GFW -p tcp -d 1.1.1.0/24 -j REDIRECT --to-ports iptables -t nat -A GFW -p tcp -j RETURNiptables -t nat -A PREROUTING -p tcp -j GFW
在Dnsmasq中将域名解析到1.1.1.1/254 示例代码如下
#Flickraddress=/.flickr.com/1.1.1.1address=/.yimg.com/1.1.1.1address=/.staticflickr.com/1.1.1.1
具体设置方法参考openwrt过滤广告
修改goagent配置文件开启透明代理模式以支持https转发
[gae]transport = 1python2.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 Block192.168.1.1 static.youku.com192.168.1.1 player.youku.com192.168.1.1 v.youku.com192.168.1.1 js.tudouui.com192.168.1.1 player.ku6cdn.com192.168.1.1 player.ku6.com192.168.1.1 player.pplive.cn192.168.1.1 tv.sohu.com
本地连接的DNS使用路由的IP或者在路由中添加防火墙规则强制转发到路由器,在防火墙自定义规则中添加代码(手动修改文件路径/etc/firewall.user
)
#DNSiptables -t nat -I PREROUTING -p tcp --dport 53 -j REDIRECT --to-ports 53iptables -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=131072mkswap /mnt/sd/.swapswapon /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 mountconfig_foreach do_swapon swap
文章中所有出现的/mnt/sd/
是我的SD卡路径,可以使用df
命令查看自己的SD挂载路径,该版本的多拨有个BUG,重启之后不会拨号,在本地启动脚本中加入 /etc/init.d/nwannumset start
即可。
评论