├── Makefile ├── README.md ├── files ├── bin │ ├── arm │ ├── i386 │ ├── mips │ ├── mipsel │ └── x86_64 ├── etc │ ├── adblocklist │ │ ├── adblock │ │ ├── adblockip │ │ ├── adbypass │ │ └── adbypassip │ ├── config │ │ └── koolproxy │ ├── init.d │ │ └── koolproxy │ └── uci-defaults │ │ └── luci-koolproxy ├── lib │ └── upgrade │ │ └── keep.d │ │ └── koolproxy └── usr │ ├── lib │ └── lua │ │ └── luci │ │ ├── controller │ │ └── koolproxy.lua │ │ ├── i18n │ │ └── koolproxy.zh-cn.lmo │ │ ├── model │ │ └── cbi │ │ │ └── koolproxy │ │ │ ├── global.lua │ │ │ └── rss_rule.lua │ │ └── view │ │ └── koolproxy │ │ ├── cadvalue.htm │ │ ├── caupload.htm │ │ ├── dvalue.htm │ │ └── index.htm │ ├── sbin │ └── adblockplus │ └── share │ └── koolproxy │ ├── adblock.conf │ ├── camanagement │ ├── data │ ├── gen_ca.sh │ ├── openssl.cnf │ ├── rules │ │ ├── daily.txt │ │ ├── koolproxy.txt │ │ ├── kp.dat │ │ └── user.txt │ ├── source.list │ └── user.txt │ ├── dnsmasq.adblock │ ├── koolproxy_ipset.conf │ └── kpupdate ├── koolproxy.txt └── koolproxyupdate.sh /Makefile: -------------------------------------------------------------------------------- 1 | include $(TOPDIR)/rules.mk 2 | 3 | PKG_NAME:=luci-app-koolproxy 4 | PKG_VERSION:=3.8.4 5 | PKG_RELEASE:=4 6 | 7 | PKG_MAINTAINER:=panda-mute 8 | PKG_LICENSE:=GPLv3 9 | PKG_LICENSE_FILES:=LICENSE 10 | 11 | PKG_BUILD_PARALLEL:=1 12 | 13 | RSTRIP:=true 14 | 15 | include $(INCLUDE_DIR)/package.mk 16 | 17 | define Package/luci-app-koolproxy 18 | SECTION:=luci 19 | CATEGORY:=LuCI 20 | SUBMENU:=3. Applications 21 | TITLE:=LuCI support for koolproxy 22 | DEPENDS:=+openssl-util +ipset +dnsmasq-full +@BUSYBOX_CONFIG_DIFF +iptables-mod-nat-extra +wget 23 | MAINTAINER:=panda-mute 24 | endef 25 | 26 | define Package/luci-app-koolproxy/description 27 | This package contains LuCI configuration pages for koolproxy. 28 | endef 29 | 30 | define Build/Compile 31 | endef 32 | 33 | define Package/luci-app-koolproxy/postinst 34 | #!/bin/sh 35 | if [ -z "$${IPKG_INSTROOT}" ]; then 36 | ( . /etc/uci-defaults/luci-koolproxy ) && rm -f /etc/uci-defaults/luci-koolproxy 37 | rm -f /tmp/luci-indexcache 38 | fi 39 | exit 0 40 | endef 41 | 42 | define Package/luci-app-koolproxy/install 43 | $(INSTALL_DIR) $(1)/etc/uci-defaults 44 | $(INSTALL_DIR) $(1)/etc/config 45 | $(INSTALL_DIR) $(1)/etc/adblocklist 46 | $(INSTALL_DIR) $(1)/etc/init.d 47 | $(INSTALL_DIR) $(1)/lib/upgrade/keep.d 48 | $(INSTALL_DIR) $(1)/usr/lib/lua/luci/i18n/ 49 | $(INSTALL_DIR) $(1)/usr/lib/lua/luci/controller 50 | $(INSTALL_DIR) $(1)/usr/lib/lua/luci/model/cbi/koolproxy 51 | $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view 52 | $(INSTALL_DIR) $(1)/usr/lib/lua/luci/view/koolproxy 53 | $(INSTALL_DIR) $(1)/usr/sbin 54 | $(INSTALL_DIR) $(1)/usr/share/koolproxy 55 | $(INSTALL_DIR) $(1)/usr/share/koolproxy/data 56 | $(INSTALL_DIR) $(1)/usr/share/koolproxy/data/rules/ 57 | 58 | $(INSTALL_BIN) ./files/etc/uci-defaults/luci-koolproxy $(1)/etc/uci-defaults/luci-koolproxy 59 | $(INSTALL_BIN) ./files/etc/init.d/* $(1)/etc/init.d/ 60 | $(INSTALL_DATA) ./files/etc/config/* $(1)/etc/config/ 61 | $(INSTALL_DATA) ./files/etc/adblocklist/* $(1)/etc/adblocklist/ 62 | $(INSTALL_DATA) ./files/lib/upgrade/keep.d/koolproxy $(1)/lib/upgrade/keep.d/ 63 | $(INSTALL_DATA) ./files/usr/lib/lua/luci/model/cbi/koolproxy/global.lua $(1)/usr/lib/lua/luci/model/cbi/koolproxy/global.lua 64 | $(INSTALL_DATA) ./files/usr/lib/lua/luci/model/cbi/koolproxy/rss_rule.lua $(1)/usr/lib/lua/luci/model/cbi/koolproxy/rss_rule.lua 65 | $(INSTALL_DATA) ./files/usr/lib/lua/luci/controller/koolproxy.lua $(1)/usr/lib/lua/luci/controller/koolproxy.lua 66 | $(INSTALL_DATA) ./files/usr/lib/lua/luci/view/koolproxy/* $(1)/usr/lib/lua/luci/view/koolproxy/ 67 | $(INSTALL_DATA) ./files/usr/lib/lua/luci/i18n/koolproxy.zh-cn.lmo $(1)/usr/lib/lua/luci/i18n/koolproxy.zh-cn.lmo 68 | $(INSTALL_BIN) ./files/usr/sbin/* $(1)/usr/sbin/ 69 | $(INSTALL_BIN) ./files/usr/share/koolproxy/data/gen_ca.sh $(1)/usr/share/koolproxy/data/ 70 | $(INSTALL_DATA) ./files/usr/share/koolproxy/data/openssl.cnf $(1)/usr/share/koolproxy/data/ 71 | $(INSTALL_DATA) ./files/usr/share/koolproxy/data/user.txt $(1)/usr/share/koolproxy/data/ 72 | $(INSTALL_DATA) ./files/usr/share/koolproxy/data/source.list $(1)/usr/share/koolproxy/data/ 73 | $(INSTALL_DATA) ./files/usr/share/koolproxy/data/rules/* $(1)/usr/share/koolproxy/data/rules/ 74 | $(INSTALL_BIN) ./files/usr/share/koolproxy/camanagement $(1)/usr/share/koolproxy/camanagement 75 | $(INSTALL_BIN) ./files/usr/share/koolproxy/kpupdate $(1)/usr/share/koolproxy/kpupdate 76 | $(INSTALL_DATA) ./files/usr/share/koolproxy/koolproxy_ipset.conf $(1)/usr/share/koolproxy/koolproxy_ipset.conf 77 | $(INSTALL_DATA) ./files/usr/share/koolproxy/dnsmasq.adblock $(1)/usr/share/koolproxy/dnsmasq.adblock 78 | ifeq ($(ARCH),mipsel) 79 | $(INSTALL_BIN) ./files/bin/mipsel $(1)/usr/share/koolproxy/koolproxy 80 | endif 81 | ifeq ($(ARCH),mips) 82 | $(INSTALL_BIN) ./files/bin/mips $(1)/usr/share/koolproxy/koolproxy 83 | endif 84 | ifeq ($(ARCH),i386) 85 | $(INSTALL_BIN) ./files/bin/i386 $(1)/usr/share/koolproxy/koolproxy 86 | endif 87 | ifeq ($(ARCH),x86_64) 88 | $(INSTALL_BIN) ./files/bin/x86_64 $(1)/usr/share/koolproxy/koolproxy 89 | endif 90 | ifeq ($(ARCH),arm) 91 | $(INSTALL_BIN) ./files/bin/arm $(1)/usr/share/koolproxy/koolproxy 92 | endif 93 | endef 94 | 95 | $(eval $(call BuildPackage,luci-app-koolproxy)) 96 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | ## 声明: 2 | 1. KoolProxy 是一个免费软件,著作权归属 KoolProxy.com,用户可以非商业性地复制和使用 KoolProxy,但禁止将 KoolProxy 用于商业用途。 3 | 2. KoolProxy 可以对 https 网络数据进行识别代理,使用 https 功能的用户需要自己提供相关证书,本程序提供的证书生成脚本仅供用户参考,证书的保密工作由用户自行负责。 4 | 3. 使用本软件的风险由用户自行承担,在适用法律允许的最大范围内,对因使用本产品所产生的损害及风险,包括但不限于直接或间接的个人损害、商业赢利的丧失、贸易中断、商业信息的丢失或任何其它经济损失,KoolProxy.com 不承担任何责任。 5 | 6 | koolproxy更新日志: 7 | http://koolshare.cn/thread-64086-1-1.html 8 | 9 | koolproxy性能测试: 10 | http://koolshare.cn/thread-80772-1-1.html 11 | 12 | 13 | ## 准备工作: 14 | 15 | 先运行:
16 | `opkg install openssl-util ipset dnsmasq-full diffutils iptables-mod-nat-extra wget ca-bundle ca-certificates libustream-openssl`
17 | 手动安装以上依赖包
18 | 19 | 如果以上文字很难复制,请到这里去复制:https://github.com/koolshare/firmware/blob/master/binary/KoolProxy/luci/README.md
20 | 21 | * 如果没有 **openssl** ,就不能正常生成证书,导致https过滤失败! 22 | * 如果没有 **ipset, dnsmasq-full, diffutils**,黑名单模式也会出现问题!(ipset 需要版本6),如果你的固件的busybox带有支持diff支持,那么diffutils包可以不安装 23 | * 如果没有 **iptables-mod-nat-extra** ,会导致mac过滤失效! 24 | * 如果没有 **wget, ca-bundle, ca-certificates, libustream-openssl** ,会导致规则文件更新失败,host规则条数变为0,如果你的固件的busybox带有支持https的wget,那么这几个包可以不安装 25 |

26 | 27 | ## 开始安装: 28 | 请使用cat /proc/cpuinfo查询自己路由器的cpu架构,注意ar系列基本都是mips,mtk的都是mipsel,然后根据自己的cpu架构选择对应的安装方式:
29 | 请使用putty或者其它SSH工具登陆到路由器,然后在联网状态下运行:
30 | mips: opkg install http://firmware.koolshare.cn/binary/KoolProxy/luci/luci-app-koolproxy_mips.ipk
31 | mipsel: opkg install http://firmware.koolshare.cn/binary/KoolProxy/luci/luci-app-koolproxy_mipsel.ipk
32 | arm: opkg install http://firmware.koolshare.cn/binary/KoolProxy/luci/luci-app-koolproxy_arm.ipk
33 | i386: opkg install http://firmware.koolshare.cn/binary/KoolProxy/luci/luci-app-koolproxy_i386.ipk
34 | x86_64: opkg install http://firmware.koolshare.cn/binary/KoolProxy/luci/luci-app-koolproxy_x86_64.ipk
35 | 36 | 如果需要中文翻译,还需要运行
37 | opkg install http://firmware.koolshare.cn/binary/KoolProxy/luci/luci-i18n-koolproxy-zh-cn.ipk 38 | 39 | ## 注意事项: 40 | 1. 首次运行koolproxy的时候,保存并提交速度较慢,因为会生成证书。 41 | 2. 使用koolshare论坛fw867发布的LEDE固件的朋友,不建议安装此luci,虽然也能使用(需要卸载掉自带的koolproxy再安装),但是部分代码和原固件集成的有差别,建议使用F大固件的朋友仅仅更新二进制文件即可 42 | 3. 此版本在网件WNDR4300V1(mips) OpenWrt Chaos Calmer 15.05.1上测试通过,其它机型暂时未经过测试,如果遇到问题,请到以下渠道进行反馈: 43 | * QQ群:https://jq.qq.com/?_wv=1027&k=445DYpV
44 | * TG群:https://t.me/joinchat/AAAAAD-tO7GPvfOU131_vg 45 | 46 | ## LUCI更新日志: 47 | 2017年03月31日 17:01, koolproxy 3.3.6 48 | 49 | 50 | -------------------------------------------------------------------------------- /files/bin/arm: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openwrt-develop/luci-app-koolproxy/e888e1ed7c8708410bdf2768fef135130602ae42/files/bin/arm -------------------------------------------------------------------------------- /files/bin/i386: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openwrt-develop/luci-app-koolproxy/e888e1ed7c8708410bdf2768fef135130602ae42/files/bin/i386 -------------------------------------------------------------------------------- /files/bin/mips: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openwrt-develop/luci-app-koolproxy/e888e1ed7c8708410bdf2768fef135130602ae42/files/bin/mips -------------------------------------------------------------------------------- /files/bin/mipsel: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openwrt-develop/luci-app-koolproxy/e888e1ed7c8708410bdf2768fef135130602ae42/files/bin/mipsel -------------------------------------------------------------------------------- /files/bin/x86_64: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openwrt-develop/luci-app-koolproxy/e888e1ed7c8708410bdf2768fef135130602ae42/files/bin/x86_64 -------------------------------------------------------------------------------- /files/etc/adblocklist/adblock: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openwrt-develop/luci-app-koolproxy/e888e1ed7c8708410bdf2768fef135130602ae42/files/etc/adblocklist/adblock -------------------------------------------------------------------------------- /files/etc/adblocklist/adblockip: -------------------------------------------------------------------------------- 1 | 61.160.200.252 -------------------------------------------------------------------------------- /files/etc/adblocklist/adbypass: -------------------------------------------------------------------------------- 1 | v2ex.com 2 | -------------------------------------------------------------------------------- /files/etc/adblocklist/adbypassip: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openwrt-develop/luci-app-koolproxy/e888e1ed7c8708410bdf2768fef135130602ae42/files/etc/adblocklist/adbypassip -------------------------------------------------------------------------------- /files/etc/config/koolproxy: -------------------------------------------------------------------------------- 1 | 2 | config global 3 | option time_update '4' 4 | option koolproxy_port '0' 5 | option startup_delay '5' 6 | option koolproxy_acl_default '0' 7 | option koolproxy_mode '2' 8 | option koolproxy_host '1' 9 | option koolproxy_rules 'kp.dat user.txt' 10 | option enabled '0' 11 | 12 | config rss_rule 13 | option name '乘风广告过滤规则' 14 | option url 'https://raw.githubusercontent.com/xinggsf/Adblock-Plus-Rule/master/ABP-FX.txt' 15 | option file 'ABP-FX.txt' 16 | option load '0' 17 | option time '2019-04-28 20:58' 18 | 19 | config rss_rule 20 | option load '0' 21 | option name 'Fanboy' 22 | option url 'https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/fanboy-annoyance.txt' 23 | option file 'fanboy-annoyance.txt' 24 | option time '2019-08-10 08:32' 25 | -------------------------------------------------------------------------------- /files/etc/init.d/koolproxy: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | # 3 | # Copyright (C) 2015 OpenWrt-dist 4 | # Copyright (C) 2016 fw867 5 | # 6 | # This is free software, licensed under the GNU General Public License v3. 7 | # See /LICENSE for more information. 8 | # 9 | 10 | START=99 11 | USE_PROCD=1 12 | 13 | CONFIG=koolproxy 14 | KP_DIR=/usr/share/koolproxy 15 | TMP_DIR=/tmp 16 | 17 | alias echo_date='echo $(date +%Y年%m月%d日\ %X):' 18 | 19 | config_n_get() { 20 | local ret=$(uci get $CONFIG.$1.$2 2>/dev/null) 21 | echo ${ret:=$3} 22 | } 23 | 24 | config_t_get() { 25 | local index=0 26 | [ -n "$4" ] && index=$4 27 | local ret=$(uci get $CONFIG.@$1[$index].$2 2>/dev/null) 28 | echo ${ret:=$3} 29 | } 30 | 31 | add_ipset_conf() { 32 | if [ -s /etc/adblocklist/adbypass ]; then 33 | echo_date 添加白名单软连接... 34 | cat /etc/adblocklist/adbypass | sed "s/,/\n/g" | sed "s/^/ipset=&\/./g" | sed "s/$/\/white_kp_list/g" >> /tmp/adbypass.conf 35 | rm -rf /tmp/dnsmasq.d/adbypass.conf 36 | ln -sf /tmp/adbypass.conf /tmp/dnsmasq.d/adbypass.conf 37 | 38 | dnsmasq_restart=1 39 | fi 40 | 41 | if [ "$koolproxy_mode" == "2" ]; then 42 | if [ "$koolproxy_host" == "1" ];then 43 | echo_date 添加Adblock Plus Host软连接... 44 | ln -sf $KP_DIR/dnsmasq.adblock /tmp/dnsmasq.d/dnsmasq.adblock 45 | fi 46 | 47 | echo_date 添加黑名单软连接... 48 | rm -rf /tmp/dnsmasq.d/koolproxy_ipset.conf 49 | ln -sf $KP_DIR/koolproxy_ipset.conf /tmp/dnsmasq.d/koolproxy_ipset.conf 50 | 51 | echo_date 添加自定义黑名单软连接... 52 | if [ -s /etc/adblocklist/adblock ]; then 53 | cat /etc/adblocklist/adblock | sed "s/,/\n/g" | sed "s/^/ipset=&\/./g" | sed "s/$/\/black_koolproxy/g" >> /tmp/adblock.conf 54 | rm -rf /tmp/dnsmasq.d/adblock.conf 55 | ln -sf /tmp/adblock.conf /tmp/dnsmasq.d/adblock.conf 56 | fi 57 | 58 | dnsmasq_restart=1 59 | fi 60 | } 61 | 62 | remove_ipset_conf() { 63 | if [ -L "/tmp/dnsmasq.d/adbypass.conf" ]; then 64 | echo_date 移除白名单软连接... 65 | rm -rf /tmp/adbypass.conf 66 | rm -rf /tmp/dnsmasq.d/adbypass.conf 67 | dnsmasq_restart=1 68 | fi 69 | 70 | if [ -L "/tmp/dnsmasq.d/koolproxy_ipset.conf" ]; then 71 | echo_date 移除黑名单软连接... 72 | rm -rf /tmp/dnsmasq.d/koolproxy_ipset.conf 73 | dnsmasq_restart=1 74 | fi 75 | 76 | if [ -L "/tmp/dnsmasq.d/adblock.conf" ]; then 77 | echo_date 移除自定义黑名单软连接... 78 | rm -rf /tmp/dnsmasq.d/adblock.conf 79 | rm -rf /tmp/adblock.conf 80 | dnsmasq_restart=1 81 | fi 82 | 83 | if [ -L "/tmp/dnsmasq.d/dnsmasq.adblock" ]; then 84 | echo_date 移除Adblock Plus Host软连接... 85 | rm -rf /tmp/dnsmasq.d/dnsmasq.adblock 86 | dnsmasq_restart=1 87 | fi 88 | } 89 | 90 | 91 | restart_dnsmasq() { 92 | if [ "$dnsmasq_restart" == "1" ]; then 93 | echo_date 重启dnsmasq进程... 94 | /etc/init.d/dnsmasq restart > /dev/null 2>&1 95 | fi 96 | } 97 | 98 | creat_ipset() { 99 | echo_date 创建ipset名单 100 | # Load ipset netfilter kernel modules and kernel modules 101 | ipset -! create white_kp_list nethash 102 | ipset -! create black_koolproxy iphash 103 | cat $KP_DIR/data/rules/koolproxy.txt $KP_DIR/data/rules/daily.txt $KP_DIR/data/rules/user.txt | grep -Eo "(.\w+\:[1-9][0-9]{1,4})/" | grep -Eo "([0-9]{1,5})" | sort -un | sed -e '$a\80' -e '$a\443' | sed -e "s/^/-A kp_full_port &/g" -e "1 i\-N kp_full_port bitmap:port range 0-65535 " | ipset -R -! 104 | } 105 | 106 | add_white_black_ip() { 107 | echo_date 添加ipset名单 108 | ip_lan="0.0.0.0/8 10.0.0.0/8 100.64.0.0/10 127.0.0.0/8 169.254.0.0/16 172.16.0.0/12 192.168.0.0/16 224.0.0.0/4 240.0.0.0/4" 109 | for ip in $ip_lan 110 | do 111 | ipset -A white_kp_list $ip >/dev/null 2>&1 112 | 113 | done 114 | sed -e "s/^/add white_kp_list &/g" /etc/adblocklist/adbypassip | awk '{print $0} END{print "COMMIT"}' | ipset -R 2>/dev/null 115 | ipset -A black_koolproxy 110.110.110.110 >/dev/null 2>&1 116 | sed -e "s/^/add black_koolproxy &/g" /etc/adblocklist/adblockip | awk '{print $0} END{print "COMMIT"}' | ipset -R 2>/dev/null 117 | } 118 | 119 | load_config() { 120 | ENABLED=$(config_t_get global enabled 0) 121 | [ $ENABLED -ne 1 ] && return 0 122 | koolproxy_mode=$(config_t_get global koolproxy_mode 1) 123 | koolproxy_host=$(config_t_get global koolproxy_host 0) 124 | koolproxy_acl_default=$(config_t_get global koolproxy_acl_default 1) 125 | koolproxy_port=$(config_t_get global koolproxy_port 0) 126 | koolproxy_bp_port=$(config_t_get global koolproxy_bp_port) 127 | config_load $CONFIG 128 | return 1 129 | } 130 | 131 | __load_lan_acl() { 132 | local mac 133 | local ipaddr 134 | local proxy_mode 135 | config_get mac $1 mac 136 | config_get ipaddr $1 ipaddr 137 | config_get proxy_mode $1 proxy_mode 138 | [ -n "$ipaddr" ] && [ -z "$mac" ] && echo_date 加载ACL规则:【$ipaddr】模式为:$(get_mode_name $proxy_mode) 139 | [ -z "$ipaddr" ] && [ -n "$mac" ] && echo_date 加载ACL规则:【$mac】模式为:$(get_mode_name $proxy_mode) 140 | [ -n "$ipaddr" ] && [ -n "$mac" ] && echo_date 加载ACL规则:【$ipaddr】【$mac】模式为:$(get_mode_name $proxy_mode) 141 | #echo iptables -t nat -A KOOLPROXY $(factor $ipaddr "-s") $(factor $mac "-m mac --mac-source") -p tcp $(get_jump_mode $proxy_mode) $(get_action_chain $proxy_mode) 142 | iptables -t nat -A KOOLPROXY $(factor $ipaddr "-s") $(factor $mac "-m mac --mac-source") -p tcp $(get_jump_mode $proxy_mode) $(get_action_chain $proxy_mode) 143 | 144 | acl_nu=`expr $acl_nu + 1` 145 | } 146 | 147 | lan_acess_control() { 148 | acl_nu=0 149 | [ -z "$koolproxy_acl_default" ] && koolproxy_acl_default=1 150 | config_foreach __load_lan_acl acl_rule 151 | if [ $acl_nu -ne 0 ]; then 152 | echo_date 加载ACL规则:其余主机模式为:$(get_mode_name $koolproxy_acl_default) 153 | else 154 | echo_date 加载ACL规则:所有模式为:$(get_mode_name $koolproxy_acl_default) 155 | fi 156 | } 157 | 158 | __load_exrule() { 159 | local file 160 | local exrule 161 | local enable 162 | config_get file $1 file 163 | config_get exrule $1 url 164 | config_get enable $1 load 165 | if [ -n "$exrule" ]; then 166 | if [ $enable -ne 1 ]; then 167 | [ -n "$file" ] && [ -f $KP_DIR/data/rules/$file ] && rm -f $KP_DIR/data/rules/$file 168 | uci set koolproxy.$1.time="" 169 | uci commit koolproxy 170 | return 171 | fi 172 | 173 | if [ -z "$file" ]; then 174 | file=$(echo $exrule |awk -F "/" '{print $NF}') 175 | uci set koolproxy.$1.file="$file" 176 | uci commit koolproxy 177 | fi 178 | 179 | if [ ! -f $KP_DIR/data/rules/$file ]; then 180 | wget-ssl --quiet --timeout=5 --no-check-certificate $exrule -O $TMP_DIR/$file 181 | if [ "$?" == "0" ]; then 182 | uci set koolproxy.$1.time="`date +%Y-%m-%d" "%H:%M`" 183 | uci commit koolproxy 184 | mv $TMP_DIR/$file $KP_DIR/data/rules/$file 185 | else 186 | echo "koolproxy download rule $file failed!" 187 | [ -f $TMP_DIR/$file ] && rm -f $TMP_DIR/$file 188 | fi 189 | fi 190 | cat $KP_DIR/data/rules/$file >>$KP_DIR/data/rules/user.txt 191 | fi 192 | } 193 | 194 | load_user_rules() { 195 | cp $KP_DIR/data/user.txt $KP_DIR/data/rules/user.txt 196 | config_foreach __load_exrule rss_rule 197 | } 198 | 199 | load_rules() { 200 | sed -i '1,7s/1/0/g' $KP_DIR/data/source.list 201 | 202 | local rulelist="$(uci -q get koolproxy.@global[0].koolproxy_rules)" 203 | for rule in $rulelist 204 | do 205 | case "$rule" in 206 | koolproxy.txt) 207 | sed -i '1s/0/1/g' $KP_DIR/data/source.list 208 | ;; 209 | daily.txt) 210 | sed -i '2s/0/1/g' $KP_DIR/data/source.list 211 | ;; 212 | kp.dat) 213 | sed -i '3s/0/1/g' $KP_DIR/data/source.list 214 | ;; 215 | user.txt) 216 | sed -i '4s/0/1/g' $KP_DIR/data/source.list 217 | ;; 218 | esac 219 | done 220 | 221 | local rulelist="$(uci -q get koolproxy.@global[0].thirdparty_rules)" 222 | for rule in $rulelist 223 | do 224 | case "$rule" in 225 | easylistchina.txt) 226 | sed -i '5s/0/1/g' $KP_DIR/data/source.list 227 | ;; 228 | chengfeng.txt) 229 | sed -i '6s/0/1/g' $KP_DIR/data/source.list 230 | ;; 231 | fanboy.txt) 232 | sed -i '7s/0/1/g' $KP_DIR/data/source.list 233 | ;; 234 | esac 235 | done 236 | } 237 | 238 | get_mode_name() { 239 | case "$1" in 240 | 0) 241 | echo "不过滤" 242 | ;; 243 | 1) 244 | echo "http模式" 245 | ;; 246 | 2) 247 | echo "http + https" 248 | ;; 249 | 3) 250 | echo "full port" 251 | ;; 252 | esac 253 | } 254 | 255 | get_jump_mode() { 256 | case "$1" in 257 | 0) 258 | echo "-j" 259 | ;; 260 | *) 261 | echo "-g" 262 | ;; 263 | esac 264 | } 265 | 266 | get_action_chain() { 267 | case "$1" in 268 | 0) 269 | echo "RETURN" 270 | ;; 271 | 1) 272 | echo "KP_HTTP" 273 | ;; 274 | 2) 275 | echo "KP_HTTPS" 276 | ;; 277 | 3) 278 | echo "KP_ALL_PORT" 279 | ;; 280 | esac 281 | } 282 | 283 | factor() { 284 | if [ -z "$1" ] || [ -z "$2" ]; then 285 | echo "" 286 | else 287 | echo "$2 $1" 288 | fi 289 | } 290 | 291 | load_nat() { 292 | echo_date 加载nat规则! 293 | #----------------------BASIC RULES--------------------- 294 | echo_date 写入iptables规则到nat表中... 295 | # 创建KOOLPROXY nat rule 296 | iptables -t nat -N KOOLPROXY 297 | # 局域网地址不走KP 298 | iptables -t nat -A KOOLPROXY -m set --match-set white_kp_list dst -j RETURN 299 | # 生成对应CHAIN 300 | iptables -t nat -N KP_HTTP 301 | iptables -t nat -A KP_HTTP -p tcp -m multiport --dport 80 -j REDIRECT --to-ports 3000 302 | iptables -t nat -N KP_HTTPS 303 | iptables -t nat -A KP_HTTPS -p tcp -m multiport --dport 80,443 -j REDIRECT --to-ports 3000 304 | iptables -t nat -N KP_ALL_PORT 305 | #iptables -t nat -A KP_ALL_PORT -p tcp -j REDIRECT --to-ports 3000 306 | # 端口控制 307 | if [ "$koolproxy_port" == "1" ]; then 308 | echo_date 开启端口控制:【$koolproxy_bp_port】 309 | if [ -n "$koolproxy_bp_port" ]; then 310 | iptables -t nat -A KP_ALL_PORT -p tcp -m multiport ! --dport $koolproxy_bp_port -m set --match-set kp_full_port dst -j REDIRECT --to-ports 3000 311 | else 312 | iptables -t nat -A KP_ALL_PORT -p tcp -m set --match-set kp_full_port dst -j REDIRECT --to-ports 3000 313 | fi 314 | else 315 | iptables -t nat -A KP_ALL_PORT -p tcp -m set --match-set kp_full_port dst -j REDIRECT --to-ports 3000 316 | fi 317 | # 局域网控制 318 | lan_acess_control 319 | # 剩余流量转发到缺省规则定义的链中 320 | iptables -t nat -A KOOLPROXY -p tcp -j $(get_action_chain $koolproxy_acl_default) 321 | # 重定所有流量到 KOOLPROXY 322 | # 全局模式和视频模式 323 | [ "$koolproxy_mode" == "1" ] || [ "$koolproxy_mode" == "3" ] && iptables -t nat -I PREROUTING 1 -p tcp -j KOOLPROXY 324 | # ipset 黑名单模式 325 | [ "$koolproxy_mode" == "2" ] && iptables -t nat -I PREROUTING 1 -p tcp -m set --match-set black_koolproxy dst -j KOOLPROXY 326 | } 327 | 328 | add_cru() { 329 | time=$(config_t_get global time_update) 330 | wirtecron=$(cat /etc/crontabs/root | grep "00 $time * * *" | grep kpupdate) 331 | if [ -z "$wirtecron" ];then 332 | sed -i '/kpupdate/d' /etc/crontabs/root >/dev/null 2>&1 333 | echo "0 $time * * * /usr/share/koolproxy/kpupdate" >> /etc/crontabs/root 334 | fi 335 | } 336 | 337 | del_cru() { 338 | sed -i '/kpupdate/d' /etc/crontabs/root >/dev/null 2>&1 339 | } 340 | 341 | detect_cert(){ 342 | if [ ! -f $KP_DIR/data/private/ca.key.pem -o ! -f $KP_DIR/data/cert/ca.crt ]; then 343 | echo_date 开始生成koolproxy证书,用于https过滤! 344 | cd $KP_DIR/data && sh gen_ca.sh 345 | fi 346 | } 347 | 348 | flush_nat() { 349 | echo_date 移除nat规则... 350 | cd $TMP_DIR 351 | iptables -t nat -S | grep -E "KOOLPROXY|KP_HTTP|KP_HTTPS|KP_ALL_PORT" | sed 's/-A/iptables -t nat -D/g'|sed 1,4d > clean.sh && chmod 777 clean.sh && ./clean.sh 352 | [ -f $TMP_DIR/clean.sh ] && rm -f $TMP_DIR/clean.sh 353 | iptables -t nat -X KOOLPROXY > /dev/null 2>&1 354 | iptables -t nat -X KP_HTTP > /dev/null 2>&1 355 | iptables -t nat -X KP_HTTPS > /dev/null 2>&1 356 | iptables -t nat -X KP_ALL_PORT > /dev/null 2>&1 357 | ipset -F black_koolproxy > /dev/null 2>&1 && ipset -X black_koolproxy > /dev/null 2>&1 358 | ipset -F white_kp_list > /dev/null 2>&1 && ipset -X white_kp_list > /dev/null 2>&1 359 | } 360 | 361 | export_ipt_rules() { 362 | FWI=$(uci get firewall.koolproxy.path 2>/dev/null) 363 | [ -n "$FWI" ] || return 0 364 | cat <<-CAT >>$FWI 365 | iptables-save -c | grep -v -E "KOOLPROXY|KP" | iptables-restore -c 366 | iptables-restore -n <<-EOF 367 | $(iptables-save | grep -E "KOOLPROXY|KP|^\*|^COMMIT" |\ 368 | sed -e "s/^-A \(PREROUTING\)/-I \1 1/") 369 | EOF 370 | CAT 371 | return $? 372 | } 373 | 374 | flush_ipt_rules() { 375 | FWI=$(uci get firewall.koolproxy.path 2>/dev/null) 376 | [ -n "$FWI" ] && echo '# firewall include file' >$FWI 377 | return 0 378 | } 379 | 380 | pre_start() { 381 | load_config 382 | [ $? -ne 1 ] && return 0 383 | iptables -t nat -C PREROUTING -p tcp -j KOOLPROXY 2>/dev/null && [ $? -eq 0 ] && return 0; 384 | detect_cert 385 | load_rules 386 | load_user_rules 387 | add_ipset_conf && restart_dnsmasq 388 | creat_ipset 389 | add_white_black_ip 390 | load_nat 391 | flush_ipt_rules && export_ipt_rules 392 | add_cru 393 | [ "$koolproxy_mode" == "1" ] && echo_date 选择【全局过滤模式】 394 | [ "$koolproxy_mode" == "2" ] && echo_date 选择【IPSET过滤模式】 395 | if [ "$koolproxy_mode" == "3" ]; then 396 | echo_date 选择【视频过滤模式】 397 | sed -i '1s/1/0/g;2s/1/0/g' $KP_DIR/data/source.list 398 | fi 399 | return 1 400 | } 401 | 402 | post_stop() { 403 | load_config 404 | [ $? -ne 1 ] && NO_RESTART_DNSMASQ=false 405 | if [ $NO_RESTART_DNSMASQ ]; then 406 | remove_ipset_conf 407 | else 408 | remove_ipset_conf && restart_dnsmasq 409 | fi 410 | flush_ipt_rules 411 | flush_nat 412 | del_cru 413 | return 0 414 | } 415 | 416 | start_service() { 417 | echo_date ================== koolproxy启用 ================ 418 | pre_start 419 | [ $? -ne 1 ] && return 0 420 | 421 | procd_open_instance 422 | procd_set_param command /usr/share/koolproxy/koolproxy 423 | procd_append_param command --mark 424 | procd_append_param command --ttl 160 425 | 426 | procd_set_param respawn 427 | 428 | procd_set_param file /etc/adblocklist/adblock 429 | procd_set_param file /etc/adblocklist/adblockip 430 | procd_set_param file /usr/share/koolproxy/data/user.txt 431 | procd_set_param stdout 1 432 | procd_set_param stderr 1 433 | procd_close_instance 434 | 435 | logger "koolproxy has started." 436 | echo_date ================================================= 437 | } 438 | 439 | stop_service() { 440 | echo_date ====================== 关闭 ===================== 441 | post_stop 442 | logger "koolproxy has stopped." 443 | echo_date ================================================= 444 | } 445 | 446 | reload_service() { 447 | logger "koolproxy reload service." 448 | NO_RESTART_DNSMASQ=true 449 | stop 450 | start 451 | } 452 | 453 | service_triggers() { 454 | procd_add_reload_trigger "koolproxy" 455 | } 456 | 457 | restart() { 458 | logger "koolproxy restart service." 459 | NO_RESTART_DNSMASQ=true 460 | stop 461 | start 462 | } 463 | 464 | boot() { 465 | local delay=$(config_t_get global startup_delay 0) 466 | (sleep $delay && start >/dev/null 2>&1) & 467 | return 0 468 | } 469 | -------------------------------------------------------------------------------- /files/etc/uci-defaults/luci-koolproxy: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | uci -q batch <<-EOF >/dev/null 4 | delete ucitrack.@koolproxy[-1] 5 | add ucitrack koolproxy 6 | set ucitrack.@koolproxy[-1].init=koolproxy 7 | commit ucitrack 8 | delete firewall.koolproxy 9 | set firewall.koolproxy=include 10 | set firewall.koolproxy.type=script 11 | set firewall.koolproxy.path=/var/etc/koolproxy.include 12 | set firewall.koolproxy.reload=1 13 | commit firewall 14 | EOF 15 | 16 | rm -f /tmp/luci-indexcache 17 | exit 0 18 | -------------------------------------------------------------------------------- /files/lib/upgrade/keep.d/koolproxy: -------------------------------------------------------------------------------- 1 | /usr/share/koolproxy/data/certs/ca.crt 2 | /usr/share/koolproxy/data/private/base.key.pem 3 | /usr/share/koolproxy/data/private/ca.key.pem 4 | -------------------------------------------------------------------------------- /files/usr/lib/lua/luci/controller/koolproxy.lua: -------------------------------------------------------------------------------- 1 | module("luci.controller.koolproxy",package.seeall) 2 | function index() 3 | if not nixio.fs.access("/etc/config/koolproxy")then 4 | return 5 | end 6 | entry({"admin","services","koolproxy"},cbi("koolproxy/global"),_("KoolProxy"),1).dependent=true 7 | entry({"admin","services","koolproxy","rss_rule"},cbi("koolproxy/rss_rule"), nil).leaf=true 8 | end 9 | -------------------------------------------------------------------------------- /files/usr/lib/lua/luci/i18n/koolproxy.zh-cn.lmo: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openwrt-develop/luci-app-koolproxy/e888e1ed7c8708410bdf2768fef135130602ae42/files/usr/lib/lua/luci/i18n/koolproxy.zh-cn.lmo -------------------------------------------------------------------------------- /files/usr/lib/lua/luci/model/cbi/koolproxy/global.lua: -------------------------------------------------------------------------------- 1 | local fs = require "nixio.fs" 2 | local sys = require "luci.sys" 3 | local http = require "luci.http" 4 | 5 | local o,t,e 6 | local v=luci.sys.exec("/usr/share/koolproxy/koolproxy -v") 7 | local s=luci.sys.exec("head -3 /usr/share/koolproxy/data/rules/koolproxy.txt | grep rules | awk -F' ' '{print $3,$4}'") 8 | local u=luci.sys.exec("head -4 /usr/share/koolproxy/data/rules/koolproxy.txt | grep video | awk -F' ' '{print $3,$4}'") 9 | local p=luci.sys.exec("head -3 /usr/share/koolproxy/data/rules/daily.txt | grep rules | awk -F' ' '{print $3,$4}'") 10 | local l=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/koolproxy.txt | wc -l") 11 | local q=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/rules/daily.txt | wc -l") 12 | local h=luci.sys.exec("grep -v '^!' /usr/share/koolproxy/data/rules/user.txt | wc -l") 13 | local i=luci.sys.exec("cat /usr/share/koolproxy/dnsmasq.adblock | wc -l") 14 | 15 | if luci.sys.call("pidof koolproxy >/dev/null") == 0 then 16 | status = translate("KoolProxy is Running") 17 | else 18 | status = translate("KoolProxy is Not Running") 19 | end 20 | 21 | o = Map("koolproxy", translate("KoolProxy"), translate("A powerful advertisement blocker.
Adblock Plus Host list + koolproxy Blacklist mode runs without loss of bandwidth due to performance issues.
")) 22 | 23 | t = o:section(TypedSection, "global") 24 | t.anonymous = true 25 | t.description = translate(string.format("%s

", status)) 26 | 27 | t:tab("base",translate("Basic Settings")) 28 | 29 | e = t:taboption("base", Flag, "enabled", translate("Enable")) 30 | e.default = 0 31 | e.rmempty = false 32 | 33 | e = t:taboption("base", DummyValue, "koolproxy_status", translate("程序版本")) 34 | e.value = string.format("[ %s ]", v) 35 | 36 | e = t:taboption("base", Value, "startup_delay", translate("Startup Delay")) 37 | e:value(0, translate("Not enabled")) 38 | for _, v in ipairs({5, 10, 15, 25, 40}) do 39 | e:value(v, translate("%u seconds") %{v}) 40 | end 41 | e.datatype = "uinteger" 42 | e.default = 0 43 | e.rmempty = false 44 | 45 | e = t:taboption("base", ListValue, "koolproxy_mode", translate("Filter Mode")) 46 | e.default = 1 47 | e.rmempty = false 48 | e:value(1, translate("全局模式")) 49 | e:value(2, translate("IPSET模式")) 50 | e:value(3, translate("视频模式")) 51 | 52 | e = t:taboption("base", MultiValue, "koolproxy_rules", translate("内置规则")) 53 | e.optional = false 54 | e.rmempty = false 55 | e:value("koolproxy.txt", translate("静态规则")) 56 | e:value("daily.txt", translate("每日规则")) 57 | e:value("kp.dat", translate("视频规则")) 58 | e:value("user.txt", translate("自定义规则")) 59 | 60 | e = t:taboption("base", ListValue, "koolproxy_port", translate("端口控制")) 61 | e.default = 0 62 | e.rmempty = false 63 | e:value(0, translate("关闭")) 64 | e:value(1, translate("开启")) 65 | 66 | e = t:taboption("base", Value, "koolproxy_bp_port", translate("例外端口")) 67 | e:depends("koolproxy_port", "1") 68 | e.rmempty = false 69 | e.description = translate(string.format("单端口:80  多端口:80,443")) 70 | 71 | e=t:taboption("base",Flag,"koolproxy_host",translate("开启Adblock Plus Host")) 72 | e.default=0 73 | e:depends("koolproxy_mode","2") 74 | 75 | 76 | e = t:taboption("base", ListValue, "koolproxy_acl_default", translate("默认访问控制")) 77 | e.default = 1 78 | e.rmempty = false 79 | e:value(0, translate("不过滤")) 80 | e:value(1, translate("http only")) 81 | e:value(2, translate("http + https")) 82 | e:value(3, translate("full port")) 83 | e.description = translate(string.format("访问控制设置中其他主机的默认规则")) 84 | 85 | e = t:taboption("base", ListValue, "time_update", translate("定时更新")) 86 | for t = 0,23 do 87 | e:value(t,translate("每天"..t.."点")) 88 | end 89 | e.default = 0 90 | e.rmempty = false 91 | e.description = translate(string.format("定时更新订阅规则与Adblock Plus Host")) 92 | 93 | e = t:taboption("base", Button, "restart", translate("规则状态")) 94 | e.inputtitle = translate("更新规则") 95 | e.inputstyle = "reload" 96 | e.write = function() 97 | luci.sys.call("/usr/share/koolproxy/kpupdate 2>&1 >/dev/null") 98 | luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy")) 99 | end 100 | e.description = translate(string.format("更新订阅规则与Adblock Plus Host
静态规则: %s / %s条 视频规则: %s
每日规则: %s / %s条 自定义规则: %s条
Host: %s条

", s, l, u, p, q, h, i)) 101 | t:tab("cert",translate("Certificate Management")) 102 | 103 | e=t:taboption("cert",DummyValue,"c1status",translate("
Certificate Restore
")) 104 | e=t:taboption("cert",FileUpload,"") 105 | e.template="koolproxy/caupload" 106 | e=t:taboption("cert",DummyValue,"",nil) 107 | e.template="koolproxy/cadvalue" 108 | if nixio.fs.access("/usr/share/koolproxy/data/certs/ca.crt")then 109 | e=t:taboption("cert",DummyValue,"c2status",translate("
Certificate Backup
")) 110 | e=t:taboption("cert",Button,"certificate") 111 | e.inputtitle=translate("Backup Download") 112 | e.inputstyle="reload" 113 | e.write=function() 114 | luci.sys.call("/usr/share/koolproxy/camanagement backup 2>&1 >/dev/null") 115 | Download() 116 | luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy")) 117 | end 118 | end 119 | 120 | t:tab("white_weblist",translate("网站白名单设置")) 121 | 122 | local i = "/etc/adblocklist/adbypass" 123 | e = t:taboption("white_weblist", TextValue, "adbypass_domain") 124 | e.description = translate("These had been joined websites will not usefilter.Please input the domain names of websites,every line can input only one website domain.For example,google.com.") 125 | e.rows = 28 126 | e.wrap = "off" 127 | e.rmempty = false 128 | 129 | function e.cfgvalue() 130 | return fs.readfile(i) or "" 131 | end 132 | 133 | function e.write(self, section, value) 134 | if value then 135 | value = value:gsub("\r\n", "\n") 136 | else 137 | value = "" 138 | end 139 | fs.writefile("/tmp/adbypass", value) 140 | if (luci.sys.call("cmp -s /tmp/adbypass /etc/adblocklist/adbypass") == 1) then 141 | fs.writefile(i, value) 142 | end 143 | fs.remove("/tmp/adbypass") 144 | end 145 | 146 | t:tab("weblist",translate("Set Backlist Of Websites")) 147 | 148 | local i = "/etc/adblocklist/adblock" 149 | e = t:taboption("weblist", TextValue, "adblock_domain") 150 | e.description = translate("These had been joined websites will use filter,but only blacklist model.Please input the domain names of websites,every line can input only one website domain.For example,google.com.") 151 | e.rows = 28 152 | e.wrap = "off" 153 | e.rmempty = false 154 | 155 | function e.cfgvalue() 156 | return fs.readfile(i) or "" 157 | end 158 | 159 | function e.write(self, section, value) 160 | if value then 161 | value = value:gsub("\r\n", "\n") 162 | else 163 | value = "" 164 | end 165 | fs.writefile("/tmp/adblock", value) 166 | if (luci.sys.call("cmp -s /tmp/adblock /etc/adblocklist/adblock") == 1) then 167 | fs.writefile(i, value) 168 | end 169 | fs.remove("/tmp/adblock") 170 | end 171 | 172 | t:tab("white_iplist",translate("IP白名单设置")) 173 | 174 | local i = "/etc/adblocklist/adbypassip" 175 | e = t:taboption("white_iplist", TextValue, "adbypass_ip") 176 | e.description = translate("These had been joined ip addresses will use proxy, but only GFW model.Please input the ip address or ip address segment,every line can input only one ip address.For example,112.123.134.145/24 or 112.123.134.145.") 177 | e.rows = 28 178 | e.wrap = "off" 179 | e.rmempty = false 180 | 181 | function e.cfgvalue() 182 | return fs.readfile(i) or "" 183 | end 184 | 185 | function e.write(self, section, value) 186 | if value then 187 | value = value:gsub("\r\n", "\n") 188 | else 189 | value = "" 190 | end 191 | fs.writefile("/tmp/adbypassip", value) 192 | if (luci.sys.call("cmp -s /tmp/adbypassip /etc/adblocklist/adbypassip") == 1) then 193 | fs.writefile(i, value) 194 | end 195 | fs.remove("/tmp/adbypassip") 196 | end 197 | 198 | t:tab("iplist",translate("IP黑名单设置")) 199 | 200 | local i = "/etc/adblocklist/adblockip" 201 | e = t:taboption("iplist", TextValue, "adblock_ip") 202 | e.description = translate("These had been joined ip addresses will not use filter.Please input the ip address or ip address segment,every line can input only one ip address.For example,112.123.134.145/24 or 112.123.134.145.") 203 | e.rows = 28 204 | e.wrap = "off" 205 | e.rmempty = false 206 | 207 | function e.cfgvalue() 208 | return fs.readfile(i) or "" 209 | end 210 | 211 | function e.write(self, section, value) 212 | if value then 213 | value = value:gsub("\r\n", "\n") 214 | else 215 | value = "" 216 | end 217 | fs.writefile("/tmp/adblockip", value) 218 | if (luci.sys.call("cmp -s /tmp/adblockip /etc/adblocklist/adblockip") == 1) then 219 | fs.writefile(i, value) 220 | end 221 | fs.remove("/tmp/adblockip") 222 | end 223 | 224 | t:tab("customlist", translate("Set Backlist Of custom")) 225 | 226 | local i = "/usr/share/koolproxy/data/user.txt" 227 | e = t:taboption("customlist", TextValue, "user_rule") 228 | e.description = translate("Enter your custom rules, each row.") 229 | e.rows = 28 230 | e.wrap = "off" 231 | e.rmempty = false 232 | 233 | function e.cfgvalue() 234 | return fs.readfile(i) or "" 235 | end 236 | 237 | function e.write(self, section, value) 238 | if value then 239 | value = value:gsub("\r\n", "\n") 240 | else 241 | value = "" 242 | end 243 | fs.writefile("/tmp/user.txt", value) 244 | if (luci.sys.call("cmp -s /tmp/user.txt /usr/share/koolproxy/data/user.txt") == 1) then 245 | fs.writefile(i, value) 246 | end 247 | fs.remove("/tmp/user.txt") 248 | end 249 | 250 | t:tab("logs",translate("View the logs")) 251 | 252 | local i = "/var/log/koolproxy.log" 253 | e = t:taboption("logs", TextValue, "kpupdate_log") 254 | e.description = translate("Koolproxy Logs") 255 | e.rows = 28 256 | e.wrap = "off" 257 | e.rmempty = false 258 | 259 | function e.cfgvalue() 260 | return fs.readfile(i) or "" 261 | end 262 | 263 | function e.write(self, section, value) 264 | end 265 | 266 | t=o:section(TypedSection,"acl_rule",translate("KoolProxy 访问控制"), 267 | translate("ACLs is a tools which used to designate specific IP filter mode,The MAC addresses added to the list will be filtered using https")) 268 | t.template="cbi/tblsection" 269 | t.sortable=true 270 | t.anonymous=true 271 | t.addremove=true 272 | e=t:option(Value,"remarks",translate("Client Remarks")) 273 | e.width="30%" 274 | e.rmempty=true 275 | e=t:option(Value,"ipaddr",translate("IP Address")) 276 | e.width="20%" 277 | e.datatype="ip4addr" 278 | luci.ip.neighbors({family = 4}, function(neighbor) 279 | if neighbor.reachable then 280 | e:value(neighbor.dest:string(), "%s (%s)" %{neighbor.dest:string(), neighbor.mac}) 281 | end 282 | end) 283 | e=t:option(Value,"mac",translate("MAC Address")) 284 | e.width="20%" 285 | e.rmempty=true 286 | e.datatype="macaddr" 287 | luci.ip.neighbors({family = 4}, function(neighbor) 288 | if neighbor.reachable then 289 | e:value(neighbor.mac, "%s (%s)" %{neighbor.mac, neighbor.dest:string()}) 290 | end 291 | end) 292 | e=t:option(ListValue,"proxy_mode",translate("访问控制")) 293 | e.width="20%" 294 | e.default=1 295 | e.rmempty=false 296 | e:value(0,translate("不过滤")) 297 | e:value(1,translate("http only")) 298 | e:value(2,translate("http + https")) 299 | e:value(3,translate("full port")) 300 | 301 | t=o:section(TypedSection,"rss_rule",translate("KoolProxy 规则订阅"), translate("请确保订阅规则的兼容性")) 302 | t.anonymous=true 303 | t.addremove=true 304 | t.sortable=true 305 | t.template="cbi/tblsection" 306 | t.extedit=luci.dispatcher.build_url("admin/services/koolproxy/rss_rule/%s") 307 | 308 | t.create=function(...) 309 | local sid=TypedSection.create(...) 310 | if sid then 311 | luci.http.redirect(t.extedit % sid) 312 | return 313 | end 314 | end 315 | 316 | e=t:option(Flag,"load",translate("启用")) 317 | e.default=0 318 | e.rmempty=false 319 | 320 | e=t:option(DummyValue,"name",translate("规则名称")) 321 | function e.cfgvalue(...) 322 | return Value.cfgvalue(...) or translate("None") 323 | end 324 | 325 | e=t:option(DummyValue,"url",translate("规则地址")) 326 | function e.cfgvalue(...) 327 | return Value.cfgvalue(...) or translate("None") 328 | end 329 | 330 | e=t:option(DummyValue,"time",translate("更新时间")) 331 | 332 | function Download() 333 | local t,e 334 | t=nixio.open("/tmp/upload/koolproxyca.tar.gz","r") 335 | luci.http.header('Content-Disposition','attachment; filename="koolproxyCA.tar.gz"') 336 | luci.http.prepare_content("application/octet-stream") 337 | while true do 338 | e=t:read(nixio.const.buffersize) 339 | if(not e)or(#e==0)then 340 | break 341 | else 342 | luci.http.write(e) 343 | end 344 | end 345 | t:close() 346 | luci.http.close() 347 | end 348 | local t,e 349 | t="/tmp/upload/" 350 | nixio.fs.mkdir(t) 351 | luci.http.setfilehandler( 352 | function(o,a,i) 353 | if not e then 354 | if not o then return end 355 | e=nixio.open(t..o.file,"w") 356 | if not e then 357 | return 358 | end 359 | end 360 | if a and e then 361 | e:write(a) 362 | end 363 | if i and e then 364 | e:close() 365 | e=nil 366 | luci.sys.call("/usr/share/koolproxy/camanagement restore 2>&1 >/dev/null") 367 | end 368 | end 369 | ) 370 | return o 371 | -------------------------------------------------------------------------------- /files/usr/lib/lua/luci/model/cbi/koolproxy/rss_rule.lua: -------------------------------------------------------------------------------- 1 | local m, s, o 2 | local koolproxy = "koolproxy" 3 | local sid = arg[1] 4 | 5 | m = Map(koolproxy, "%s - %s" %{translate("koolproxy"), translate("编辑规则")}) 6 | m.redirect = luci.dispatcher.build_url("admin/services/koolproxy") 7 | 8 | if not arg[1] or m.uci:get(koolproxy, sid) ~= "rss_rule" then 9 | luci.http.redirect(m.redirect) 10 | return 11 | end 12 | 13 | -- [[ Edit Rule ]]-- 14 | s = m:section(NamedSection, sid, "rss_rule") 15 | s.anonymous = true 16 | s.addremove = true 17 | 18 | o=s:option(Flag,"load",translate("启用")) 19 | o.default=0 20 | o.rmempty=false 21 | 22 | o=s:option(Value,"name",translate("规则描述")) 23 | o.rmempty=true 24 | 25 | o=s:option(Value,"url",translate("规则地址")) 26 | o.rmempty=false 27 | o.placeholder="[https|http|ftp]://[Hostname]/[File]" 28 | function o.validate(self, value) 29 | if not value then 30 | return nil 31 | else 32 | return value 33 | end 34 | end 35 | 36 | return m 37 | -------------------------------------------------------------------------------- /files/usr/lib/lua/luci/view/koolproxy/cadvalue.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | 3 | <% 4 | local val = self:cfgvalue(section) or self.default or "" 5 | write(pcdata(val)) 6 | %> 7 | 8 | <%+cbi/valuefooter%> 9 | -------------------------------------------------------------------------------- /files/usr/lib/lua/luci/view/koolproxy/caupload.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 |
3 | 4 | 5 | <%+cbi/valuefooter%> 6 | -------------------------------------------------------------------------------- /files/usr/lib/lua/luci/view/koolproxy/dvalue.htm: -------------------------------------------------------------------------------- 1 | <%+cbi/valueheader%> 2 | <%=pcdata(self:cfgvalue(section) or self.default or "")%> 3 | <%+cbi/valuefooter%> 4 | -------------------------------------------------------------------------------- /files/usr/lib/lua/luci/view/koolproxy/index.htm: -------------------------------------------------------------------------------- 1 | <%# 2 | Copyright 2016 Chen RuiWei 3 | Licensed to the public under the Apache License 2.0. 4 | -%> 5 | 6 | <% include("cbi/map") %> 7 | 17 | -------------------------------------------------------------------------------- /files/usr/sbin/adblockplus: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | echo "$(date "+%F %T"): 正在下载adblockplus规则..." 3 | wget-ssl --quiet --no-check-certificate https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt -O /tmp/adlist.txt 4 | if [ "$?" == "0" ]; then 5 | grep ^\|\|[^\*]*\^$ /tmp/adlist.txt | sed -e 's:||:address\=\/:' -e 's:\^:/0\.0\.0\.0:' > /tmp/dnsmasq.adblock 6 | rm -f /tmp/adlist.txt 7 | diff /tmp/dnsmasq.adblock /usr/share/koolproxy/dnsmasq.adblock >/dev/null 8 | [ $? = 0 ] && echo "$(date "+%F %T"): adblockplus本地规则和服务器规则相同,无需更新!" && rm -f /tmp/dnsmasq.adblock && return 1 9 | echo "$(date "+%F %T"): 检测到adblockplus规则有更新,开始转换规则!" 10 | sed -i '/youku/d' /tmp/dnsmasq.adblock >/dev/null 2>&1 11 | sed -i '/[1-9]\{1,3\}\.[1-9]\{1,3\}\.[1-9]\{1,3\}\.[1-9]\{1,3\}/d' /tmp/dnsmasq.adblock >/dev/null 2>&1 12 | mv /tmp/dnsmasq.adblock /usr/share/koolproxy/dnsmasq.adblock 13 | echo "$(date "+%F %T"): adblockplus规则转换完成,应用新规则。" 14 | echo "" 15 | echo "$(date "+%F %T"): 重启dnsmasq进程" 16 | /etc/init.d/dnsmasq restart > /dev/null 2>&1 17 | 18 | return 0 19 | else 20 | echo "$(date "+%F %T"): 获取在线版本时出现错误! " 21 | [ -f /tmp/adlist.txt ] && rm -f /tmp/adlist.txt 22 | return 1 23 | fi 24 | -------------------------------------------------------------------------------- /files/usr/share/koolproxy/adblock.conf: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/openwrt-develop/luci-app-koolproxy/e888e1ed7c8708410bdf2768fef135130602ae42/files/usr/share/koolproxy/adblock.conf -------------------------------------------------------------------------------- /files/usr/share/koolproxy/camanagement: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | kpfolder="/usr/share/koolproxy/data" 3 | kplogfile="/var/log/koolproxy.log" 4 | readyfolder="/tmp/upload/koolproxy" 5 | 6 | backup() { 7 | if [ ! -f $kpfolder/private/ca.key.pem ]; then 8 | echo "未找到ca.key.pem,请先运行Koolproxy一次!" > $kplogfile 9 | exit 1 10 | fi 11 | if [ ! -f $kpfolder/private/base.key.pem ]; then 12 | echo "未找到base.key.pem,请先运行Koolproxy一次!" > $kplogfile 13 | exit 1 14 | fi 15 | if [ ! -f $kpfolder/certs/ca.crt ]; then 16 | echo "未找到ca.crt,请先运行Koolproxy一次!" > $kplogfile 17 | exit 1 18 | fi 19 | 20 | mkdir -p /tmp/upload 21 | cd $kpfolder 22 | tar czf /tmp/upload/koolproxyca.tar.gz private/ca.key.pem private/base.key.pem certs/ca.crt 23 | [ -f /tmp/upload/koolproxyca.tar.gz ] && echo "证书备份已成功生成。" > $kplogfile 24 | } 25 | 26 | restore() { 27 | if [ ! -f /tmp/upload/koolproxyCA.tar.gz ]; then 28 | echo "未找到备份文件,文件名必须为koolproxyCA.tar.gz或已损坏,请检查备份文件!" >> $kplogfile 29 | else 30 | mkdir -p $readyfolder 31 | cd $readyfolder 32 | tar xzf /tmp/upload/koolproxyCA.tar.gz 33 | fi 34 | if [ ! -f $readyfolder/private/ca.key.pem ]; then 35 | echo "未找到ca.key.pem,备份文件不正确或已损坏,请检查备份文件!" > $kplogfile 36 | exit 1 37 | fi 38 | if [ ! -f $readyfolder/private/base.key.pem ]; then 39 | echo "未找到base.key.pem,备份文件不正确或已损坏,请检查备份文件!" > $kplogfile 40 | exit 1 41 | fi 42 | if [ ! -f $readyfolder/certs/ca.crt ]; then 43 | echo "未找到ca.crt,备份文件不正确或已损坏,请检查备份文件!" > $kplogfile 44 | exit 1 45 | fi 46 | 47 | mv -f $readyfolder/private/ca.key.pem $kpfolder/private/ca.key.pem 48 | mv -f $readyfolder/private/base.key.pem $kpfolder/private/base.key.pem 49 | mv -f $readyfolder/certs/ca.crt $kpfolder/certs/ca.crt 50 | rm -rf $readyfolder 51 | rm -f /tmp/upload/koolproxyCA.tar.gz 52 | echo "证书成功还原,重启Koolproxy。" > $kplogfile 53 | /etc/init.d/koolproxy restart 54 | } 55 | 56 | case "$*" in 57 | "backup") 58 | backup 59 | ;; 60 | "restore") 61 | restore 62 | ;; 63 | "help") 64 | echo "use backup or restore" 65 | ;; 66 | esac 67 | -------------------------------------------------------------------------------- /files/usr/share/koolproxy/data/gen_ca.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | alias echo_date='echo $(date +%Y年%m月%d日\ %X):' 3 | 4 | if [ ! -f openssl.cnf ]; then 5 | echo_date "Cannot found openssl.cnf" 6 | exit 1 7 | fi 8 | if [ -f /usr/share/koolproxy/data/private/ca.key.pem ]; then 9 | echo_date "已经有证书了!" 10 | else 11 | echo_date "生成证书中..." 12 | 13 | #step 1, root ca 14 | mkdir -p certs private 15 | rm -f serial private/ca.key.pem 16 | chmod 700 private 17 | echo 1000 > serial 18 | openssl genrsa -aes256 -passout pass:koolshare -out private/ca.key.pem 2048 19 | chmod 400 private/ca.key.pem 20 | openssl req -config openssl.cnf -passin pass:koolshare \ 21 | -subj "/C=CN/ST=Beijing/L=KP/O=KoolProxy inc/CN=koolproxy.com" \ 22 | -key private/ca.key.pem \ 23 | -new -x509 -days 7300 -sha256 -extensions v3_ca \ 24 | -out certs/ca.crt 25 | 26 | #step 2, domain rsa key 27 | openssl genrsa -aes256 -passout pass:koolshare -out private/base.key.pem 2048 28 | echo_date "证书生成完毕..." 29 | fi 30 | -------------------------------------------------------------------------------- /files/usr/share/koolproxy/data/openssl.cnf: -------------------------------------------------------------------------------- 1 | # OpenSSL root CA configuration file. 2 | # Copy to `/root/ca/openssl.cnf`. 3 | 4 | [ ca ] 5 | # `man ca` 6 | default_ca = CA_default 7 | 8 | [ CA_default ] 9 | # Directory and file locations. 10 | dir = ./ca 11 | certs = $dir/certs 12 | crl_dir = $dir/crl 13 | new_certs_dir = $dir/newcerts 14 | database = $dir/index.txt 15 | serial = $dir/serial 16 | RANDFILE = $dir/private/.rand 17 | 18 | # The root key and root certificate. 19 | private_key = $dir/private/ca.key.pem 20 | certificate = $dir/certs/ca.cert.pem 21 | 22 | # For certificate revocation lists. 23 | crlnumber = $dir/crlnumber 24 | crl = $dir/crl/ca.crl.pem 25 | crl_extensions = crl_ext 26 | default_crl_days = 30 27 | 28 | # SHA-1 is deprecated, so use SHA-2 instead. 29 | default_md = sha256 30 | 31 | name_opt = ca_default 32 | cert_opt = ca_default 33 | default_days = 375 34 | preserve = no 35 | policy = policy_strict 36 | 37 | [ policy_strict ] 38 | # The root CA should only sign intermediate certificates that match. 39 | # See the POLICY FORMAT section of `man ca`. 40 | countryName = match 41 | stateOrProvinceName = match 42 | organizationName = match 43 | organizationalUnitName = optional 44 | commonName = supplied 45 | emailAddress = optional 46 | 47 | [ policy_loose ] 48 | # Allow the intermediate CA to sign a more diverse range of certificates. 49 | # See the POLICY FORMAT section of the `ca` man page. 50 | countryName = optional 51 | stateOrProvinceName = optional 52 | localityName = optional 53 | organizationName = optional 54 | organizationalUnitName = optional 55 | commonName = supplied 56 | emailAddress = optional 57 | 58 | [ req ] 59 | # Options for the `req` tool (`man req`). 60 | default_bits = 2048 61 | distinguished_name = req_distinguished_name 62 | string_mask = utf8only 63 | 64 | # SHA-1 is deprecated, so use SHA-2 instead. 65 | default_md = sha256 66 | 67 | # Extension to add when the -x509 option is used. 68 | x509_extensions = v3_ca 69 | 70 | [ req_distinguished_name ] 71 | # See . 72 | countryName = Country Name (2 letter code) 73 | stateOrProvinceName = State or Province Name 74 | localityName = Locality Name 75 | 0.organizationName = Organization Name 76 | organizationalUnitName = Organizational Unit Name 77 | commonName = Common Name 78 | emailAddress = Email Address 79 | 80 | # Optionally, specify some defaults. 81 | countryName_default = GB 82 | stateOrProvinceName_default = England 83 | localityName_default = 84 | 0.organizationName_default = Alice Ltd 85 | organizationalUnitName_default = 86 | emailAddress_default = 87 | 88 | [ v3_ca ] 89 | # Extensions for a typical CA (`man x509v3_config`). 90 | subjectKeyIdentifier = hash 91 | authorityKeyIdentifier = keyid:always,issuer 92 | basicConstraints = critical, CA:true 93 | keyUsage = critical, digitalSignature, cRLSign, keyCertSign 94 | 95 | [ v3_intermediate_ca ] 96 | # Extensions for a typical intermediate CA (`man x509v3_config`). 97 | subjectKeyIdentifier = hash 98 | authorityKeyIdentifier = keyid:always,issuer 99 | basicConstraints = critical, CA:true, pathlen:0 100 | keyUsage = critical, digitalSignature, cRLSign, keyCertSign 101 | 102 | [ usr_cert ] 103 | # Extensions for client certificates (`man x509v3_config`). 104 | basicConstraints = CA:FALSE 105 | nsCertType = client, email 106 | nsComment = "OpenSSL Generated Client Certificate" 107 | subjectKeyIdentifier = hash 108 | authorityKeyIdentifier = keyid,issuer 109 | keyUsage = critical, nonRepudiation, digitalSignature, keyEncipherment 110 | extendedKeyUsage = clientAuth, emailProtection 111 | 112 | [ server_cert ] 113 | # Extensions for server certificates (`man x509v3_config`). 114 | basicConstraints = CA:FALSE 115 | nsCertType = server 116 | nsComment = "OpenSSL Generated Server Certificate" 117 | subjectKeyIdentifier = hash 118 | authorityKeyIdentifier = keyid,issuer:always 119 | keyUsage = critical, digitalSignature, keyEncipherment 120 | extendedKeyUsage = serverAuth 121 | 122 | [ crl_ext ] 123 | # Extension for CRLs (`man x509v3_config`). 124 | authorityKeyIdentifier=keyid:always 125 | 126 | [ ocsp ] 127 | # Extension for OCSP signing certificates (`man ocsp`). 128 | basicConstraints = CA:FALSE 129 | subjectKeyIdentifier = hash 130 | authorityKeyIdentifier = keyid,issuer 131 | keyUsage = critical, digitalSignature 132 | extendedKeyUsage = critical, OCSPSigning 133 | -------------------------------------------------------------------------------- /files/usr/share/koolproxy/data/rules/daily.txt: -------------------------------------------------------------------------------- 1 | !x ----------------------------------------------------------------------------------------------------------------- 2 | !x -----[KoolProxy 3.8.4] 3 | !x -----Thanks: From lvba Group 4 | !x -----Thanks for help: 5 | !x ----------------------------------------------------------------------------------------------------------------- 6 | ! ---- baidu union ---- 7 | |http://*/*mgkokpa.js 8 | |http://*/*rlptqpn.js 9 | ! ---- baidu union ---- 10 | ! ---- unsafe download ---- 11 | |http://*/*_*@*.exe 12 | |http://*/*@*_*.exe 13 | ! ---- unsafe download ---- 14 | !x ----------------------------------------------------------------------------------------------------------------- 15 | @@@@|https://pic.yefu365.com 16 | @@@@|https://www.douyu.com 17 | @@@@|https://www.bilibili.com 18 | @@@@|https://crash.163.com 19 | @@|http://static.ws.126.net 20 | @@|http://img3.126.net 21 | @@|http://logstat.laosiji.com/index.html? 22 | @@||cnzz.com/q_stat.php$domain=qd.alibaba.com 23 | @@||mmstat.com/eg.js$domain=rjno1.com 24 | |http://*/adright.$domain=elecfans.com 25 | |http://d1.5h.com^ 26 | |http://www.52movieba.com/img/ad* 27 | |http://ad.* 28 | |http://*/adimg/* 29 | |http://*/adImg/* 30 | |https://media.trafficjunky.net/js/holiday-promo.js 31 | |https://smpop.icfcdn.com/smpop-stable.js 32 | |https://wxstatic.cn 33 | |https://qclcdn.cn^ 34 | |https://mc.tvzhe.com^ 35 | |https://www.toolnb.com/Public/aliyun/900x60.png 36 | |https://max.book118.com/statics/js2/ 37 | |https://max.book118.com/Public/book118/js/scz-zip/ 38 | |https://max.book118.com/Public/book118/js/picture-else/ 39 | |https://mgtv.djjca.cn/mgtv.php 40 | |https://hkitblog.com^*-banner 41 | |https://daima.huoche.net^ 42 | |https://pan.keyunzhan.com^ 43 | |https://static.hsbianma.com/Content/images/*-ad- 44 | |https://chequeconvert.hkcoding.com/img/ 45 | |https://o.aolcdn.com/ads/ 46 | |https://e.so.com/baike/ads? 47 | |https://v1.phb123.com^ 48 | |https://www.atyun.com/wp-content/themes/xmag/js/ad.js 49 | |https://ba.cydp5.com^ 50 | |https://js.jianbaimei.com^ 51 | |https://www.91wii.com/*/common/ad_ 52 | |https://www.91wii.com/data/ad/ 53 | |https://asianmedia.com/*/www/delivery/ 54 | |https://fzb01.qiushibaike.com^ 55 | |https://cdn1.tvzhe.com^ 56 | |https://ssl.bsriedu.cn:8004/ 57 | |https://ax.*.ifeng.com^ 58 | |https://emjs.mkzhan.com^ 59 | |https://d1.5h.com^ 60 | |https://www.danji6.com/style/style2016/js/gaosuxiazai.js 61 | |https://yy2018.jintonghua.com^ 62 | |https://www.dangdang.com/adall. 63 | |https://www.dandanzan.com/res/dan 64 | |https://kpshx.douguo.com 65 | |https://ftic.qifake.com^ 66 | |https://dd1.diymianmo.com^ 67 | |https://union*.365inews.com^ 68 | |https://union1.365inews.com^ 69 | |https://ads.exosrv.com/ads.js 70 | |https://rugncn.ifeng.com^ 71 | |https://jiejg.ifeng.com^ 72 | |https://bdjs.ixiumei.com^ 73 | |https://di.phncdn.com/www-static/js/ 74 | |https://ads.trafficjunky.net/ads? 75 | |https://www.google-analytics.com/analytics.js 76 | ||eryamishu.com/zb_system/image/logo/64060.png 77 | ||eryamishu.com/zb_users/upload/2016/04/201604061459908985564295.jpg 78 | ||gum.xbooks.to/js/pc/pc_*_ 79 | ||gum.xbooks.to/js/pc/pc_tsuibi 80 | ||meng.360zuowen.com^ 81 | ||jzb.com/website/fe/pub_js/dbclickshow.js 82 | ||cjjjs.com/script/ad.js 83 | ||int.w3tong.com^ 84 | ||fsdpp.cn/123.jpeg 85 | ||fsdpp.cn/skin/idea/images/hongbao.jpg 86 | ||52pk.com/style/files/images/beitou.jpg 87 | ||greenxf.com^$script 88 | ||91bg.xyz/Runtime/Js/ 89 | ||usxpic.com/btimg/upload/image/20180426/42600001974.gif 90 | ||aigou023.com^ 91 | ||ifengimg.com/static/news/js/newsAdvtrack_ 92 | ||dm530.net/js/ne/*.js*.js 93 | ||jrjimg.cn/common/foot/wxXcxTg.js 94 | ||beijinglvyou.net.cn^ 95 | ||76mao.com/52 96 | ||elecfans.com/skin-*ad_ 97 | ||mglvqian.com^ 98 | ||letvimg.com/*gugwl/*.swf 99 | ||emule.org.cn/km.gif 100 | ||emule.org.cn/templets/default/ 101 | ||ucstatic.cn^ 102 | ||mengheyu.com^ 103 | ||7ia9h.cn^ 104 | ||991pao.com^ 105 | ||lfhnkp.com^ 106 | ||1.ttxs123.net^ 107 | ||chinaz.com/zt/hanyi/images/ziyou.jpg 108 | ||cnfol.com/index_new.php?id= 109 | ||cnfol.com/pc/Js/as/ 110 | ||easypatent.net^ 111 | ||aliyuncs.com/img/aliyun/300x300.jpg 112 | ||aliyuncs.com/img/aliyun/560x260.png 113 | ||bdcode.qinglm.com^ 114 | ||hqcx.net/images/baidu.jpg 115 | ||159i.com/video/usr/uploads/1- 116 | ||159i.com/video/usr/uploads/bd/$image 117 | ||live173.com/AD/ 118 | ||baid1.okooo.com^ 119 | ||hqcx.net/index.php?m=poster& 120 | ||datas.tianqistatic.com^ 121 | ||tom.com/adsender/ 122 | ||gazoeft.cn^ 123 | ||lglady.cn^ 124 | ||cxslchkb.cn^ 125 | ||hxyl.net/js/tv.js 126 | ||yjoiunf.com:5656/ 127 | ||pniao.com/View/images/dianpu.png 128 | ||xcxzxc.cn 129 | ||https://7160.com/js/adweb 130 | ||https://7160.com/js/tiaozhuanquanju.js 131 | ||https://wdeie.com^ 132 | ||https://zxin131.cn^ 133 | ||https://yzaosite.com^ 134 | ||https://zencu.com.cn^ 135 | ||https://xn6ffc.com^ 136 | ||https://yefu365.com^ 137 | ||https://cojia.net:4457/ 138 | ||https://4006825178.com^ 139 | ||https://cwj2h.cn^ 140 | ||https://18dusun.com^ 141 | ||https://fjmailia.com^ 142 | ||https://6yush.cn^ 143 | ||https://15tianqi.com^ 144 | ||https://wanzhuang.com^ 145 | ||https://ybanj.com^ 146 | ||https://spot.im/yad/ 147 | ||https://atwola.com^ 148 | ||https://spot.im/yad/ 149 | ||https://adnxs.com^ 150 | ||https://spotxchange.com^ 151 | ||https://hnfxty.cn^ 152 | ||https://clmmw.com^ 153 | ||https://hchik.com^ 154 | ||https://wjier.com^ 155 | ||https://tinwong.cn^ 156 | ||https://ywadf.cn^ 157 | ||https://fastapi.net^ 158 | ||https://ynp0h.cn^ 159 | ||https://ejiur.com^ 160 | ||https://qgaot.com^ 161 | ||https://6nzev.cn^ 162 | ||https://kguaq.com^ 163 | ||https://nettsl.com^ 164 | ||https://chenyanjiao.cn^ 165 | ||https://ayues.com^ 166 | ||https://22pixx.xyz/l/ 167 | ||https://acv5e.cn^ 168 | ||https://cxfzw.cn^ 169 | ||https://tbaia.com^ 170 | ||https://ysxywj.com^ 171 | ||https://yjiaj.com^ 172 | ||https://just9229.cn^ 173 | ||https://tenh2.cn^ 174 | ||https://beijinglvyou.net.cn^ 175 | ||https://wcail.com^ 176 | ||https://aganj.com^ 177 | ||https://boyueguoji.com^ 178 | ||https://heizundg.cn^ 179 | ||https://themee.cn^ 180 | ||https://kcenu.com^ 181 | ||https://vkuay.com^ 182 | ||https://whshangsha.com^ 183 | ||https://shypqc.com^ 184 | ||https://afefw.com:5110/ 185 | ||https://c6z85.cn^ 186 | ||https://pqnlorg.cn^ 187 | ||https://gadhx.cn^ 188 | ||https://galaxyns.com^ 189 | ||https://rerwe.cn^ 190 | ||https://izouo.com^ 191 | ||https://979067.com^ 192 | ||https://idanmei.cn^ 193 | ||https://ni87.com^ 194 | ||https://hzuok.com^ 195 | ||https://baful.net:4459/ 196 | ||https://aishangcan.com^ 197 | ||https://spectram.pro^ 198 | ||https://nxh2h.cn^ 199 | ||https://vchim.com^ 200 | ||https://qdiut.com^ 201 | ||https://aliguojw.com^ 202 | ||https://qwertyuiopa.co^ 203 | ||https://boweineng.cn^ 204 | ||https://wvstatic.cn^ 205 | ||https://rtslgov.cn^ 206 | ||https://gjuet.com^ 207 | ||https://jscode.acg68.com^ 208 | ||https://fbieq.com^ 209 | ||https://zutodu.cn^ 210 | ||https://fanli.in^ 211 | ||https://ybaiu.com^ 212 | ||https://xng02.com/api.php?mod=ad& 213 | ||https://wp.com/fbcinema.com/wp-content/uploads/20*?w=450 214 | ||https://yootui19999.com^ 215 | ||https://phncdn.com/iframe 216 | ||https://dbeii.com^ 217 | ||https://dceni.com^ 218 | ||https://syxsa.cn^ 219 | ||https://69yll.cn^ 220 | ||https://yunsoka.com^ 221 | ||https://xhera.cn^ 222 | ||https://iyygzs.com^ 223 | ||https://dldsrs.com^ 224 | ||https://pkbrxja.cn^ 225 | ||https://emshx.cn^ 226 | ||https://ifengimg.com/*Couplet 227 | ||https://ifengimg.com/*adview_ 228 | ||https://mmpuh.cn 229 | ||https://ucstatic.cn^ 230 | ||https://mengheyu.com^ 231 | ||https://hduic.com^ 232 | ||https://991pao.com^ 233 | ||https://7ia9h.cn^ 234 | ||https://991pao.com^ 235 | ||https://sjaidu.com^ 236 | ||https://lguir.com^ 237 | ||https://ibaop.com^ 238 | ||https://zcand.com^ 239 | ||https://mdous.com^ 240 | ||https://tdoup.com^ 241 | ||https://h2pzh.cn^ 242 | ||https://wbanz.com^ 243 | ||https://lfhnkp.com^ 244 | ||https://1.ttxs123.net^ 245 | ||https://jdflower.cn^ 246 | ||https://baiduspider1.cn^ 247 | ||https://wcaos.com^ 248 | ||https://07kfh.cn^ 249 | ||https://ahuac.com^ 250 | ||https://fcunq.com^ 251 | ||https://juejin.im/graphql 252 | ||https://9pb0h.cn^ 253 | ||https://tjiaa.com^ 254 | ||https://vbanm.com^ 255 | ||https://hlhulu.com^ 256 | ||https://ifeng.com^*=YWRp 257 | ||https://deliver.ifeng.com^ 258 | ||https://izuis.com 259 | ||https://ifengimg.com/web/d/c_shichuang.js 260 | !|https://pan.baidu.com/feproxy/ad/list? 261 | !x ----------------------------------------------------------------------------------------------------------------- 262 | !|https://pan.baidu.com,yun.baidu.com##[id^="share-ad-"],A#share_ad_info_panl,div[id^="cpro_"],img.share-center,.ad-platform-tips,.banner-active 263 | !x ----------------------------------------------------------------------------------------------------------------- 264 | ||avtbo.com/$s@@@ 265 | ||av.movie/$s@@@ 266 | ||gdmm.com/$s@@@ 267 | ||ad353.com/$s@@@ 268 | ||zhongzishenqi.pw/$s@@@ 269 | ||thzvv.*/$s@@@ 270 | ||ruanyifeng.com/$s@@@ 271 | ||itboth.com/$s@@@ 272 | ||itkeyword.com/$s@@@ 273 | ||pniao.com/$s@@@ 274 | ||uxxux.com/$s@@@ 275 | ||360-bo.com/$s@@@ 276 | ||cnforex.com/$s@@@ 277 | ||onlytvb.com/$s@@@ 278 | ||onlytvb.com/$s@@@ 279 | ||dilidili.wang/$s@@@ 280 | ||yxdown.com/$s@@@ 281 | ||yxdown.com/$s@@@ 282 | ||epinv.com/$s@@@ 283 | ||epinv.com/$s@@@ 284 | ||39.net/$s@@@ 285 | ||xsjdy.net/$s@@@ 286 | ||youxijpw.com/$s@@@ 287 | ||eyy5.cn/$s@@@ 288 | ||yn-dove.cn/$s@@@ 289 | ||https://mydrivers.com/$s@@@ 290 | ||https://cnbeta.com/$s@@@ 291 | |http://www.zuixingkong.com/$s@@@ 292 | |http://www.freep.cn/$s@@@ 293 | |http://www.ixjys.com/$s@@@ 294 | |http://www.rs05.com/$s@@@ 295 | |http://news.163.com/$s@@@ 296 | |http://www.rs05.com/$s@@@ 297 | |http://bbs.hh010.com/$s@@@ 298 | |http://thz2.cc/$s@@@ 299 | |http://www.52ghai.com/$s@@@ 300 | |http://www.52ghai.com/$s@@@ 301 | |http://cpnn5.com:91/$s@@@ 302 | |http://www.eroacg.com/$s@@@ 303 | |http://www.friok.com/$s@@@ 304 | |http://www.cjjjs.com/$s@@@ 305 | |http://www.55xia.com/$s@@@ 306 | |http://chromecj.com/$s@@@ 307 | |http://www.ainuody.com/$s@@@ 308 | |http://dm.dm530.net/$s@@@ 309 | |http://dm.dm530.net/$s@@@ 310 | |http://m.biqu*.*/$s@@@ 311 | |http://www.chnmoney.com/$s@@@ 312 | |http://www.zimuzu.io/$s@@@ 313 | |http://*btbtdy.*/$s@@@ 314 | |http://m.biqu*.*/$s@@@ 315 | |http://www.meijumi.vip/$s@@@ 316 | |http://www.meijumi.vip/$s@@@ 317 | |http://www.avtbp.com/$s@@@ 318 | |http://onetvb.com/$s@@@ 319 | |http://onetvb.com/$s@@@ 320 | |http://yeyemo.biz/$s@@@ 321 | |http://www.jav777.cc/$s@@@ 322 | |http://159i.com/$s@@@ 323 | |http://159i.com/$s@@@ 324 | |http://www.xunbopian.cc/$s@@@ 325 | |http://www.xunbopian.cc/$s@@@ 326 | |https://www.avav336.com/$s@@@ 327 | |https://www.bt121.net/$s@@@ 328 | |https://99a18.com/$s@@@ 329 | |https://cnbtkitty.xyz/$s@@@ 330 | |https://www.onetvb.com/$s@@@ 331 | |https://www.phb123.com/$s@@@ 332 | |https://m.ankangwang.com/$s@@@ 333 | |https://www.445zh.com/$s@@@ 334 | |https://m.sbiquge.com/$s@@@ 335 | |https://wangpan007.com/$s@@@ 336 | |https://www.eyusky.net/$s@@@ 337 | |https://cc.dety.men/$s@@@ 338 | |https://www.1788hd.com/$s@@@ 339 | |https://www.btdx8.com/$s@@@ 340 | |https://www.coolinet.com/$s@@@ 341 | |https://m.tywx.la/$s@@@ 342 | |https://m.tywx.la/$s@@@ 343 | |https://www.lanzous.com/$s@@@ 344 | |https://m.biquge5200.cc/$s@@@ 345 | |https://m.biquge5200.cc/$s@@@ 346 | |https://www.tom024.com/$s@@@ 347 | |https://xclient.info/$s@@@ 348 | |https://www.torrentkitty.se/$s@@@ 349 | |https://www.imeiju.cc/$s@@@ 350 | |https://www.chinatimes.com/$s@@@ 351 | |https://www.wudidy.net/$s@@@ 352 | !x ----------------------------------------------------------------------------------------------------------------- 353 | www.freep.cn###divimg_2 354 | epinv.com##A[href*=".taobao.com"] 355 | vpansou.com##A[href*=".taobao.com"] 356 | dilidili.wang###newapp2018 357 | w1rl.xyz##A[href^="/htmm/"] 358 | zuanke8.com##DIV[style="padding:0px 0 10px 0;background-color:#F1F1F1;"],.zuanpw 359 | youxijpw.com##[id^="bn_con"] 360 | elecfans.com###MiddleLeaderboard,#company-ad,#new-adsm-berry,#adChannel,[id^="new-listAd"] 361 | lvse.cn###ad_banner_outer,[class^="fb_banner"] 362 | xmfish.com##.adv-760,[id^="adm_show_"],.wrapxy 363 | 58pic.com##.twelveModel,.feast,[id^="model-gift"],[id^="search_"]>*,.twelveFixedPage,.tallyActivity,div#ad.clearfix.w1200 364 | cnfol.com##.allAd.Mt10,.rightAd,[class^="wid595Ad"],[class^="wid390Ad"],.wid600Ad,[class^="wid325Ad"],.Ad310,[class^="NavTopAd"],.wid300,.Ad1000,.NewAdBox.Cf 365 | ali213.net##.ad1,[class^="ad_news_"] 366 | www.bt.cn##.btad 367 | ckck.vip##.alert_windows 368 | 9669.cn##.mt10[style="height:260px;"] 369 | bbs.hh010.com##[id$="_banadblock"],#fwin_banadblock_cover,.wp.a_hh_h 370 | sogou.com##.pz-widget-flash-container 371 | eryamishu.com##.post_tags 372 | xbooks.to##DIV[style="width:900px; height:250px; margin: -15px auto 15px auto;"],.movie-in-ad 373 | kpd80.com###wrapper_right_bg[target="_blank"],.topad 374 | zuowen.com##[class^="couplet_"] 375 | 360zuowen.com##[class^="guanggao"],.lew_tu 376 | eworldship.com###d1,#d2,A[href*="ad_click&"] 377 | kdnet.net##.c_spread 378 | bbs.zhiyoo.com##.a_p 379 | 52pk.com###bg_link,.tcgg.ggleft,.tcgg.ggright 380 | qmaile.com,wandhi.com##A[style="display: inline-block;position: relative"],#lovexin121 381 | zysj.com.cn###ad_pc_bottom 382 | pniao.com##img[src$="images/dianpu.png"] 383 | tom.com###body_right_banner 384 | isso.com.cn###wqd1519353145001serial 385 | itboth.com##ad_pop,.ad_pop_left 386 | hz66.com###hzhead + .column,.ad-line 387 | huarenjie.net##DIV[style*="top: 50px;"] 388 | 33am.cn##.bd_980_90 389 | m.9bbg.com##[class^="ndti"],[id^="ndt"] 390 | html-js.com##.module[style="padding:0;"],DIV[style="margin:10px auto;width:1000px;"] 391 | zimuzu.io##img[src^="http://tu.jstucdn.com/g3/ad-img/"] 392 | huaban.com##.extra 393 | henan100.com##.boxB 394 | so.com##.windisplayCell,.commercialCell 395 | gter.net##.ad1,.bottom,[class*="ad"] 396 | m.520boxtv.com##.logo_top 397 | |https://ditu.so.com##DIV[class^="index-adflag-"] + A,#imageSearch 398 | |https://bbs.instrument.com.cn##A[href*="/ad/"] 399 | |https://www.ggdoc.com.cn##.adDiv 400 | |https://hkitblog.com##.widget_text.widget.widget_custom_html,.widget widget_text,.widget.widget_text 401 | |https://www.backchina.com##DIV[style^="width:300px; min-height: 250px;"],div[id^="div-gpt-ad"],a[href*=".21usdeal.com"],.eis_subnav_area,.adsbygoogle,[style="width:300px; margin:0;"],.banner_ad,#eis_pad1,iframe[width="728"][height="90"],.trc-content-sponsored,.trc_related_container div[data-item-syndicated="true"],[style^="min-width:728px;min-height:90px;"] 402 | |https://www.91wii.com##.a_fr,.a_fl 403 | |https://www.rebooo.com###gong 404 | |https://www.iqshw.com###ZAML 405 | |https://www.howbuy.com##.topBigAd,a[href^="https://www.howbuy.com/advertisement/"] 406 | |https://99a18.com,https://99re.com,https://99re16.com##.dmcenter,.layui-layer-shade,img[class="half-img"] 407 | |https://99a18.com,https://99re.com,https://99re16.com##.spots,#_iframe_content 408 | |https://www.keyunzhan.com###AdLayer2 409 | |https://www.toolfk.com##.ad-container,.adsbygoogle 410 | |https://www.pangzi.ca###pop 411 | |https://cc.dety.men##.tips,#footer > table:nth-child(2) > tbody:nth-child(1) > tr:nth-child(1) 412 | |https://cc.dety.men##DIV > A > IMG[src^="http://www.t66y.cc/img/"]:first-child,DIV.container > DIV > A[rel="nofollow"],blockquote img[onclick^="window.open('http://www.viidii.info/"],blockquote .f16 413 | |https://www.pangzi.ca##img[src*="/ads/images"] 414 | |https://lifanmoe.xyz##a[href^="http"]:not([href*="lifanmoe."]) > img[src*=".sinaimg."] 415 | |https://btring.com##.card[target="_blank"] 416 | |https://forum.xda-developers.com##.sponsor-banner,.leaderboard 417 | |https://finance.sina.com.cn##.m-s-tab + DIV 418 | |https://wenku.baidu.com##.ad-vip-close,.topicBox.search-topicBox-wrap 419 | |https://www.tom024.com###layui-layer1,.layui-layer-shade 420 | |https://www.china.com##.tonglan 421 | |https://www.bt.cn##.btad 422 | |https://www.myqqjd.com###advert_widget,.qz-box 423 | |https://xclient.info##.lim-ad 424 | |https://www.e-learn.cn###block-layui-ele,#block-tengxunyunshuang11 425 | |https://gaus.ee##.adsbygoogle 426 | |https://juejin.im##.sidebar-bd-entry 427 | |https://www.cnbeta.com##.trc_related_container div[data-item-syndicated="true"] 428 | ||https://css88.com##.spark-rm 429 | ||https://zhangxinxu.com###topRecomm 430 | ||https://fastadmin.net##.container > .d-lg-block:first-child 431 | ||https://renren101.com##.ad-flag-wrap 432 | ||https://xsool.com###diy1,#diynavtop 433 | ||https://appinn.com###ranshownow 434 | ||https://engadget.com###atwAdFrame2,#atwAdFrame1,#atwAdFrame2,#AdDiv,div[data-spotim-slot],div[data-nav-drawer-slide-panel] > aside[role="banner"] 435 | ||https://haha.mx##.joke-list-anecdote,.ad-2,.ad-6,.adsbygoogle 436 | ||https://huarenjie.net##DIV[style*="top: 50px;"] 437 | ||https://laomoit.com###sidebar A[target="_blank"] > IMG,.cboxElement + CENTER[style=" padding-top:10px; "] 438 | ||https://pornhub.com##body > .wrapper + div[class][-ext-has='> .removeAdLink'] 439 | ||https://pornhub.com##.realsex,.removeAdsStyle,.ad-link,#hAd 440 | 441 | |https://hao.360.cn###header-patch,#daily-hotwords,#top_activity,#top_hotsite,#activity,#iguess,.mbar-bd,#festival-logoskin,#plane > .plane-hd,.cangbao_redbags,#top-full-column-tips,#plane-ria,.ad-top 442 | !x ----------------------------------------------------------------------------------------------------------------- 443 | |http://bbs.hh010.com/$s@var freeaddon_banadblock = 0;@var freeaddon_banadblock = 30;@ 444 | |http://www.52movieba.com$s@var ua*@@ 445 | |http://vv.video.qq.com/getvinfo?$s@*@@ 446 | ||52pk.com/$s@function goto() {@function goto() { return;@ 447 | |https://cc.dety.men/*.html$s@/((!?function )[readS\w]+\(\) ?{)/@${1}return;@ 448 | |https://cc.dety.men/*.html$s@/(setTimeout\(function ?\(\) ?{)/@${1}return;@ 449 | |https://cc.dety.men/*.html$s@

@
@ 450 | |https://www.coolinet.com/$s@e.insert(c);@return 0;@ 451 | |https://currencyex.doitwell.tw/$s@setTimeout(function() {@setTimeout(function() { return;@ 452 | 453 | |https://console.bonuscloud.io/$r@/https:\/\/.*\.bonuscloud\.io\/.*/@https://kprules.b0.upaiyun.com/null/404.html@ 454 | !x ------------------------------------------ xiaoshuo TXT ADV ---------------------------------------------------- 455 | |http://js.passport.qihucdn.com/11 456 | |https://yihu.s06th.cn^ 457 | |https://m.zhenben.cc/2000/ 458 | ||https://mgsue.cn^ 459 | ||https://hjues.com^ 460 | |https://m.hjiec.com^ 461 | ||https://ffanq.com^ 462 | ||abfirst.cn^ 463 | ||https://mendoc.cn^ 464 | ||https://eshuy.com^ 465 | |http://*/haojio/images/KF-ZL.jpg 466 | |http://livep.l.qq.com/livemsg? 467 | |http://mtrace.qq.com/mkvcollect? 468 | |http://dp3.qq.com/ 469 | |http://news.l.qq.com/app? 470 | |https://1.bh5.com.cn^ 471 | |https://adman.henghost.com 472 | |https://abc.hkepc.net^ 473 | |https://www.toolfk.com/tools/images/vps/ 474 | |https://www.toolfk.com/common/cp.js 475 | |https://dp3.qq.com/ 476 | |https://news.l.qq.com/app? 477 | |https://union.591.com.tw/cpt? 478 | |https://vip.fengyelin.net:9595/ 479 | |https://m.eshuy.com^ 480 | |https://m.tingshuge.com/*/m 481 | |https://static.xiashu.la/*/js/read.js 482 | |https://static.xiashu.la/*/js/fx.js?0.4 483 | |http://m.wodexiaoshuo2.cc/js/zhangjie.js 484 | |https://m.xinshula.com/js/ziji 485 | |https://m.x81zw.com/x81.js 486 | |http://m.wodexiaoshuo2.cc/js/xialun 487 | |https://wap.txtduo.com/mtxtduo.js 488 | |https://m.txt2017.com/*/js/style.js 489 | |https://m.shuanshu.com/js/dipiao.js 490 | |https://m.booktxt.net/js/ym11111 491 | |https://m.bxwx9.org/mjs/newwap.js 492 | |https://m.shengyan.org/*/book.js 493 | |https://m.biduo.cc/scripts/common.js 494 | |https://m.qianrenge.cc/*/common.js 495 | |https://m.zhuaji.org/css/common.js 496 | |https://m.sjxs.la/js/comm.js 497 | |https://m.qianrenge.cc/*/true.js 498 | |https://m.liewen.cc/js/common.js 499 | |https://m.biqumo.com/baidu/newcn 500 | |http://m.biqugego.com/wap/dun.js 501 | |https://gg.dsxdn.com/duanwenxue/wapdwx.js 502 | |http://m.longtanxs.com/js/baisu.js 503 | |https://jiansuo.dsxdn.com^ 504 | |https://m.ttzw.com/*/true.js 505 | |https://m.ttzw.com/*/h.js 506 | |https://m.duanwenxue.com/js/tongji.js 507 | |https://m.dpcq1.net/*/s_wap_novelsearch_chapter_read.js 508 | |https://m.daizhuzai.com/*/s_wap_novelsearch_chapter_read.js 509 | |https://m.duanwenxue.com/functions/ 510 | |https://m.qu.la/*/true.js 511 | |https://m.qu.la/*/cp.js 512 | |http://m.xbiquge.la/js/wap.js 513 | |https://m.biqudao.com/js/wap.js 514 | |https://m.555zw.com/js/wap.js 515 | |https://m.aszw.org/js/wap.js 516 | |https://m.kewaishu.info/ad1/wap.js 517 | |https://m.ranwena.com/scripts/wap.js 518 | |https://m.sjxs.la/js/wap.js 519 | |https://m.zhenben.cc/js/wap.js 520 | |https://m.zhenben.cc/foot.js 521 | |https://m.yfxiaoshuod.com/js/foot.js 522 | |http://*/wap.js$domain=23wxx.com|chenhuixsd.com|cyxse.com|hfxiaoshuo.com|hlxiaoshuo.net|lwxiaoshuo.com|m.1200ksw.com|m.16kxsw.com|m.23sw.net|m.2kxs.com|m.31wxw8.com|m.360118.com|m.37zw.net|m.3dllc.cc|m.3kw.cc|m.50zw.co|m.50zw.la|m.50zww.com|m.52biquge.com|m.555zw.com|m.58xs.tw|m.5ccc.net|m.630book.la|m.67shu.com|m.69shu.org|m.6mao.com|m.80txt.com|m.83zw.com|m.88106.com|m.88dus.com|m.98xiaoshuo.com|m.99shumeng.net|m.aiquxs.com|m.amu520.com|m.aszw.org|m.b5200.net|m.baishulou8.com|m.baoliny.com|m.beijingaishu.net|m.bichi.me|m.biqudu.com|m.biquge.cm|m.biquge.com.tw|m.biquge.info|m.biqugego.com|m.biqugexsw.com|m.biqugezw.com|m.biqumo.com|m.biquwu.cc|m.boluoxs.com|m.book9.net|m.booktxt.net|m.bqg5.cc|m.bqg5200.com|m.bxwx9.org|m.daizhuzai.com|m.dashubao.cc|m.ddxsw.net|m.dhzw.org|m.diyibanzhu.xyz|m.dpcq1.net|m.duanwenxue.com|m.fhxiaoshuo.com|m.fhxsw.org|m.gsdaquan.com|m.gulizw.com|m.gxwztv.com|m.haotxt.com|m.haxwx2.com|m.heiyanwang.com|m.hkslg.net|m.jjxsw.org|m.kewaishu.info|m.konlan.org|m.kxs7.com|m.lanseshuba.com|m.lbxs.com|m.ldw.la|m.lewenxiaoshuo.com|m.liewen.cc|m.liushuba.com|m.lkshu.com|m.longtanxs.com|m.luoqiu.com|m.lwtxt.net|m.miaobige.com|m.miaoshufang.com|m.mishug.com|m.mpzw.com|m.panqis.cn|m.qianrenge.cc|m.qu.la|m.ranwena.com|m.sanjiangge.com|m.shengyan.org|m.shuanshu.com|m.shuketxt.net|m.shumil.com|m.shuqu8.com|m.shuquge.com|m.shushu8.com|m.silukeke.com|m.sjtxt.la|m.snwx8.com|m.sosoxiaoshuo.cc|m.sqsxs.com|m.suimeng.la|m.tingshuge.com|m.tmetb.net|m.tsxsw.com|m.ttzw.com|m.txt2017.com|m.txtduo.com|m.tywxw.la|m.vodtw.com|m.wanjuanba.com|m.wantxt.com|m.wenxue6.com|m.wenxuem.com|m.wenxuemi.com|m.wodeshucheng.com|m.wodexiaoshuo1.cc|m.x81zw.com|m.xbxwx.net|m.xiaoxiaoshuwu.net|m.xiashu.la|m.xinshula.com|m.xs.la|m.xs222.tw|m.xy48.net|m.yawenb.com|m.ybdu.com|m.yssm.org|m.yunlaige.com|m.yuyouge.com|m.zbzw.la|m.zhenben.cc|m.zhuaji.org|m.zhuishubang.com|qihaoqihao.com|wap.xxbiquge.com|wap.yb3.cc|xntk.net|yfxiaoshuoa.com|zhxiaoshuoa.com|zwdu.com|k.heiyanwang.com|3g.wenxuem.com|m.biquyun.com|dm530.net 523 | |https://m.52biquge.com/*/true.js 524 | |https://m.52biquge.com/*/h.js 525 | |https://wap.xbiquge6.com/js/script.js 526 | |https://m.chenhuixsg.com/js/foot.js 527 | |https://m.chenhuixsg.com/js/p.js 528 | |https://m.chenhuixsg.com/js/b.js 529 | |https://m.chenhuixsg.com/js/p.js 530 | |https://m.chenhuixsg.com/js/y.js 531 | |https://m.chenhuixsg.com/js/hfz 532 | |https://m.cyxsi.com/js/foot.js 533 | |https://m.cyxsi.com/js/p.js 534 | |https://m.cyxsi.com/js/b.js 535 | |https://m.cyxsi.com/js/hfz 536 | |https://m.yfxiaoshuod.com/js/hfz 537 | |https://m.hfxiaoshuoa.com/js/foot.js 538 | |https://m.hfxiaoshuoa.com/js/p.js 539 | |https://m.hfxiaoshuoa.com/js/b.js 540 | |https://m.hfxiaoshuoa.com/js/y.js 541 | |https://m.hfxiaoshuoa.com/js/hfz 542 | |https://m.hlxiaoshuoa.com/js/foot.js 543 | |https://m.hlxiaoshuoa.com/js/p.js 544 | |https://m.hlxiaoshuoa.com/js/b.js 545 | |https://m.hlxiaoshuoa.com/js/y.js 546 | |https://m.hlxiaoshuoa.com/js/hfz 547 | |https://m.bichi.me/hepu/nydj 548 | |https://m.bichi.me/hepu/xxf.js 549 | |https://m.88dush.com/mobile/css/m.js 550 | |https://www.qihaoqihao.com/script/book.js 551 | ||https://ienkdaccessible.cn^ 552 | |http://m.31wxw8.com/*/so.js 553 | ||https://edysn.cn^ 554 | |https://www.93vitui.com/svr/weixin.aspx? 555 | |http://m.kukudm.com/mg/show2.js 556 | ||https://18tzx.com^ 557 | ||https://uodoo.com^ 558 | |https://track.uc.cn/collect? 559 | |https://rescn.u3.ucweb.com^ 560 | |https://applog.uc.cn/collect? 561 | |https://m.cyxsi.com/js/m.js?$s@function _17mb_@function @ 562 | |https://m.hfxiaoshuoa.com/js/wap.js?$s@function _17mb_@function @ 563 | |https://m.hlxiaoshuoa.com/js/wap.js?$s@function _17mb_@function @ 564 | |https://m.23uu.org/*/script/wap.js$s@function _17mb_@function @ 565 | |https://m.fpzw.com/wap/wap.js$s@function style_@function @ 566 | |http://m.biquge.com.tw/*/style.js$s@function m_@function @ 567 | |https://m.x83zw.com/style/style.js$s@function yd_d@function @ 568 | |https://m.beijingaishu.net/*/wap.js$s@function qijixs_@function @ 569 | |https://m.bichi.me/wap/qijixs/wap.js$s@function xbaixs_@function @ 570 | |https://m.booktxt.net/js/read.js$s@function _17mb@function @ 571 | |https://m.bqg5.cc/js/main.js$s@function invoke1@function xxxx@ 572 | |https://m.dhzw.org/js/wap.js$s@function xuanfu@function xxxxxx@ 573 | |https://m.dhzw.org/js/wap.js$s@function yuedu@function xxxxxx@ 574 | |https://m.hkslg.net/js/wap.js$s@function yuedu@function xxxxx@ 575 | |https://m.lewenxiaoshuo.com/js/wap.js$s@function xuanfu@function xxxxxx@ 576 | |https://m.lewenxiaoshuo.com/js/wap.js$s@function yuedu@function xxxxxx@ 577 | |https://m.konlan.org/js/wap.js$s@function xuanfu@function xxxxxx@ 578 | |https://m.konlan.org/js/wap.js$s@function yuedu@function xxxxxx@ 579 | |https://m.sanjiangge.com/js/wap.js$s@function _17mb@function _xxxxx@ 580 | |https://m.sanjiangge.com/fs/style.js$s@function _17mb@function _xxxxx@ 581 | |https://m.snwx8.com/$s@function xuanxuan@function xxxxxx@ 582 | |https://m.snwx8.com/$s@function yuedu@function xxxxxx@ 583 | |https://m.sqsxs.com/js/wap.js$s@function xuanfu@function xxxxxx@ 584 | |https://m.sqsxs.com/js/wap.js$s@function yuedu@function xxxxxx@ 585 | |https://m.tmetb.net/js/wap.js$s@function xuanfu@function xxxxxx@ 586 | |https://m.tmetb.net/js/wap.js$s@function yuedu@function xxxxxx@ 587 | |https://m.wenxuemi6.com/js/common.js$s@function style_@function xxxxx_@ 588 | |https://m.zwdu.com/scripts/common.js$s@function app3@function xxxxx@ 589 | |http://m.biquge.com.tw/style/style.js$s@function middle(){*function uc_foot(){*}@@ 590 | |https://m.biqugexsw.com/js/common.js$s@eval(function(*});@@ 591 | !x ------------------------------------------ xiaoshuo TXT ADV ---------------------------------------------------- -------------------------------------------------------------------------------- /files/usr/share/koolproxy/data/rules/kp.dat: -------------------------------------------------------------------------------- 1 | 2 | 3 | 4 | 5 | 6 | 7 | 8 | 9 | 10 | 11 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 22 | 23 | 24 | 25 | 26 | 27 | 28 | 29 | 30 | 31 | koolproxyR/kp.dat at master · user1121114685/koolproxyR · GitHub 32 | 33 | 34 | 35 | 36 | 37 | 38 | 39 | 40 | 41 | 42 | 43 | 44 | 45 | 46 | 47 | 48 | 49 | 50 | 51 | 52 | 53 | 54 | 55 | 56 | 57 | 58 | 59 | 60 | 61 | 62 | 63 | 64 | 65 | 66 | 67 | 68 | 69 | 70 | 71 | 72 | 73 | 74 | 75 | 76 | 77 | 78 | 79 | 80 | 81 | 82 | 83 | 84 | 85 | 86 | 87 | 88 | 89 | 90 | 91 | 92 | 93 | 94 | 95 | 96 | 97 | 98 | 99 | 100 | 101 | 102 | 103 | 104 | 105 | 106 | 107 | 108 | 109 | 110 | 111 | 112 |
113 | Skip to content 114 |
115 | 116 | 117 | 118 | 119 | 120 | 121 | 423 | 424 |
425 | 426 |
427 | 428 | 429 |
430 | 431 |
432 | 433 | 434 | 435 |
436 |
437 |
438 | 439 | 440 | 441 | 442 | 443 | 444 | 445 | 446 | 447 | 448 | 449 | 450 |
451 |
452 | 453 | 493 | 494 |

495 | 496 | /koolproxyR 499 | 500 | 501 |

502 | 503 |
504 | 505 | 545 | 546 |
547 | 582 |
583 | 584 | 585 |
586 |
587 |
588 | 589 | 590 | 591 | 592 | 593 | 594 | 595 | 596 | Permalink 597 | 598 | 599 | 612 | 613 | 614 |
615 | 616 | 617 |
618 | 622 | Branch: 623 | master 624 | 625 | 626 | 627 | 628 | 629 | 630 | 631 |
632 | 633 |
634 | 638 | Find file 639 | 640 | 641 | Copy path 642 | 643 |
644 |
645 | 648 | 649 |
650 | 654 | Find file 655 | 656 | 657 | Copy path 658 | 659 |
660 |
661 | 662 | 663 | 664 | 665 |
666 |
667 | 668 | 669 | 670 | 671 | 2.2.3 679 | 680 | 681 | 682 | 6aff7c2 683 | Jul 30, 2019 684 | 685 |
686 | 687 |
688 |
689 | 690 | 1 contributor 691 | 692 | 696 |
697 | 700 |

701 | Users who have contributed to this file 702 |

703 |
704 | 705 |
706 |
707 |
708 |
709 | 710 | 711 | 712 | 713 | 714 |
715 | 716 |
717 | 718 |
719 | 36.4 KB 720 |
721 | 722 |
723 | 724 |
725 | Download 726 | History 727 |
728 | 729 | 730 |
731 | 732 |
733 | 737 |
738 |
739 |
740 | 741 | 742 | 743 | 744 | 745 | 746 |
747 |
748 | View raw 749 |
750 |
751 | 752 |
753 | 754 | 755 | 756 |
757 | 758 | 759 |
760 | 761 | 762 |
763 |
764 | 765 | 766 | 767 |
768 | 769 |
770 | 771 |
772 |
773 | 774 | 775 |
776 | 777 | 778 | 806 | 807 | 808 | 809 |
810 | 811 | 814 | You can’t perform that action at this time. 815 |
816 | 817 | 818 | 819 | 820 | 821 | 822 | 823 | 824 | 825 | 831 | 842 | 843 | 847 | 848 |
849 | 850 | 851 | 852 | 853 | -------------------------------------------------------------------------------- /files/usr/share/koolproxy/data/rules/user.txt: -------------------------------------------------------------------------------- 1 | ! ******************************* koolproxy 自定义过滤语法简表 ******************************* 2 | ! ------------------------ 规则基于adblock规则,并进行了语法部分的扩展 ------------------------ 3 | ! ABP规则请参考https://adblockplus.org/zh_CN/filters,下面为大致摘要 4 | ! "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述 5 | ! "@@" 为白名单符,白名单具有最高优先级,放行过滤的网站,例如:@@||taobao.com 6 | ! "@@@@" 超级白名单,比白名单符拥有更高的优先级,主要用于放行https网站,例如:@@@@||https://taobao.com 7 | ! ------------------------------------------------------------------------------------------ 8 | ! "*" 为字符通配符,能够匹配0长度或任意长度的字符串,该通配符不能与正则语法混用。 9 | ! "^" 为分隔符,可以是除了字母、数字或者 _ - . % 之外的任何字符。 10 | ! "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。 11 | ! 注:通配符仅在 url 规则中支持,html 规则中不支持 12 | ! ------------------------------------------------------------------------------------------ 13 | ! "|" 为管线符号,来表示地址的最前端或最末端 14 | ! "||" 为子域通配符,方便匹配主域名下的所有子域 15 | ! 用法及例子如下:(以下等号表示等价于) 16 | ! ||xx.com/ad = http://xx.com/ad* || http://*.xx.com/ad* 17 | ! ||http://xx.com/ad = http://xx.com/ad* || http://*.xx.com/ad* 18 | ! ||https://xx.com/ad = https://xx.com/ad* || https://*.xx.com/ad* 19 | ! |xx.com/ad = http://xx.com/ad* 20 | ! |http://xx.com/ad = http://xx.com/ad* 21 | ! |https://xx.com/ad = https://xx.com/ad* 22 | ! ad = http://*ad* 23 | ! http://ad = http://*ad* 24 | ! https://ad = 不支持,需要指定域名,如下例 25 | ! https://xx.com/ad = |https://xx.com/ad = https://xx.com/ad* 26 | ! [同时可以表示两个以及两个以上的域名]如下例子 27 | ! https://xx.ad.com 和 https://xxx.xx.ad.com = ||https://ad.com (注意! 由于https的原因使用要非常谨慎,不可以大范围使用) 28 | ! ------------------------------------------------------------------------------------------ 29 | ! 兼容adblock规则的html规则语法,例如: 30 | ! fulldls.com,torrentzap.com##.tp_reccomend_banner 31 | ! 但是推荐写成以下标准写法: 32 | ! ||fulldls.com##.tp_reccomend_banner 33 | ! ||torrentzap.com##.tp_reccomend_banner 34 | ! 如果一个网站html规则有多条,可以合并为这样: 35 | ! ||torrentzap.com##.tp_reccomend_banner,.ad_top,[class="ad_right"]...... 36 | ! ------------------------------------------------------------------------------------------ 37 | ! 文本替换语法:$s@匹配内容@替换内容@ 38 | ! 非标准端口过滤语法:||abc.com:8081/ad.html或者|http://adb.com:8081/ 39 | ! 文本替换例子:|http://cdn.pcbeta.js.inimc.com/data/cache/common.js?$s@old@new@ 40 | ! 重定向语法:$r@匹配内容@替换内容@ 41 | ! 重定向例子:|http://koolshare.cn$r@http://koolshare.cn/*@http://www.qq.com@ 42 | ! 注:文本替换语法及重定向语法中的匹配内容不仅支持通配符功能,而且额外支持以下功能 43 | ! 支持通配符 * 和 ? 表示单个字符 44 | ! 支持全正则匹配,/正则内容/ 表示应用正则匹配 45 | ! 正则替换:替换内容支持 $1 $2 这样的符号 46 | ! 普通替换:替换内容支持 * 这样的符号,表示把命中的内容复制到替换的内容。(类似 $1 $2,但是 * 号会自动计算数字) 47 | ! ------------------------------------------------------------------------------------------ 48 | ! 未来将逐步添加相关语法,兼容adblock puls的更多语法,敬请期待。 49 | ! ****************************************************************************************** 50 | -------------------------------------------------------------------------------- /files/usr/share/koolproxy/data/source.list: -------------------------------------------------------------------------------- 1 | 0|koolproxy.txt|https://kprule.com/koolproxy.txt|静态规则 2 | 0|daily.txt|https://kprule.com/daily.txt|每日规则 3 | 0|kp.dat|https://raw.githubusercontent.com/user1121114685/koolproxyR/master/koolproxyR/koolproxyR/data/rules/kp.dat|视频规则 4 | 0|user.txt||自定义规则 5 | 0|easylistchina.txt|https://kprule.com/easylistchina.txt|ABP规则 6 | 0|chengfeng.txt|https://kprule.com/chengfeng.txt|乘风规则 7 | 0|fanboy.txt|https://kprule.com/fanboy.txt|Fanboy规则 8 | -------------------------------------------------------------------------------- /files/usr/share/koolproxy/data/user.txt: -------------------------------------------------------------------------------- 1 | ! ******************************* koolproxy 自定义过滤语法简表 ******************************* 2 | ! ------------------------ 规则基于adblock规则,并进行了语法部分的扩展 ------------------------ 3 | ! ABP规则请参考https://adblockplus.org/zh_CN/filters,下面为大致摘要 4 | ! "!" 为行注释符,注释行以该符号起始作为一行注释语义,用于规则描述 5 | ! "@@" 为白名单符,白名单具有最高优先级,放行过滤的网站,例如:@@||taobao.com 6 | ! "@@@@" 超级白名单,比白名单符拥有更高的优先级,主要用于放行https网站,例如:@@@@||https://taobao.com 7 | ! ------------------------------------------------------------------------------------------ 8 | ! "*" 为字符通配符,能够匹配0长度或任意长度的字符串,该通配符不能与正则语法混用。 9 | ! "^" 为分隔符,可以是除了字母、数字或者 _ - . % 之外的任何字符。 10 | ! "~" 为排除标识符,通配符能过滤大多数广告,但同时存在误杀, 可以通过排除标识符修正误杀链接。 11 | ! 注:通配符仅在 url 规则中支持,html 规则中不支持 12 | ! ------------------------------------------------------------------------------------------ 13 | ! "|" 为管线符号,来表示地址的最前端或最末端 14 | ! "||" 为子域通配符,方便匹配主域名下的所有子域 15 | ! 用法及例子如下:(以下等号表示等价于) 16 | ! ||xx.com/ad = http://xx.com/ad* || http://*.xx.com/ad* 17 | ! ||http://xx.com/ad = http://xx.com/ad* || http://*.xx.com/ad* 18 | ! ||https://xx.com/ad = https://xx.com/ad* || https://*.xx.com/ad* 19 | ! |xx.com/ad = http://xx.com/ad* 20 | ! |http://xx.com/ad = http://xx.com/ad* 21 | ! |https://xx.com/ad = https://xx.com/ad* 22 | ! ad = http://*ad* 23 | ! http://ad = http://*ad* 24 | ! https://ad = 不支持,需要指定域名,如下例 25 | ! https://xx.com/ad = |https://xx.com/ad = https://xx.com/ad* 26 | ! [同时可以表示两个以及两个以上的域名]如下例子 27 | ! https://xx.ad.com 和 https://xxx.xx.ad.com = ||https://ad.com (注意! 由于https的原因使用要非常谨慎,不可以大范围使用) 28 | ! ------------------------------------------------------------------------------------------ 29 | ! 兼容adblock规则的html规则语法,例如: 30 | ! fulldls.com,torrentzap.com##.tp_reccomend_banner 31 | ! 但是推荐写成以下标准写法: 32 | ! ||fulldls.com##.tp_reccomend_banner 33 | ! ||torrentzap.com##.tp_reccomend_banner 34 | ! 如果一个网站html规则有多条,可以合并为这样: 35 | ! ||torrentzap.com##.tp_reccomend_banner,.ad_top,[class="ad_right"]...... 36 | ! ------------------------------------------------------------------------------------------ 37 | ! 文本替换语法:$s@匹配内容@替换内容@ 38 | ! 非标准端口过滤语法:||abc.com:8081/ad.html或者|http://adb.com:8081/ 39 | ! 文本替换例子:|http://cdn.pcbeta.js.inimc.com/data/cache/common.js?$s@old@new@ 40 | ! 重定向语法:$r@匹配内容@替换内容@ 41 | ! 重定向例子:|http://koolshare.cn$r@http://koolshare.cn/*@http://www.qq.com@ 42 | ! 注:文本替换语法及重定向语法中的匹配内容不仅支持通配符功能,而且额外支持以下功能 43 | ! 支持通配符 * 和 ? 表示单个字符 44 | ! 支持全正则匹配,/正则内容/ 表示应用正则匹配 45 | ! 正则替换:替换内容支持 $1 $2 这样的符号 46 | ! 普通替换:替换内容支持 * 这样的符号,表示把命中的内容复制到替换的内容。(类似 $1 $2,但是 * 号会自动计算数字) 47 | ! ------------------------------------------------------------------------------------------ 48 | ! 未来将逐步添加相关语法,兼容adblock puls的更多语法,敬请期待。 49 | ! ****************************************************************************************** 50 | -------------------------------------------------------------------------------- /files/usr/share/koolproxy/koolproxy_ipset.conf: -------------------------------------------------------------------------------- 1 | #通用广告 2 | ipset=/1000re.com/black_koolproxy 3 | ipset=/168ad.cc/black_koolproxy 4 | ipset=/ad8.cc/black_koolproxy 5 | ipset=/adcash.com/black_koolproxy 6 | ipset=/adexprt.com/black_koolproxy 7 | ipset=/adhai.com/black_koolproxy 8 | ipset=/adjuggler.com/black_koolproxy 9 | ipset=/adkongjian.com/black_koolproxy 10 | ipset=/adm668.com/black_koolproxy 11 | ipset=/admaji.com/black_koolproxy 12 | ipset=/adm-cnzz.net/black_koolproxy 13 | ipset=/admin5.com/black_koolproxy 14 | ipset=/admin5.net/black_koolproxy 15 | ipset=/adnxs.com/black_koolproxy 16 | ipset=/ad-plus.cn/black_koolproxy 17 | ipset=/adpolestar.net/black_koolproxy 18 | ipset=/adpush.cn/black_koolproxy 19 | ipset=/ads360.cn/black_koolproxy 20 | ipset=/ads80.com/black_koolproxy 21 | ipset=/adsage.com/black_koolproxy 22 | ipset=/adsame.com/black_koolproxy 23 | ipset=/adsfactor.net/black_koolproxy 24 | ipset=/adshost2.com/black_koolproxy 25 | ipset=/adszui.com/black_koolproxy 26 | ipset=/adultfriendfinder.com/black_koolproxy 27 | ipset=/adv-first.ru/black_koolproxy 28 | ipset=/adxpansion.com/black_koolproxy 29 | ipset=/adxquare.com/black_koolproxy 30 | ipset=/adyun.com/black_koolproxy 31 | ipset=/allyes.com/black_koolproxy 32 | ipset=/allyes.com.cn/black_koolproxy 33 | ipset=/amazon-adsystem.com/black_koolproxy 34 | ipset=/baifendian.com/black_koolproxy 35 | ipset=/baitaiad.com/black_koolproxy 36 | ipset=/buysellads.com/black_koolproxy 37 | ipset=/buzzads.com/black_koolproxy 38 | ipset=/clkads.com/black_koolproxy 39 | ipset=/admaster.com.cn/black_koolproxy 40 | ipset=/dcads.sina.com.cn/black_koolproxy 41 | ipset=/blogad.com.tw/black_koolproxy 42 | ipset=/comadsage.com/black_koolproxy 43 | ipset=/cyad.cc/black_koolproxy 44 | ipset=/cyad123.com/black_koolproxy 45 | ipset=/d1ad.com/black_koolproxy 46 | ipset=/doubleclick.net/black_koolproxy 47 | ipset=/dwstatic.com/black_koolproxy 48 | ipset=/irs01.com/black_koolproxy 49 | ipset=/irs01.net/black_koolproxy 50 | ipset=/juicyads.com/black_koolproxy 51 | ipset=/madadsmedia.com/black_koolproxy 52 | ipset=/miaozhen.com/black_koolproxy 53 | ipset=/popads.net/black_koolproxy 54 | ipset=/propellerads.com/black_koolproxy 55 | ipset=/scorecardresearch.com/black_koolproxy 56 | ipset=/serving-sys.com/black_koolproxy 57 | ipset=/tenoad.com/black_koolproxy 58 | ipset=/you1ad.com/black_koolproxy 59 | ipset=/jtdcg.com/black_koolproxy 60 | ipset=/51yes.com/black_koolproxy 61 | ipset=/8ox.cn/black_koolproxy 62 | ipset=/criteo.com/black_koolproxy 63 | ipset=/88rpg.net/black_koolproxy 64 | ipset=/3dwwwgame.com/black_koolproxy 65 | 66 | #百度广告 67 | ipset=/cbjs.baidu.com/black_koolproxy 68 | ipset=/list.video.baidu.com/black_koolproxy 69 | ipset=/nsclick.baidu.com/black_koolproxy 70 | ipset=/play.baidu.com/black_koolproxy 71 | ipset=/sclick.baidu.com/black_koolproxy 72 | ipset=/tieba.baidu.com/black_koolproxy 73 | ipset=/baidustatic.com/black_koolproxy 74 | ipset=/bdimg.com/black_koolproxy 75 | ipset=/bdstatic.com/black_koolproxy 76 | ipset=/share.baidu.com/black_koolproxy 77 | ipset=/hm.baidu.com/black_koolproxy 78 | 79 | #谷歌广告 80 | ipset=/googleadservices.com/black_koolproxy 81 | ipset=/googleadsserving.cn/black_koolproxy 82 | ipset=/googlesyndication.com/black_koolproxy 83 | ipset=/googletagservices.com/black_koolproxy 84 | ipset=/1-ps.googleusercontent.com/black_koolproxy 85 | 86 | #视频广告 87 | ipset=/v.baidu.com/black_koolproxy 88 | ipset=/1000fr.net/black_koolproxy 89 | ipset=/56.com/black_koolproxy 90 | ipset=/v-56.com/black_koolproxy 91 | ipset=/acfun.com/black_koolproxy 92 | ipset=/acfun.tv/black_koolproxy 93 | ipset=/baofeng.com/black_koolproxy 94 | ipset=/baofeng.net/black_koolproxy 95 | ipset=/cntv.cn/black_koolproxy 96 | ipset=/hoopchina.com.cn/black_koolproxy 97 | ipset=/funshion.com/black_koolproxy 98 | ipset=/fun.tv/black_koolproxy 99 | ipset=/hitvs.cn/black_koolproxy 100 | ipset=/hljtv.com/black_koolproxy 101 | ipset=/iqiyi.com/black_koolproxy 102 | ipset=/qiyi.com/black_koolproxy 103 | ipset=/tv.sohu.com/black_koolproxy 104 | ipset=/hd.sohu.com/black_koolproxy 105 | ipset=/aty.sohu.com/black_koolproxy 106 | ipset=/vrs.sohu.com/black_koolproxy 107 | ipset=/hd.sohu.com.cn/black_koolproxy 108 | ipset=/agn.aty.sohu.com/black_koolproxy 109 | ipset=/itc.cn/black_koolproxy 110 | ipset=/kankan.com/black_koolproxy 111 | ipset=/ku6.com/black_koolproxy 112 | ipset=/letv.com/black_koolproxy 113 | ipset=/letvcloud.com/black_koolproxy 114 | ipset=/letvimg.com/black_koolproxy 115 | ipset=/pplive.cn/black_koolproxy 116 | ipset=/pps.tv/black_koolproxy 117 | ipset=/ppsimg.com/black_koolproxy 118 | ipset=/pptv.com/black_koolproxy 119 | ipset=/v.qq.com/black_koolproxy 120 | ipset=/l.qq.com/black_koolproxy 121 | ipset=/video.sina.com.cn/black_koolproxy 122 | ipset=/tudou.com/black_koolproxy 123 | ipset=/wasu.cn/black_koolproxy 124 | ipset=/analytics-union.xunlei.com/black_koolproxy 125 | ipset=/kankan.xunlei.com/black_koolproxy 126 | ipset=/youku.com/black_koolproxy 127 | ipset=/hunantv.com/black_koolproxy 128 | 129 | #特定网站 130 | ipset=/anywlan.com/black_koolproxy 131 | ipset=/qidian.com/black_koolproxy 132 | ipset=/uuu9.com/black_koolproxy 133 | ipset=/suppig.net/black_koolproxy 134 | ipset=/ali213.net/black_koolproxy 135 | ipset=/cnbeta.com/black_koolproxy 136 | ipset=/mydrivers.com/black_koolproxy 137 | ipset=/tanx.com/black_koolproxy 138 | ipset=/mp4ba.com/black_koolproxy 139 | ipset=/.a.baiy.net/black_koolproxy 140 | ipset=/.a.collective-media.net/black_koolproxy 141 | ipset=/.a.itiexue.net/black_koolproxy 142 | ipset=/.a.kickass.to/black_koolproxy 143 | ipset=/.a.shamla.net/black_koolproxy 144 | ipset=/.a.xlpu.cc/black_koolproxy 145 | ipset=/.aavideo.xyz/black_koolproxy 146 | ipset=/.action.data.cp61.ott.cibntv.net/black_koolproxy 147 | ipset=/.ad-apac.doubleclick.net/black_koolproxy 148 | ipset=/.ad.adfurikun.jp/black_koolproxy 149 | ipset=/.ad.csdn.net/black_koolproxy 150 | ipset=/.ad.doubleclick.net/black_koolproxy 151 | ipset=/.ad.ettoday.net/black_koolproxy 152 | ipset=/.ad.fglighting.net/black_koolproxy 153 | ipset=/.ad.hefei.cc/black_koolproxy 154 | ipset=/.ad.jp.doubleclick.net/black_koolproxy 155 | ipset=/.ad.leadboltads.net/black_koolproxy 156 | ipset=/.ad.leadboltmobile.net/black_koolproxy 157 | ipset=/.ad.qingting.fm/black_koolproxy 158 | ipset=/.ad.yixin.im/black_koolproxy 159 | ipset=/.ad7.tagphi.net/black_koolproxy 160 | ipset=/.adbma.adk2.co/black_koolproxy 161 | ipset=/.adclick.g.doubleclick.net/black_koolproxy 162 | ipset=/.adimg.cqnews.net/black_koolproxy 163 | ipset=/.adimg.daumcdn.net/black_koolproxy 164 | ipset=/.adimgs.xici.net/black_koolproxy 165 | ipset=/.adinf.cp11.ott.cibntv.net/black_koolproxy 166 | ipset=/.adm.zbinfo.net/black_koolproxy 167 | ipset=/.admaster.mobi/black_koolproxy 168 | ipset=/.admgr.qingting.fm/black_koolproxy 169 | ipset=/.admicro1.vcmedia.vn/black_koolproxy 170 | ipset=/.admicro4.vcmedia.vn/black_koolproxy 171 | ipset=/.admicro5.vcmedia.vn/black_koolproxy 172 | ipset=/.admicro6.vcmedia.vn/black_koolproxy 173 | ipset=/.admin.louxia.org/black_koolproxy 174 | ipset=/.adplexmedia.adk2.co/black_koolproxy 175 | ipset=/.ads.csdn.net/black_koolproxy 176 | ipset=/.ads.doublemax.net/black_koolproxy 177 | ipset=/.ads.mp.mydas.mobi/black_koolproxy 178 | ipset=/.ads.mydas.mobi/black_koolproxy 179 | ipset=/.ads.pro-market.net/black_koolproxy 180 | ipset=/.ads.trafficjunky.net/black_koolproxy 181 | ipset=/.ads.wasu.tv/black_koolproxy 182 | ipset=/.ads2.opensubtitles.org/black_koolproxy 183 | ipset=/.adstat.cp11.ott.cibntv.net/black_koolproxy 184 | ipset=/.adsystem.wasu.tv/black_koolproxy 185 | ipset=/.adv.fjtv.net/black_koolproxy 186 | ipset=/.adwasu.wasu.tv/black_koolproxy 187 | ipset=/.ag.nukefans.net/black_koolproxy 188 | ipset=/.agn.aty.cp45.ott.cibntv.net/black_koolproxy 189 | ipset=/.al.za5.net/black_koolproxy 190 | ipset=/.aladdin.genieesspv.jp/black_koolproxy 191 | ipset=/.alog.umeng.co/black_koolproxy 192 | ipset=/.amiok.org/black_koolproxy 193 | ipset=/.ams.51junpin.net/black_koolproxy 194 | ipset=/.analytics.ad.daum.net/black_koolproxy 195 | ipset=/.analytics.ws.126.net/black_koolproxy 196 | ipset=/.android.push.126.net/black_koolproxy 197 | ipset=/.androidsdk.ads.mp.mydas.mobi/black_koolproxy 198 | ipset=/.aos.gw.youmi.net/black_koolproxy 199 | ipset=/.aos.prf.hn/black_koolproxy 200 | ipset=/.aos.wall.youmi.net/black_koolproxy 201 | ipset=/.api.adfurikun.jp/black_koolproxy 202 | ipset=/.api.adtimaserver.vn/black_koolproxy 203 | ipset=/.api.cupid.ptqy.gitv.tv/black_koolproxy 204 | ipset=/.api.dewmobile.net/black_koolproxy 205 | ipset=/.api.oneyuan.nagezan.net/black_koolproxy 206 | ipset=/.apklog.cp11.ott.cibntv.net/black_koolproxy 207 | ipset=/.app-g.39.net/black_koolproxy 208 | ipset=/.app.50bang.org/black_koolproxy 209 | ipset=/.ark.cp21.ott.cibntv.net/black_koolproxy 210 | ipset=/.ark.letv-epg.wasu.tv/black_koolproxy 211 | ipset=/.as.kejet.net/black_koolproxy 212 | ipset=/.asimgs.cp61.ott.cibntv.net/black_koolproxy 213 | ipset=/.au.umeng.co/black_koolproxy 214 | ipset=/.au.youmi.net/black_koolproxy 215 | ipset=/.aw.kejet.net/black_koolproxy 216 | ipset=/.b.baiy.net/black_koolproxy 217 | ipset=/.b.bst.126.net/black_koolproxy 218 | ipset=/.b.yunfanlm.net/black_koolproxy 219 | ipset=/.banner.img.static.youmi.net/black_koolproxy 220 | ipset=/.bdaz.adsfactor.net/black_koolproxy 221 | ipset=/.beacon.krxd.net/black_koolproxy 222 | ipset=/.bid.g.doubleclick.net/black_koolproxy 223 | ipset=/.bigbos.top/black_koolproxy 224 | ipset=/.biz5.sandai.net/black_koolproxy 225 | ipset=/.bkmcgi.play.cp81.ott.cibntv.net/black_koolproxy 226 | ipset=/.bksdkconfig.play.cp81.ott.cibntv.net/black_koolproxy 227 | ipset=/.brance.play.cp81.ott.cibntv.net/black_koolproxy 228 | ipset=/.bshare.optimix.asia/black_koolproxy 229 | ipset=/.bx.optimix.asia/black_koolproxy 230 | ipset=/.c.ad6media.fr/black_koolproxy 231 | ipset=/.c.mnet-ad.net/black_koolproxy 232 | ipset=/.c03.optimix.asia/black_koolproxy 233 | ipset=/.c1.adform.net/black_koolproxy 234 | ipset=/.c1.popads.net/black_koolproxy 235 | ipset=/.c2.97you.net/black_koolproxy 236 | ipset=/.c2.popads.net/black_koolproxy 237 | ipset=/.c5.97you.net/black_koolproxy 238 | ipset=/.cachenotice.cp11.ott.cibntv.net/black_koolproxy 239 | ipset=/.cc.bigbos.top/black_koolproxy 240 | ipset=/.cc.ccg51.win/black_koolproxy 241 | ipset=/.cc.yfi052.pw/black_koolproxy 242 | ipset=/.ccg51.win/black_koolproxy 243 | ipset=/.cdn.adsfactor.net/black_koolproxy 244 | ipset=/.cdn.clicktale.net/black_koolproxy 245 | ipset=/.cdn.innity.net/black_koolproxy 246 | ipset=/.cdn.media.innity.net/black_koolproxy 247 | ipset=/.cdn1.ettoday.net/black_koolproxy 248 | ipset=/.cdn3.e705.net/black_koolproxy 249 | ipset=/.cdnonead-onead.cdn.hinet.net/black_koolproxy 250 | ipset=/.cdnssl.clicktale.net/black_koolproxy 251 | ipset=/.cf.gdatecube.net/black_koolproxy 252 | ipset=/.cfg.adsmogo.mobi/black_koolproxy 253 | ipset=/.cfg.adsmogo.net/black_koolproxy 254 | ipset=/.cfg.adsmogo.org/black_koolproxy 255 | ipset=/.ck.kejet.net/black_koolproxy 256 | ipset=/.clicklog.moviebox.baofeng.net/black_koolproxy 257 | ipset=/.clicktalecdn.sslcs.cdngc.net/black_koolproxy 258 | ipset=/.clk.gentags.net/black_koolproxy 259 | ipset=/.cloud.zyiis.net/black_koolproxy 260 | ipset=/.cm.fastapi.net/black_koolproxy 261 | ipset=/.cm.g.doubleclick.net/black_koolproxy 262 | ipset=/.cm.gtags.net/black_koolproxy 263 | ipset=/.cmarket.kejet.net/black_koolproxy 264 | ipset=/.cms.gtags.net/black_koolproxy 265 | ipset=/.code2.huimee.net/black_koolproxy 266 | ipset=/.config.baofeng.net/black_koolproxy 267 | ipset=/.contextual.media.net/black_koolproxy 268 | ipset=/.corner.houyi.baofeng.net/black_koolproxy 269 | ipset=/.count.game.pps.tv/black_koolproxy 270 | ipset=/.counter.csdn.net/black_koolproxy 271 | ipset=/.cp.3big.net/black_koolproxy 272 | ipset=/.cp.5jjx.net/black_koolproxy 273 | ipset=/.cp.efo.cc/black_koolproxy 274 | ipset=/.cp.jiajv.net/black_koolproxy 275 | ipset=/.cpc.88rpg.net/black_koolproxy 276 | ipset=/.cus.adsmogo.mobi/black_koolproxy 277 | ipset=/.cus.adsmogo.org/black_koolproxy 278 | ipset=/.cvt.mydas.mobi/black_koolproxy 279 | ipset=/.d.39.net/black_koolproxy 280 | ipset=/.d.pixiv.org/black_koolproxy 281 | ipset=/.d.yoyi.tv/black_koolproxy 282 | ipset=/.d1635hfcvs8ero.cloudfront.net/black_koolproxy 283 | ipset=/.d3al52d8cojds7.cloudfront.net/black_koolproxy 284 | ipset=/.d3f.houyi.baofeng.net/black_koolproxy 285 | ipset=/.daima.jiduan.cc/black_koolproxy 286 | ipset=/.daima.kandu.cc/black_koolproxy 287 | ipset=/.dat.gtags.net/black_koolproxy 288 | ipset=/.dc.cp21.ott.cibntv.net/black_koolproxy 289 | ipset=/.dc.csdn.net/black_koolproxy 290 | ipset=/.dc.letv-epg.wasu.tv/black_koolproxy 291 | ipset=/.dc2.csdn.net/black_koolproxy 292 | ipset=/.de.as.cp61.ott.cibntv.net/black_koolproxy 293 | ipset=/.dex.advg.jp/black_koolproxy 294 | ipset=/.display.ad.daum.net/black_koolproxy 295 | ipset=/.dl-vip.pcfaster.baidu.co.th/black_koolproxy 296 | ipset=/.dl.img80.net/black_koolproxy 297 | ipset=/.dl.xyymall.net/black_koolproxy 298 | ipset=/.dload.qd.qingting.fm/black_koolproxy 299 | ipset=/.dm531.dm530.net/black_koolproxy 300 | ipset=/.dm532.dm530.net/black_koolproxy 301 | ipset=/.dmp.kejet.net/black_koolproxy 302 | ipset=/.dmp.tenmax.io/black_koolproxy 303 | ipset=/.dolphin.ftimg.net/black_koolproxy 304 | ipset=/.down.laomaotao.net/black_koolproxy 305 | ipset=/.down.xiazai2.net/black_koolproxy 306 | ipset=/.down.xiazaiyuan.net/black_koolproxy 307 | ipset=/.downloada.dewmobile.net/black_koolproxy 308 | ipset=/.downloadb.dewmobile.net/black_koolproxy 309 | ipset=/.dp3.play.cp81.ott.cibntv.net/black_koolproxy 310 | ipset=/.dpvc.39.net/black_koolproxy 311 | ipset=/.dr3k6qonw2kee.cloudfront.net/black_koolproxy 312 | ipset=/.dt.39photo.net/black_koolproxy 313 | ipset=/.dz.njq.net/black_koolproxy 314 | ipset=/.e-vcdn.anthill.vn/black_koolproxy 315 | ipset=/.e.e708.net/black_koolproxy 316 | ipset=/.ee.e701.net/black_koolproxy 317 | ipset=/.ex.puata.info/black_koolproxy 318 | ipset=/.f.e703.net/black_koolproxy 319 | ipset=/.f.e719.net/black_koolproxy 320 | ipset=/.f.novanet.vn/black_koolproxy 321 | ipset=/.f2.e703.net/black_koolproxy 322 | ipset=/.float.sandai.net/black_koolproxy 323 | ipset=/.g.ad8.cc/black_koolproxy 324 | ipset=/.g.doubleclick.net/black_koolproxy 325 | ipset=/.g.fastapi.net/black_koolproxy 326 | ipset=/.g.ousns.net/black_koolproxy 327 | ipset=/.game.pps.tv/black_koolproxy 328 | ipset=/.googleads.g.doubleclick.net/black_koolproxy 329 | ipset=/.guess.union2.50bang.org/black_koolproxy 330 | ipset=/.ha.pro-market.net/black_koolproxy 331 | ipset=/.haitaoad.nosdn.127.net/black_koolproxy 332 | ipset=/.i.9le.net/black_koolproxy 333 | ipset=/.i.adfurikun.jp/black_koolproxy 334 | ipset=/.i.bsshw.net/black_koolproxy 335 | ipset=/.i.jiajv.net/black_koolproxy 336 | ipset=/.i.l.inmobicdn.net/black_koolproxy 337 | ipset=/.icon.51.la/black_koolproxy 338 | ipset=/.id1.anreson.net/black_koolproxy 339 | ipset=/.ii.bsshw.net/black_koolproxy 340 | ipset=/.ima.xcyjzs.net/black_koolproxy 341 | ipset=/.images.cp45.ott.cibntv.net/black_koolproxy 342 | ipset=/.img.88rpg.net/black_koolproxy 343 | ipset=/.img.ads.csdn.net/black_koolproxy 344 | ipset=/.img.users.51.la/black_koolproxy 345 | ipset=/.img1.126.net/black_koolproxy 346 | ipset=/.img1.pszyzxh.org/black_koolproxy 347 | ipset=/.img2.126.net/black_koolproxy 348 | ipset=/.imgcdn.xixiwan.net/black_koolproxy 349 | ipset=/.imp-mdsp.avazutracking.net/black_koolproxy 350 | ipset=/.imp.adsmogo.mobi/black_koolproxy 351 | ipset=/.imp.adsmogo.net/black_koolproxy 352 | ipset=/.ipua.adfurikun.jp/black_koolproxy 353 | ipset=/.irs01.net/black_koolproxy 354 | ipset=/.j.microad.net/black_koolproxy 355 | ipset=/.jgl.microad.net/black_koolproxy 356 | ipset=/.jp.as.cp61.ott.cibntv.net/black_koolproxy 357 | ipset=/.jph.itiexue.net/black_koolproxy 358 | ipset=/.js-1.pchome.net/black_koolproxy 359 | ipset=/.js.a3p4.net/black_koolproxy 360 | ipset=/.js.cyad.cc/black_koolproxy 361 | ipset=/.js.mumayi.net/black_koolproxy 362 | ipset=/.js.revsci.net/black_koolproxy 363 | ipset=/.js.users.51.la/black_koolproxy 364 | ipset=/.js1116.anreson.net/black_koolproxy 365 | ipset=/.js1315.anreson.net/black_koolproxy 366 | ipset=/.js1940.anreson.net/black_koolproxy 367 | ipset=/.js2294.anreson.net/black_koolproxy 368 | ipset=/.js3555.hongtaidichan.net/black_koolproxy 369 | ipset=/.js4476.hongtaidichan.net/black_koolproxy 370 | ipset=/.js4775.hongtaidichan.net/black_koolproxy 371 | ipset=/.js883.anreson.net/black_koolproxy 372 | ipset=/.jsc.dt07.net/black_koolproxy 373 | ipset=/.jssd.kb20.cc/black_koolproxy 374 | ipset=/.jump1.pszyzxh.org/black_koolproxy 375 | ipset=/.jump2.pszyzxh.org/black_koolproxy 376 | ipset=/.kawa11.space/black_koolproxy 377 | ipset=/.keydot.net/black_koolproxy 378 | ipset=/.kti.bigbos.top/black_koolproxy 379 | ipset=/.l.fastapi.net/black_koolproxy 380 | ipset=/.lg.logging.admicro.vn/black_koolproxy 381 | ipset=/.lg1.logging.admicro.vn/black_koolproxy 382 | ipset=/.link.jiduan.cc/black_koolproxy 383 | ipset=/.livep.l.cp81.ott.cibntv.net/black_koolproxy 384 | ipset=/.lives.l.cp81.ott.cibntv.net/black_koolproxy 385 | ipset=/.loading.baofeng5.baofeng.net/black_koolproxy 386 | ipset=/.log.adtimaserver.vn/black_koolproxy 387 | ipset=/.log.houyi.baofeng.net/black_koolproxy 388 | ipset=/.log.tiexue.net/black_koolproxy 389 | ipset=/.logger.qingting.fm/black_koolproxy 390 | ipset=/.logic.cpm.cm.sandai.net/black_koolproxy 391 | ipset=/.m.analytics.126.net/black_koolproxy 392 | ipset=/.m.down.sandai.net/black_koolproxy 393 | ipset=/.m.kejet.net/black_koolproxy 394 | ipset=/.mc.yandex.ru/black_koolproxy 395 | ipset=/.mcc.chinauma.net/black_koolproxy 396 | ipset=/.mcgi.play.cp81.ott.cibntv.net/black_koolproxy 397 | ipset=/.media.adtimaserver.vn/black_koolproxy 398 | ipset=/.media.trafficjunky.net/black_koolproxy 399 | ipset=/.mg.dt07.net/black_koolproxy 400 | ipset=/.mid.houyi.baofeng.net/black_koolproxy 401 | ipset=/.mimg.126.net/black_koolproxy 402 | ipset=/.mixer.cupid.ptqy.gitv.tv/black_koolproxy 403 | ipset=/.mlog.search.xiaomi.net/black_koolproxy 404 | ipset=/.mmg.aty.cp45.ott.cibntv.net/black_koolproxy 405 | ipset=/.ms.anreson.net/black_koolproxy 406 | ipset=/.msg.71.am/black_koolproxy 407 | ipset=/.msg.ptqy.gitv.tv/black_koolproxy 408 | ipset=/.msg.video.ptqy.gitv.tv/black_koolproxy 409 | ipset=/.msg2.video.ptqy.gitv.tv/black_koolproxy 410 | ipset=/.msga.71.am/black_koolproxy 411 | ipset=/.msga.ptqy.gitv.tv/black_koolproxy 412 | ipset=/.nclog.mars.baofeng.net/black_koolproxy 413 | ipset=/.news-l.play.cp81.ott.cibntv.net/black_koolproxy 414 | ipset=/.news.766ba.net/black_koolproxy 415 | ipset=/.news.push.126.net/black_koolproxy 416 | ipset=/.nl.rcd.ptqy.gitv.tv/black_koolproxy 417 | ipset=/.oc.umeng.co/black_koolproxy 418 | ipset=/.oki.xcyjzs.net/black_koolproxy 419 | ipset=/.okt.xcyjzs.net/black_koolproxy 420 | ipset=/.onlinetips.baofeng5.baofeng.net/black_koolproxy 421 | ipset=/.outer.anquan.org/black_koolproxy 422 | ipset=/.p-l.play.cp81.ott.cibntv.net/black_koolproxy 423 | ipset=/.p.rhgw.net/black_koolproxy 424 | ipset=/.panel.adtify.pl/black_koolproxy 425 | ipset=/.parser.houyi.baofeng.net/black_koolproxy 426 | ipset=/.pb.bi.gitv.tv/black_koolproxy 427 | ipset=/.pb.ott.hd.cp45.ott.cibntv.net/black_koolproxy 428 | ipset=/.pclog.suishenyun.net/black_koolproxy 429 | ipset=/.pd7-imp.revsci.net/black_koolproxy 430 | ipset=/.phpad.cqnews.net/black_koolproxy 431 | ipset=/.pic.fastapi.net/black_koolproxy 432 | ipset=/.pix04.revsci.net/black_koolproxy 433 | ipset=/.pre.api.tw06.xlmc.sandai.net/black_koolproxy 434 | ipset=/.ps.eyeota.net/black_koolproxy 435 | ipset=/.pt.trafficjunky.net/black_koolproxy 436 | ipset=/.pubads.g.doubleclick.net/black_koolproxy 437 | ipset=/.push.tv.api.3g.cp31.ott.cibntv.net/black_koolproxy 438 | ipset=/.pvlog.moviebox.baofeng.net/black_koolproxy 439 | ipset=/.px.owneriq.net/black_koolproxy 440 | ipset=/.qiye11.ejunshi.net/black_koolproxy 441 | ipset=/.qosp.msg.71.am/black_koolproxy 442 | ipset=/.qr.cp31.ott.cibntv.net/black_koolproxy 443 | ipset=/.quote.51.la/black_koolproxy 444 | ipset=/.r.l.cp31.ott.cibntv.net/black_koolproxy 445 | ipset=/.r.popin.cc/black_koolproxy 446 | ipset=/.r.youmi.net/black_koolproxy 447 | ipset=/.r1.cp31.ott.cibntv.net/black_koolproxy 448 | ipset=/.resolver.msg.xiaomi.net/black_koolproxy 449 | ipset=/.rlog.popin.cc/black_koolproxy 450 | ipset=/.rtb-asiamax.tenmax.io/black_koolproxy 451 | ipset=/.rtb-p.kejet.net/black_koolproxy 452 | ipset=/.s.5jjx.net/black_koolproxy 453 | ipset=/.s.ato.mx/black_koolproxy 454 | ipset=/.s.de123.net/black_koolproxy 455 | ipset=/.s.druu.cc/black_koolproxy 456 | ipset=/.s.eclick.vn/black_koolproxy 457 | ipset=/.s.effectivemeasure.net/black_koolproxy 458 | ipset=/.s.fastapi.net/black_koolproxy 459 | ipset=/.s.gdatecube.net/black_koolproxy 460 | ipset=/.s.qd.qingting.fm/black_koolproxy 461 | ipset=/.s.youmi.net/black_koolproxy 462 | ipset=/.s0.2mdn.net/black_koolproxy 463 | ipset=/.s03.optimix.asia/black_koolproxy 464 | ipset=/.s1.2mdn.net/black_koolproxy 465 | ipset=/.s4.55.la/black_koolproxy 466 | ipset=/.s5.keydot.net/black_koolproxy 467 | ipset=/.sd.kk3g.net/black_koolproxy 468 | ipset=/.sd.mmfile.net/black_koolproxy 469 | ipset=/.sdk.data.cp61.ott.cibntv.net/black_koolproxy 470 | ipset=/.sdk.m.cp31.ott.cibntv.net/black_koolproxy 471 | ipset=/.sdkconfig.play.cp81.ott.cibntv.net/black_koolproxy 472 | ipset=/.securepubads.g.doubleclick.net/black_koolproxy 473 | ipset=/.serve.popads.net/black_koolproxy 474 | ipset=/.servedby.adsfactor.net/black_koolproxy 475 | ipset=/.servicegetbook.net/black_koolproxy 476 | ipset=/.sg-cdn.effectivemeasure.net/black_koolproxy 477 | ipset=/.sh.adingo.jp/black_koolproxy 478 | ipset=/.shzyjbr.wtdtjs.rocks/black_koolproxy 479 | ipset=/.sis.jpush.io/black_koolproxy 480 | ipset=/.sit.gentags.net/black_koolproxy 481 | ipset=/.sjkmio.812920.top/black_koolproxy 482 | ipset=/.snap.snapmobile.asia/black_koolproxy 483 | ipset=/.sp.gmossp-sp.jp/black_koolproxy 484 | ipset=/.spap.adingo.jp.eimg.jp/black_koolproxy 485 | ipset=/.spap.adingo.jp/black_koolproxy 486 | ipset=/.spapi.i-mobile.co.jp/black_koolproxy 487 | ipset=/.spdmg-backend.i-mobile.co.jp/black_koolproxy 488 | ipset=/.spdmg.i-mobile.co.jp/black_koolproxy 489 | ipset=/.ss.subo.me/black_koolproxy 490 | ipset=/.ss2p.uuxs.net/black_koolproxy 491 | ipset=/.ssl-cdn.media.innity.net/black_koolproxy 492 | ipset=/.ssp.tenmax.io/black_koolproxy 493 | ipset=/.stat.cp33.ott.cibntv.net/black_koolproxy 494 | ipset=/.stat.gw.youmi.net/black_koolproxy 495 | ipset=/.stat.pchome.net/black_koolproxy 496 | ipset=/.stat.titan.imgo.tv/black_koolproxy 497 | ipset=/.static.adtimaserver.vn/black_koolproxy 498 | ipset=/.static.anquan.org/black_koolproxy 499 | ipset=/.static.criteo.net/black_koolproxy 500 | ipset=/.static.eclick.vn/black_koolproxy 501 | ipset=/.static.houyi.baofeng.net/black_koolproxy 502 | ipset=/.static.novanet.vn/black_koolproxy 503 | ipset=/.static.snapmobile.asia/black_koolproxy 504 | ipset=/.static.youmi.net/black_koolproxy 505 | ipset=/.stats.g.doubleclick.net/black_koolproxy 506 | ipset=/.store.ptqy.gitv.tv/black_koolproxy 507 | ipset=/.store.tv.api.3g.cp31.ott.cibntv.net/black_koolproxy 508 | ipset=/.super.kdnet.net/black_koolproxy 509 | ipset=/.t-l.play.cp81.ott.cibntv.net/black_koolproxy 510 | ipset=/.t.adcrops.net/black_koolproxy 511 | ipset=/.t.vbxx.net/black_koolproxy 512 | ipset=/.t2.vbxx.net/black_koolproxy 513 | ipset=/.tenmax-static.cacafly.net/black_koolproxy 514 | ipset=/.test.api.xlmc.sandai.net/black_koolproxy 515 | ipset=/.tinydrag.t.cp61.ott.cibntv.net/black_koolproxy 516 | ipset=/.tj.yule8.net/black_koolproxy 517 | ipset=/.tp.sphwq.net/black_koolproxy 518 | ipset=/.track.dmp.youmi.net/black_koolproxy 519 | ipset=/.tw13b093.sandai.net/black_koolproxy 520 | ipset=/.twbill.xyz/black_koolproxy 521 | ipset=/.u.1133.cc/black_koolproxy 522 | ipset=/.ujs.jialiren.net/black_koolproxy 523 | ipset=/.uma.gtags.net/black_koolproxy 524 | ipset=/.union2.50bang.org/black_koolproxy 525 | ipset=/.update.123juzi.net/black_koolproxy 526 | ipset=/.ups.ksmobile.net/black_koolproxy 527 | ipset=/.users.51.la/black_koolproxy 528 | ipset=/.ut.gtags.net/black_koolproxy 529 | ipset=/.util.nphoto.net/black_koolproxy 530 | ipset=/.v.e704.net/black_koolproxy 531 | ipset=/.v.img80.net/black_koolproxy 532 | ipset=/.v.jtxh.net/black_koolproxy 533 | ipset=/.val.atm.cp31.ott.cibntv.net/black_koolproxy 534 | ipset=/.valf.atm.cp31.ott.cibntv.net/black_koolproxy 535 | ipset=/.vip.yoyozz.net/black_koolproxy 536 | ipset=/.vip.yule8.net/black_koolproxy 537 | ipset=/.vipjs.csad.cc/black_koolproxy 538 | ipset=/.vpie.net/black_koolproxy 539 | ipset=/.w.3big.net/black_koolproxy 540 | ipset=/.w.efo.cc/black_koolproxy 541 | ipset=/.w2.3big.net/black_koolproxy 542 | ipset=/.w2.docols.net/black_koolproxy 543 | ipset=/.wazero.online/black_koolproxy 544 | ipset=/.web.51.la/black_koolproxy 545 | ipset=/.web.houyi.baofeng.net/black_koolproxy 546 | ipset=/.web1.51.la/black_koolproxy 547 | ipset=/.web2.51.la/black_koolproxy 548 | ipset=/.wl.houyi.baofeng.net/black_koolproxy 549 | ipset=/.wm.20150.net/black_koolproxy 550 | ipset=/.ws.ksmobile.net/black_koolproxy 551 | ipset=/.ww202.keyyou.net/black_koolproxy 552 | ipset=/.www.51.la/black_koolproxy 553 | ipset=/.www.6604.org/black_koolproxy 554 | ipset=/.www.ads8.cc/black_koolproxy 555 | ipset=/.www.daima123.cc/black_koolproxy 556 | ipset=/.www.i1236.net/black_koolproxy 557 | ipset=/.www.keydot.net/black_koolproxy 558 | ipset=/.www.laomaotao.net/black_koolproxy 559 | ipset=/.www.umeng.co/black_koolproxy 560 | ipset=/.www.yanjiele8.club/black_koolproxy 561 | ipset=/.www.yoyozz.net/black_koolproxy 562 | ipset=/.xs.houyi.baofeng.net/black_koolproxy 563 | ipset=/.y.one.impact-ad.jp/black_koolproxy 564 | ipset=/.yads.c.yimg.jp/black_koolproxy 565 | ipset=/.yads.yahoo.co.jp/black_koolproxy 566 | ipset=/.yiyuan.nagezan.net/black_koolproxy 567 | ipset=/.yoo.yiiyoo.net/black_koolproxy 568 | ipset=/1000fr.net/black_koolproxy 569 | ipset=/acfun.tv/black_koolproxy 570 | ipset=/baofeng.net/black_koolproxy 571 | ipset=/fun.tv/black_koolproxy 572 | ipset=/pps.tv/black_koolproxy 573 | -------------------------------------------------------------------------------- /files/usr/share/koolproxy/kpupdate: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # set -x 3 | 4 | . /lib/functions.sh 5 | 6 | CONFIG=koolproxy 7 | KP_DIR=/usr/share/koolproxy 8 | TMP_DIR=/tmp/koolproxy 9 | LOGFILE="/var/log/koolproxy.log" 10 | 11 | config_t_get() { 12 | local index=0 13 | [ -n "$4" ] && index=$4 14 | local ret=$(uci get $CONFIG.@$1[$index].$2 2>/dev/null) 15 | echo ${ret:=$3} 16 | } 17 | 18 | limit_log() { 19 | local log=$1 20 | [ ! -f "$log" ] && return 21 | local sc=100 22 | [ -n "$2" ] && sc=$2 23 | local count=$(grep -c "" $log) 24 | if [ $count -gt $sc ];then 25 | let count=count-$sc 26 | sed -i "1,$count d" $log 27 | fi 28 | } 29 | 30 | init_env() { 31 | rm -rf "$TMP_DIR" 32 | mkdir -p "$TMP_DIR" 33 | } 34 | 35 | restart_koolproxy() { 36 | /etc/init.d/koolproxy restart 37 | } 38 | 39 | __compare_file() { 40 | local descript=$1 41 | local localPath=$2 42 | local remoteUrl=$3 43 | 44 | echo $(date "+%F %T"): ------------------- $descript更新 ------------------- >>$LOGFILE 45 | local filename=`basename $localPath` 46 | local remotePath="$TMP_DIR/$filename" 47 | wget-ssl -qT5 --no-check-certificate "$remoteUrl" -O "$remotePath" 48 | if [ "$?" == "0" ]; then 49 | if [ -f "$localPath" ]; then 50 | localMD5=`md5sum "$localPath" | awk '{print $1}'` 51 | localNum=`cat "$localPath" | grep -v '^!' | wc -l` 52 | else 53 | localMD5="文件不存在" 54 | localNum="0" 55 | fi 56 | remoteMD5=`md5sum "$remotePath" | awk '{print $1}'` 57 | remoteNum=`cat "$remotePath" | grep -v '^!' | wc -l` 58 | 59 | echo $(date "+%F %T"): 本地版本MD5:$localMD5 >>$LOGFILE 60 | echo $(date "+%F %T"): 本地版本条数:$localNum >>$LOGFILE 61 | echo >>$LOGFILE 62 | echo $(date "+%F %T"): 在线版本MD5:$remoteMD5 >>$LOGFILE 63 | echo $(date "+%F %T"): 在线版本条数:$remoteNum >>$LOGFILE 64 | echo >>$LOGFILE 65 | 66 | if [ "$localMD5" != "$remoteMD5" ];then 67 | echo $(date "+%F %T"): 检测到更新,开始更新规则! >>$LOGFILE 68 | mv -f "$remotePath" "$localPath" 69 | echo $(date "+%F %T"): 更新成功! >>$LOGFILE 70 | echo >>$LOGFILE 71 | return 0 72 | fi 73 | else 74 | echo "$(date "+%F %T"): 获取在线版本时出现错误! " >>$LOGFILE 75 | echo >>$LOGFILE 76 | fi 77 | return 1 78 | } 79 | 80 | __update_rule() { 81 | local name 82 | local file 83 | local exrule 84 | local enable 85 | config_get name $1 name 86 | config_get file $1 file 87 | config_get exrule $1 url 88 | config_get enable $1 load 89 | if [ -n "$file" ] && [ -n "$exrule" ]; then 90 | if [ $enable -ne 1 ]; then 91 | return 92 | fi 93 | __compare_file "$name" "$KP_DIR/data/rules/$file" "$exrule" 94 | if [ "$?" == "0" ]; then 95 | uci set koolproxy.$1.time="`date +%Y-%m-%d" "%H:%M`" 96 | uci commit koolproxy 97 | RESTART_KOOLPROXY=true 98 | fi 99 | cat $KP_DIR/data/rules/$file >>$KP_DIR/data/rules/user.txt 100 | echo >>$LOGFILE 101 | fi 102 | } 103 | 104 | update_rss_rules() { 105 | cp $KP_DIR/data/user.txt $KP_DIR/data/rules/user.txt 106 | config_load $CONFIG 107 | config_foreach __update_rule rss_rule 108 | } 109 | 110 | update_adb_host() { 111 | /usr/sbin/adblockplus >>$LOGFILE 2>&1 & 112 | if [ "$?" == "0" ]; then 113 | RESTART_DNSMASQ=true 114 | fi 115 | } 116 | 117 | # main process 118 | init_env 119 | limit_log $LOGFILE 120 | 121 | # update user rules 122 | update_rss_rules 123 | 124 | koolproxy_mode=$(config_t_get global koolproxy_mode 1) 125 | koolproxy_host=$(config_t_get global koolproxy_host 0) 126 | 127 | # update ADB Plus Host 128 | if [ "$koolproxy_mode" == "2" ] && [ "$koolproxy_host" == "1" ];then 129 | update_adb_host 130 | fi 131 | 132 | if [ $RESTART_KOOLPROXY ]; then 133 | restart_koolproxy 134 | echo $(date "+%F %T"): 重启koolproxy进程 >>$LOGFILE 135 | fi 136 | 137 | init_env 138 | -------------------------------------------------------------------------------- /koolproxy.txt: -------------------------------------------------------------------------------- 1 | koolproxy插件/固件开发文档1.3 2 | 更新日期:2017年7月7日(koolproxy 3.6.1) 3 | 4 | ================================================================================================ 5 | 声明: 6 | KoolProxy 是一个免费软件,著作权归属 KoolProxy.com,用户可以非商业性地复制和使用 KoolProxy,但禁止将 KoolProxy 用于商业用途。 7 | KoolProxy 可以对 https 网络数据进行识别代理,使用 https 功能的用户需要自己提供相关证书,本程序提供的证书生成脚本仅供用户参考,证书的保密工作由用户自行负责。 8 | 使用本软件的风险由用户自行承担,在适用法律允许的最大范围内,对因使用本产品所产生的损害及风险,包括但不限于直接或间接的个人损害、商业赢利的丧失、贸易中断、商业信息的丢失或任何其它经济损失,KoolProxy.com 不承担任何责任。 9 | 10 | ================================================================================================ 11 | KoolProxy By Xiaobao & Crwnet v3.6.1 12 | 13 | USAGE: 14 | koolproxy [options] [arguments...] 15 | 16 | OPTIONS: 17 | -p value listen port, default value is 3000 18 | -l value log level (0:DEBUG, 1:INFO, 2:AD, 3:WARNING, 4:ERROR), default value is ERROR 19 | -c value thread count, default value is the number of cpus 20 | -b value data path, default value is './data' 21 | -d run as daemon mode 22 | -v show version 23 | -h show help 24 | 25 | ADVANCED: 26 | --cert generate ssl cert 27 | --ipv6 enable ipv6, works for ipv6 nat mode 28 | --video | -e video mode, load video rules only 29 | --mark mark mode, set the socket mark(src ip) when connect to remote host. requires the CAP_NET_ADMIN capability 30 | --ttl value ttl mode, set the socket ttl when connect to remote host. default value is 0 (disable) 31 | 32 | ================================================================================================ 33 | 交流地址: 34 | 1 QQ群1: 595300867 35 | 2 QQ群2: 203726739 36 | 3 TG群: https://t.me/joinchat/AAAAAD-tO7GPvfOU131_vg 37 | 4 更新日志:http://koolshare.cn/thread-64086-1-1.html 38 | 39 | ================================================================================================ 40 | #koolproxy部署文件目录参考1(使用openssl生成证书) 41 | . 42 | ├── data 43 | │   ├── gen_ca.sh #证书生成脚本 44 | │   ├── koolproxy_ipset.conf #ipset名单 45 | │   ├── openssl.cnf #证书生成所用配置文件 46 | │   ├── rules #规则存放文件夹 47 | │   │   ├── kp.dat #视频规则 48 | │   │   ├── koolproxy.txt #静态规则 49 | │   │   ├── daily.txt #每日规则 50 | │   │   └── user.txt #自定义规则 51 | │   └── version #插件版本号(merlin) 52 | └── koolproxy #koolproxy二进制(为了保证二进制顺利更新,请保证目录可写) 53 | 54 | 1 证书生成使用命令 sh gen_ca.sh,该脚本会调用系统内的openssl来生成证书,运行成功后会自动创建data/private data/cert目录 55 | 私钥和公钥会分别存在data/private data/cert目录下,使用http://110.110.110.110会下载路由器内的证书 56 | 57 | ------------------------------------------------------------------------------------------------ 58 | #koolproxy部署文件目录参考2(使用koolproxy生成证书) 59 | . 60 | └── koolproxy #koolproxy二进制(为了保证二进制顺利更新,请保证目录可写) 61 | 1 因为规则文件会由koolproxy自动下载,下载后会自动创建data/rules目录 62 | 2 使用koolproxy --cert命令可以生成证书,运行成功后会自动创建data/private data/cert目录 63 | 私钥和公钥会分别存在data/private data/cert目录下,使用http://110.110.110.110会下载路由器内的证书 64 | 因为mbedtls性能原因,在非软路由机器上用koolproxy --cert生成证书需要时间较长,请耐心等待 65 | 66 | ================================================================================================ 67 | 说明: 68 | 1 koolproxy启动会自动检测规则更新,如果没有./data/rules文件夹,会自己创建并下载规则到此处 69 | 2 koolproxy启动后会检测二进制文件更新,如果有更新,会替换./koolproxy,并且由父进程重启koolproxy,以后每20分钟检测一次更新 70 | 3 现在不支持规则订阅了,只能识别kp.dat, koolproxy.txt, user.txt,daily.txt,需要自定义规则的可以修改user.txt 71 | 72 | # 二进制下载固定地址 73 | https://koolproxy.com/downloads/i386 74 | https://koolproxy.com/downloads/x86_64 75 | https://koolproxy.com/downloads/arm 76 | https://koolproxy.com/downloads/mips 77 | https://koolproxy.com/downloads/mipsel 78 | 79 | # 规则下载固定地址 80 | https://kprule.com/koolproxy.txt 81 | https://kprule.com/daily.txt 82 | https://kprule.com/kp.dat 83 | https://kprule.com/user.txt 84 | 85 | # 规则下载对应的CDN地址 86 | https://kprules.b0.upaiyun.com/koolproxy.txt 87 | https://kprules.b0.upaiyun.com/daily.txt 88 | https://kprules.b0.upaiyun.com/kp.dat 89 | https://kprules.b0.upaiyun.com/user.txt 90 | 91 | # 二进制文件和规则 github备份地址: 92 | 二进制:https://github.com/koolproxy/koolproxy-bin (已作废) 93 | 规则:https://github.com/koolproxy/koolproxy_rules (已作废) 94 | 95 | 96 | 1 建议从上面的链接获取最新的二进制和基本的规则文件,然后按照上面的目录结构来部署 97 | 2 如果不需要https过滤,只需要一个koolproxy程序就足够了,data文件夹和rules文件夹都会自己创建。 98 | 3 koolproxy.txt内有视频规则、静态规则、每日规则的更新日期,可以用于提取并显示到界面 99 | 100 | ================================================================================================ 101 | koolproxy运行: 102 | 103 | 1 在koolproxy主程序目录运行,例如merlin固件下运行:cd /koolshare/koolproxy && koolproxy -d 104 | 2 不在koolproxy主程序目录运行(例如将koolproxy放在环境变量中),例如merlin固件下运行:koolproxy -b /koolshare/koolproxy -d -b为data路径 105 | 其它运行方式可能会造成koolproxy识别不到data目录而无法加载规则 106 | koolproxy运行后默认会使用端口3000作为透明代理端口,需要利用iptables将数据导到端口3000才能发挥作用。 107 | 108 | 视频模式: 109 | 1 使用命令koolproxy -e 即可开启 110 | 2 开启后只会加载视频规则kp.dat和user.txt 111 | 112 | 调试模式: 113 | 1 使用命令koolproxy -l0 即可开启,l后面的数字代表不同的日志详细程度 114 | 2 需要检查规则命中行数可以需要使用-l2 115 | 116 | ttl功能: 117 | 1 使用命令koolproxy --ttl 160 即可开启ttl功能,后面的数值代表ttl大小 118 | 2 ttl功能开启后,koolproxy会对经过它的所有数据ttl进行调整,可以利用iptables的match ttl功能数据进行匹配 119 | 120 | mark功能: 121 | 1 使用命令koolproxy --mark 即可开启mark功能 122 | 2 mark功能开启后,koolproxy会对经过它的所有数据打上标记,mark值等于该数据的源ip转换为十六进制的值 123 | 3 例如局域网内192.168.1.100的数据,将会被打上0xc0a80164的mark(192 = c0, 168 = a8, 1 = 01, 100 = 64 ) 124 | 4 开发者可以用此功和SS配合,达到既科学上网,又能过滤这些科学上网的流量,还不影响科学上网访问控制的功能 125 | 5 ip转换为mark值参考命令:echo 192.168.1.100 | awk -F "." '{printf ("0x%02x", $1)} {printf ("%02x", $2)} {printf ("%02x", $3)} {printf ("%02x\n", $4)}' 126 | 127 | ================================================================================================ 128 | ss + kp过滤方案(2017年7月7日): 129 | 130 | 方案1(优先SS,其次KP,不推荐): 131 | 1 在NAT PREROUTING链内,SS在前,KP在后,流量将先走SS,经过SS分流后,国外流量走ss-redir,实现翻墙; 132 | 2 而剩下国内流量在PREROUTING链内继续往下匹配到koolrpxy规则,流量最终走koolproxy,实现过滤。 133 | 结果:koolproxy只能过滤国内流量(SS剩下的)。 134 | 135 | 方案2(优先KP,其次SS,不推荐); 136 | 1 在NAT PREROUTING链内,KP在前,SS在后,流量将先走KP,实现过滤; 137 | 2 为了SS能拿到KP过滤后的数据,使用match ttl匹配,在OUTPUT链内将流量全部给SS,实现翻墙; 138 | 结果:因为在OUTPUT链内没有源ip信息,流量给SS后无法匹配到源ip,因此SS失去了acl(访问控制)功能。 139 | 140 | 方案3 (优先kp,其次SS,推荐); 141 | 为便于理解,以下iptables配置只展示流量经过顺序,不是iptables的创建顺序,PREROUTING内规则的创建实际上应该在最后 142 | 0 koolproxy默认开启ttl和mark功能 KoolProxy --ttl 160 --mark -d(固件不支持ttl的仅开启mark也行: KoolProxy --mark -d) 143 | 1 在NAT PREROUTING链内,KP在前,SS在后,KP开启--mark,流量将先走KP(80,443),实现过滤,过滤后每个主机会被打上不同的mark; 144 | #KP在前,所有tcp流量全部交给KOOLPROXY链 145 | -A PREROUTING -p tcp -j KOOLPROXY 146 | #SS在后,在kp开启的时候,只能拿到非80,443的流量,在kp关闭后,可以拿到所有端口的流量 147 | -A PREROUTING -p tcp -j SHADOWSOCKS 148 | 149 | 2 例如局域网内192.168.1.100主机的数据经过kp过滤后,将会被打上0xc0a80164的mark(192 = c0, 168 = a8, 1 = 01, 100 = 64 ); 150 | #创建KOOLPROXY链,用于白名单和访问控制 151 | -N KOOLPROXY 152 | #创建KOOLPROXY_HTTP链,用于过滤http流量 153 | -N KOOLPROXY_HTTP 154 | #创建KOOLPROXY_HTTPS链,用于过滤https流量 155 | -N KOOLPROXY_HTTPS 156 | #局域网和保留地址不走kp 157 | -A KOOLPROXY -m set --match-set white_kp_list dst -j RETURN 158 | #主机192.168.1.100需要https过滤 159 | -A KOOLPROXY -s 192.168.1.100/32 -p tcp -g KOOLPROXY_HTTPS 160 | #其它主机过滤http流量 161 | -A KOOLPROXY -p tcp -j KOOLPROXY_HTTP 162 | 163 | 3 为了SS能拿到数据,在NAT OUTPUT链中,使用match ttl匹配,在OUTPUT链内将流量全部给SHADOWSOCKS_EXT链; 164 | #创建SHADOWSOCKS_EXT链,用于开启kp情况下ss的访问控制实现 165 | -N SHADOWSOCKS_EXT 166 | #使用ttl匹配将KP过滤后的数据转到SHADOWSOCKS_EXT链(如果固件不支持ttl匹配,使用下面的命令) 167 | -A OUTPUT -p tcp -m ttl --ttl-eq 160 -j SHADOWSOCKS_EXT 168 | #如果固件不支持ttl match,可以用mark匹配ip地址的前三位(用0xffffff00作为掩码的形式),来将KP过滤后的数据转到SHADOWSOCKS_EXT链 169 | # echo 192.168.1 | awk -F "." '{printf ("0x%02x", $1)} {printf ("%02x", $2)} {printf ("%02x", $3)} {printf ("00/0xffffff00\n")}' = 0xc0a80100/0xffffff00 170 | -A OUTPUT -p tcp -m mark --mark 0xc0a80100/0xffffff00 -j SHADOWSOCKS_EXT 171 | 172 | 4 如果开启了acl,比如需要192.168.1.75不走SS(全端口),192.168.1.246走gfwlist模式(80,443端口),192.168.1.214走大陆白名单模式(22,80,443端口),剩余主机全部走大陆白名单模式(全端口): 173 | #主机192.168.1.75(0xc0a8014b),流量经过KP过滤后并打上mark后,通过OUTPUT链进入SHADOWSOCKS_EXT链,而未能翻墙(RETURN) 174 | -A SHADOWSOCKS_EXT -p tcp -m mark --mark 0xc0a8014b -j RETURN 175 | #主机192.168.1.246(0xc0a801f6),流量经过KP过滤后并打上mark后,通过OUTPUT链进入SHADOWSOCKS_EXT链,在此流量被导向了SHADOWSOCKS_GFW链,实现gfwlist模式翻墙(80,443端口) 176 | -A SHADOWSOCKS_EXT -p tcp -m multiport --dports 80,443 -m mark --mark 0xc0a801f6 -g SHADOWSOCKS_GFW 177 | #主机192.168.1.214(0xc0a801f6),流量经过KP过滤后并打上mark后,通过OUTPUT链进入SHADOWSOCKS_EXT链,在此流量被导向了SHADOWSOCKS_CHN链,实现大陆白名单模式翻墙(22,80,443端口) 178 | -A SHADOWSOCKS_EXT -p tcp -m multiport --dports 22,,80,443 -m mark --mark 0xc0a801d6 -g SHADOWSOCKS_CHN 179 | #剩余的主机,流量经过KP过滤后并打上mark后,通过OUTPUT链进入SHADOWSOCKS_EXT链,在此流量被导向了SHADOWSOCKS_CHN链,实现大陆白名单模式翻墙(全端口) 180 | -A SHADOWSOCKS_EXT -p tcp -j SHADOWSOCKS_CHN 181 | 182 | 情形: 183 | 1 当SS开启,kp未开启:所有流量走ss PREROUTING过,经过分流后,国内的流量在经过OUTPUT的时候,因为KP没开,数据不会匹配到ttl值(或者没匹配到mark值),所以不会过滤广告,翻墙正常 184 | 2 当KP开启,SS未开启,所有流量走kp PREROUTING过,广告过滤正常 185 | 3 当SS开启,翻墙和acl工作正常的时候,开启KP:KP在PREROUTING内插入到SS前面,会先得到流量,广告过滤正常 186 | 4 当KP开启,过滤广告正常的时候,开启SS:SS从原来的从PREROUTING拿流量变成从OUTPUT内拿流量,翻墙和acl会同样正常 187 | 5 当KP和SS都开启,此时关闭SS,kp过滤广告正常 188 | 6 当KP和SS都开启,此时关闭KP,ss翻墙和acl正常 189 | 190 | 总结: 191 | 使用 ttl + mark (或者纯mark)的方式,可以实现原先很难实现的过滤经过SS流量的广告 192 | 主要的改动在于给SS预置好OUTPUT和SHADOWSOCKS_EXT规则链,当kp启用时,它们就会工作,kp关闭时,不会影响正常数据 193 | 次要的改动就是给koolproxy默认开启ttl + mark(或者纯mark)功能 194 | ================================================================================================ 195 | -------------------------------------------------------------------------------- /koolproxyupdate.sh: -------------------------------------------------------------------------------- 1 | #wget 'https://kprule.com/kp.dat' -O files/usr/share/koolproxy/data/rules/kp.dat 2 | #wget 'https://kprule.com/koolproxy.txt' -O files/usr/share/koolproxy/data/rules/koolproxy.txt 3 | #wget 'https://kprule.com/daily.txt' -O files/usr/share/koolproxy/data/rules/daily.txt 4 | #wget 'https://kprule.com/user.txt' -O files/usr/share/koolproxy/data/user.txt 5 | #wget 'https://koolproxy.com/downloads/arm' -O files/bin/arm 6 | #wget 'https://koolproxy.com/downloads/i386' -O files/bin/i386 7 | #wget 'https://koolproxy.com/downloads/mips' -O files/bin/mips 8 | #wget 'https://koolproxy.com/downloads/mipsel' -O files/bin/mipsel 9 | #wget 'https://koolproxy.com/downloads/x86_64' -O files/bin/x86_64 10 | #chmod +x files/bin/* 11 | 12 | wget https://easylist-downloads.adblockplus.org/easylistchina+easylist.txt -O- | grep ^\|\|[^\*]*\^$ | sed -e 's:||:address\=\/:' -e 's:\^:/0\.0\.0\.0:' > files/usr/share/koolproxy/dnsmasq.adblock 13 | sed -i '/youku/d' files/usr/share/koolproxy/dnsmasq.adblock 14 | sed -i '/[1-9]\{1,3\}\.[1-9]\{1,3\}\.[1-9]\{1,3\}\.[1-9]\{1,3\}/d' files/usr/share/koolproxy/dnsmasq.adblock 15 | --------------------------------------------------------------------------------