2020
07-24

KoolProxy只过滤视频广告iPSet工作模式解决CPU占用高,KoolProxy过滤视频广告iPSet工作模式

由于KoolProxy占用CPU非常高,所以就想能不能只过滤视频广告,这样应该会降低一些CPU占用,下面是具体实现方法。

KoolProxy只过滤视频广告iPSet工作模式解决CPU占用高

目的:只想过滤视频广告,不想影响网速。
带宽:100M带宽移动,上传10M
测试:https://www.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的配置文件。

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

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

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

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

让视频模式也设置ipset,修改后如下:

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

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

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

让视频模式只跑ipSet。修改后如下:

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

下一个修改点DNS劫持

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

把视频模式也增加劫持项目,仿真ipset,修改后如下:

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

到这里已经修改完毕,可以让视频模式 从全局跑ipSet了!修改过后日志会显示不正常,不影响正常使用。

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

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

原文地址:http://koolshare.cn/thread-96440-1-1.html

如果您通过本站解决了一些问题,并希望本站能够很好的发展下去,动动手指即可帮助我们。

如无特殊说明,解压密码均为:aisoa.cn

您可能感兴趣的文章

支付宝打赏支付宝打赏微信打赏微信打赏