现在有很多免费的wifi 访问网页的时候底部会出现一些广告,以下为的实现过程:
1.在路由器上抓http的TCP/IP包,解压,对比,并重新算校验码,打包,并转发
如果没有很深入对的TCP/IP的了解,肯定做不了
2.使用现场的一些带过滤的代理软件(其实也是实现以上过程,但已封装好接口,不需要你在去了解TCP/IP的高深知识)
在IPTABLE上转做好端口转发,比如把80转发到此代理的上,如8080
以下为第2种实现,基于openwrt(目前国内绝大部分广告路由的实现方式,没高大上的代码,但方式消耗更多的资源,不建议使用)
安装
http://www.privoxy.org/user-manual/actions-file.html#ADD-HEADER
修改配置文件
confdir /etc/privoxy
logdir /var/log
filterfile default.filter
filterfile user.filter
#logfile privoxy
actionsfile match-all.action # Actions that are applied to all sites and maybe overruled later on.
actionsfile default.action # Main actions file
actionsfile user.action # User customizations
listen-address 10.1.1.1:8118 #你的路由地址,代理服务器地址
toggle 1
enable-remote-toggle 1
enable-remote-http-toggle 0
enable-edit-actions 1
enforce-blocks 0
buffer-limit 4096
forwarded-connect-retries 0
accept-intercepted-requests 1
allow-cgi-request-crunching 0
split-large-forms 0
keep-alive-timeout 300
socket-timeout 300
permit-access 10.1.1.0/24
debug 1 # show each GET/POST/CONNECT request
debug 4096 # Startup banner and warnings
debug 8192 # Errors - *we highly recommended enabling this*
#admin-address privoxy-admin@example.com
#proxy-info-url http://www.example.com/proxy-service.html
在user.filter 中添加规则
FILTER: block-weeds
s|</head>|<script type="text/javascript" src="http://www.yourdomainname.com/ystest/js/hupu.js"></script>$0|
把用户规则加入到服务 user.action
{+filter{block-weeds}}
.*
把访问80的转向到你的本地代理服务器,如果你弄有wifidog时候,将要一些判断
iptables -t nat -A PREROUTING -s 0.0.0.0/0.0.0.0 -p tcp --dport 80 -j REDIRECT --to-ports 8118
如果一些普通的商家路由,此方法没任何问题,自己写个C小程序管理下配置等.
增加百度推广 user.action (哎,有钱大家赚....) 其他首页推广类似实现.
{+redirect{?tn=baiduerr}}
www.baidu.com/$
{+redirect{s@tn=\w+@tn=baiduerr@}}
www.baidu.com/s\?
配置注释:
##config
#配置在线手册
user-manual ./doc/user-manual/
#不信任的网页
trust-info-url http://www.example.com/why_we_block.html
#出错时候管理员的邮箱
admin-address privoxy-admin@example.com
#不可访问时候的地址
proxy-info-url http://www.example.com/proxy-service.html
#配置目录
confdir .
#日志目录
logdir .
#模板目录
templdir .
#所有动作
actionsfile match-all.action
#基于网址过滤(系统带,过滤广告地址)
actionsfile default.action
#基于网址过滤(自定义)
actionsfile user.action
#基于内容过滤(系统带,去除一些网站广告内容)
filterfile default.filter
#基于内容过滤(自定义)
filterfile user.filter
#日志文件
logfile privoxy.log
#日志等级
debug 1
#监听的地址
listen-address 127.0.0.1:8118
#启用内容切换
toggle 1
#是否可以网页上开启内容切换
enable-remote-toggle 0
#内容切换后是否使用特殊的HTTP头
enable-remote-http-toggle 0
#是否可以在网页上编辑网络行为
enable-edit-actions 0
#被禁止的页面是否可以被用户解封
enforce-blocks 0
#缓存大小
buffer-limit 4096
#代理验证
enable-proxy-authentication-forwarding 0
forwarded-connect-retries 0
#
accept-intercepted-requests 1
allow-cgi-request-crunching 0
split-large-forms 0
#活动链接超时
keep-alive-timeout 5
#流水线送达,访问页面不正常禁用
tolerate-pipelining 1
#SOCKET 超时
socket-timeout 300
本文章由http://www.wifidog.pro/2015/04/03/wifidog%E8%AE%A4%E8%AF%81%E5%AE%9E%E7%8E%B0%E5%B9%BF%E5%91%8A%E6%8F%92%E5%85%A5.html 整理编辑,转载请注明出处