极路由壹S-安装goagent+nginx实现科学上网和优酷去广告

泥人传说
泥人传说
泥人传说
887
文章
109
评论
2016-02-1811:05:05
评论
758 2892字

安装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,内容如下

极路由壹S-安装goagent+nginx实现科学上网和优酷去广告 网络问题 第1张-泥人传说

极路由壹S-安装goagent+nginx

上传到/etc/init.d目录,并将文件属性设置为0755,再登陆OpenWrt的WEB界面就可以在启动项中看到了,点击启用和开始即可

可选安装包

libevent2python-greenletgevent

开启gevent模式,可以优化性能,减少系统资源占用。

libevent2可以在WEB界面直接安装,python-greenletgevent官方源没有提供,下载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 = 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 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 即可。

  • 本文由 发表于 2016-02-1811:05:05
  • 转载请务必保留本文链接:http://nrcs.xyz/networks/304.html
匿名

发表评论

匿名网友 填写信息

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: