降低KoolProxy视频模式占用CPU的修改尝试

Padavan 星雨 3374℃ 0评论

 

背景:只想过滤视频广告,不想影响网速。
带宽:100M带宽移动,上传10M
测试:speedtest.net
情况:新版KoolProxy视频模式,测试网速,下载等,单核占用CPU 100%。

很多人说KoolProxy占用CPU,影响网速是由于用的默认配置,全局。全局过滤必须经过CPU的处理所以性能就由CPU决定了。
一般要求不高我建议用ipSet+https+http 这样的组合方式(设备安装证书)。需求比较奇特,只想过滤视频广告给电视盒子,ipad等用,又不想影响网速。

修改原理:刚才说用ipSet 测试speedtest.net,CPU占用是比较低的,测试结果在93.XMbit。所以需要修改视频模式(全局)为iPSet工作模式。

修改结果:视频模式 修改前后对比效果看图。当然最后用ie测试了优酷和qq视频过滤效果是有的。

修改前: 修改后:

修改方法:启用路由的ssh登录,用WinSCP进入“/koolshare/koolproxy” 打开 “kp_config.sh” 文件,这个是KP的配置文件。
不想看的直接下载我的文件替换:注意:备份原本文件,删除.pdf后缀后替换
kp_config.sh.pdf (10.76 KB, 下载次数: 54) 替换后确认权限是否与之前的文件一致 rwxr-xr-x 0755 ,不然有可能无运行权限导致失效。

以下是具体修改方法论:
你会发现有三个规则定义

  1. #全局模式
  2. [ “$koolproxy_policy” = “1” ]
  3. #ipSet
  4. [ “$koolproxy_policy” = “2” ]
  5. #全局视频模式
  6. [ “$koolproxy_policy” = “3” ]

复制代码

寻找ipSet 规则 2的编写,发现有把ip 放入dnsmasq

  1. add_ipset_conf(){
  2.         if [ “$koolproxy_policy” == “2” ];then
  3.                 echo_date 添加黑名单软连接…
  4.                 rm -rf /jffs/configs/dnsmasq.d/koolproxy_ipset.conf
  5.                 ln -sf /koolshare/koolproxy/data/koolproxy_ipset.conf /jffs/configs/dnsmasq.d/koolproxy_ipset.conf
  6.                 dnsmasq_restart=1
  7.         fi
  8. }

复制代码

照样画葫芦修改增加,视频模式也设置ipset

  1. add_ipset_conf(){
  2.         if [ “$koolproxy_policy” == “2” ] || [ “$koolproxy_policy” == “3” ];then
  3.                 echo_date 添加黑名单软连接…
  4.                 rm -rf /jffs/configs/dnsmasq.d/koolproxy_ipset.conf
  5.                 ln -sf /koolshare/koolproxy/data/koolproxy_ipset.conf /jffs/configs/dnsmasq.d/koolproxy_ipset.conf
  6.                 dnsmasq_restart=1
  7.         fi
  8. }

复制代码

下一个修改点猜测是全局还是跑ipset的设置,可以看到视频模式是跑全局过滤的。

  1. # 全局模式和视频模式
  2.         [ “$koolproxy_policy” == “1” ] || [ “$koolproxy_policy” == “3” ] && iptables -t nat -I PREROUTING 2 -p tcp -j KOOLPROXY
  3.         # ipset 黑名单模式
  4.         [ “$koolproxy_policy” == “2” ] && iptables -t nat -I PREROUTING 2 -p tcp -m set –match-set black_koolproxy dst -j KOOLPROXY

复制代码

继续依样画葫芦,让视频模式只跑ipSet。

  1. # 全局模式和视频模式
  2.         [ “$koolproxy_policy” == “1” ]  && iptables -t nat -I PREROUTING 2 -p tcp -j KOOLPROXY
  3.         # ipset 黑名单模式
  4.         [ “$koolproxy_policy” == “2” ] || [ “$koolproxy_policy” == “3” ] && iptables -t nat -I PREROUTING 2 -p tcp -m set –match-set black_koolproxy dst -j KOOLPROXY
  5. }

复制代码

下一个修改点DNS劫持

  1. dns_takeover(){
  2.         ss_chromecast=`dbus get ss_basic_chromecast`
  3.         lan_ipaddr=`nvram get lan_ipaddr`
  4.         #chromecast=`iptables -t nat -L PREROUTING -v -n|grep “dpt:53″`
  5.         chromecast_nu=`iptables -t nat -L PREROUTING -v -n –line-numbers|grep “dpt:53″|awk ‘{print $1}’`
  6.         if [ “$koolproxy_policy” == “2” ]; then
  7.                 if [ -z “$chromecast_nu” ]; then
  8.                         echo_date 黑名单模式开启DNS劫持
  9.                         iptables -t nat -A PREROUTING -p udp –dport 53 -j DNAT –to $lan_ipaddr >/dev/null 2>&1
  10.                 else
  11.                         echo_date DNS劫持规则已经添加,跳过~

复制代码

把视频模式也增加劫持项目,仿真ipset

  1. dns_takeover(){
  2.         ss_chromecast=`dbus get ss_basic_chromecast`
  3.         lan_ipaddr=`nvram get lan_ipaddr`
  4.         #chromecast=`iptables -t nat -L PREROUTING -v -n|grep “dpt:53″`
  5.         chromecast_nu=`iptables -t nat -L PREROUTING -v -n –line-numbers|grep “dpt:53″|awk ‘{print $1}’`
  6.         if [ “$koolproxy_policy” == “2” ] || [ “$koolproxy_policy” == “3” ]; then
  7.                 if [ -z “$chromecast_nu” ]; then
  8.                         echo_date 黑名单模式开启DNS劫持
  9.                         iptables -t nat -A PREROUTING -p udp –dport 53 -j DNAT –to $lan_ipaddr >/dev/null 2>&1
  10.                 else
  11.                         echo_date DNS劫持规则已经添加,跳过~

复制代码

到这里已经修改完毕,可以让视频模式 从全局跑ipSet了!

以下修改不影响使用,只影响日志效果!!

闲话,之前在本区反映过确认设置的时候的打印日志,视频模式会打印加载静态规则的问题:

  1. http://koolshare.cn/thread-96440-1-1.html

复制代码

图片情况是打印问题部分的,只加载静态规则。实际应该打印加载视频规则!

这次修改发现了问题,不是视频模式的都会打印加载静态和视频模式,但视频模式的时候就只打印加载静态:

  1. echo_date 加载静态规则日期:$rules_date_local,条数:$rules_nu_local
  2.         dbus set koolproxy_rule_info=”更新日期:$rules_date_local / $rules_nu_local条”
  3.         [ “$koolproxy_policy” != “3” ] && echo_date 加载视频规则日期:$video_date_local
  4.         dbus set koolproxy_video_info=”更新日期:$video_date_local”

复制代码

于是还是按照上面的说的方法,这里是一个与的关系也就只要条件不满足就不打印了。
让静态和视频的打印条件是非视频模式选项时打印,如果是视频模式就只打印加载视频模式字样。

  1. [ “$koolproxy_policy” != “3” ] && echo_date 加载静态规则日期:$rules_date_local,条数:$rules_nu_local
  2.         dbus set koolproxy_rule_info=”更新日期:$rules_date_local / $rules_nu_local条”
  3.         [ “$koolproxy_policy” != “3” ] && echo_date 加载视频规则日期:$video_date_local
  4.         dbus set koolproxy_video_info=”更新日期:$video_date_local”
  5.         [ “$koolproxy_policy” = “3” ] && echo_date 加载视频规则日期:$video_date_local
  6.         dbus set koolproxy_video_info=”更新日期:$video_date_local”

复制代码

修改过后已经显示OK,全局和视频模式分别都可以显示对应的文本打印出来。

QQ拼音截图20170529112334.png (52.33 KB, 下载次数: 0)

下载附件  保存到相册

2017-5-29 11:24 上传

最后:希望KP官方可以直接增加视频模式跑ipSet的模式!降低CPU的占用。

 

供部分因为使用KP偶尔卡网或者拖累带宽的朋友使用。
方法是修改文件/koolshare/koolproxy/data/koolproxy_ipset.conf,替换为如下内容(请先备份原版文件)
完成后,选择在KP插件中IPSET模式即可。
另外希望官方出个视频黑名单模式。


ipset=/.tv/black_koolproxy
ipset=/.cibntv.net/black_koolproxy
ipset=/.pplive.com/black_koolproxy
ipset=/.irs01.com/black_koolproxy
ipset=/.irs01.net/black_koolproxy
ipset=/.miaozhen.com/black_koolproxy
ipset=/.admaster.com.cn/black_koolproxy
ipset=/.sohu.com/black_koolproxy
ipset=/.miaopai.com/black_koolproxy
ipset=/.letvcdn.com/black_koolproxy
ipset=/.ifeng.com/black_koolproxy
ipset=/.huya.com/black_koolproxy
ipset=/17173.com/black_koolproxy
ipset=/v.baidu.com/black_koolproxy
ipset=/1000fr.net/black_koolproxy
ipset=/56.com/black_koolproxy
ipset=/v-56.com/black_koolproxy
ipset=/acfun.com/black_koolproxy
ipset=/acfun.tv/black_koolproxy
ipset=/baofeng.com/black_koolproxy
ipset=/baofeng.net/black_koolproxy
ipset=/cntv.cn/black_koolproxy
ipset=/hoopchina.com.cn/black_koolproxy
ipset=/funshion.com/black_koolproxy
ipset=/fun.tv/black_koolproxy
ipset=/hitvs.cn/black_koolproxy
ipset=/hljtv.com/black_koolproxy
ipset=/iqiyi.com/black_koolproxy
ipset=/qiyi.com/black_koolproxy
ipset=/agn.aty.sohu.com/black_koolproxy
ipset=/itc.cn/black_koolproxy
ipset=/kankan.com/black_koolproxy
ipset=/ku6.com/black_koolproxy
ipset=/letv.com/black_koolproxy
ipset=/letvcloud.com/black_koolproxy
ipset=/letvimg.com/black_koolproxy
ipset=/pplive.cn/black_koolproxy
ipset=/pps.tv/black_koolproxy
ipset=/ppsimg.com/black_koolproxy
ipset=/pptv.com/black_koolproxy
ipset=/v.qq.com/black_koolproxy
ipset=/l.qq.com/black_koolproxy
ipset=/video.sina.com.cn/black_koolproxy
ipset=/tudou.com/black_koolproxy
ipset=/wasu.cn/black_koolproxy
ipset=/analytics-union.xunlei.com/black_koolproxy
ipset=/kankan.xunlei.com/black_koolproxy
ipset=/youku.com/black_koolproxy
ipset=/hunantv.com/black_koolproxy

转载请注明:星雨小站 » 降低KoolProxy视频模式占用CPU的修改尝试

如果你觉得这篇文章对你有帮助,请支持我继续更新网站!捐赠本站
喜欢 (0)or分享 (0)
发表我的评论
取消评论
表情

Hi,您需要填写昵称和邮箱!

  • 昵称 (必填)
  • 邮箱 (必填)
  • 网址