├── .github └── ISSUE_TEMPLATE │ ├── --------.md │ └── -----.md ├── 20190328233849.jpg ├── 20190328233937.jpg ├── 20190407215443.jpg ├── Changelog.txt ├── KoolProxyR_install.sh ├── KoolProxyR_my_rule_diy.sh ├── README.md ├── backup.sh ├── build.sh ├── history ├── 2.2.0 │ └── koolproxyR.tar.gz ├── 2.2.1 │ └── koolproxyR.tar.gz ├── 2.2.2 │ └── koolproxyR.tar.gz ├── 2.2.3 │ └── koolproxyR.tar.gz └── version ├── koolproxyR.tar.gz ├── koolproxyR ├── init.d │ └── S93koolproxyR.sh ├── install.sh ├── koolproxyR │ ├── data │ │ ├── gen_ca.sh │ │ ├── koolproxyR_ipset.conf │ │ ├── openssl.cnf │ │ ├── rules │ │ │ ├── easylistchina.txt │ │ │ ├── easylistchina.txt.md5 │ │ │ ├── fanboy-annoyance.txt │ │ │ ├── fanboy-annoyance.txt.md5 │ │ │ ├── kp.dat │ │ │ ├── kp.dat.md5 │ │ │ ├── user.txt │ │ │ ├── user.txt.md5 │ │ │ ├── yhosts.txt │ │ │ └── yhosts.txt.md5 │ │ └── source.list │ ├── koolproxy │ └── kpr_config.sh ├── scripts │ ├── KoolProxyR_cert.sh │ ├── KoolProxyR_check_chain.sh │ ├── KoolProxyR_config.sh │ ├── KoolProxyR_debug.sh │ ├── KoolProxyR_getarp.sh │ ├── KoolProxyR_rule_update.sh │ ├── KoolProxyR_rules_status.sh │ ├── KoolProxyR_status.sh │ └── KoolProxyR_update_now.sh ├── uninstall.sh ├── variable │ ├── haveged.ipk │ └── libhavege.ipk └── webs │ ├── Module_koolproxyR.asp │ └── res │ ├── icon-koolproxyR-bg.png │ ├── icon-koolproxyR.png │ └── icon_koolproxyR-v.png ├── kpr_tar_install.sh ├── ks_tar_install.sh ├── md5.txt ├── otabuild.sh └── version /.github/ISSUE_TEMPLATE/--------.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 意见,建议及其他 3 | about: 请描述你的想法。 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | 11 | -------------------------------------------------------------------------------- /.github/ISSUE_TEMPLATE/-----.md: -------------------------------------------------------------------------------- 1 | --- 2 | name: 问题 反馈 3 | about: 描述你在使用中遇到的各种问题。 4 | title: '' 5 | labels: '' 6 | assignees: '' 7 | 8 | --- 9 | 10 | **你所使用的设备:例如 电脑 MAC IPHONE 小米MIX IPHONE8** 11 | 我正在使用: 12 | 13 | **是否启用http/https模式** 14 | https是否启用: 15 | 16 | 17 | **证书是否安装正确** 18 | PC安装到【受信任的根证书发布机构】. 19 | 安卓7.0以上将.0根证书复制到【/system/etc/security/cacerts】【/system/etc/security/cacerts_google】. 20 | iphone 在设置---通用----关于手机里面信任证书. 21 | MAC 在 【钥匙串访问】中信任。 22 | 23 | **是否采取下列措施** 24 | 1,重启LEDE 25 | 2,重新安装证书 26 | 27 | **如果重复以上步骤仍然有问题:** 28 | 请打开 kpr --附加设置--调试模式-AD ,重复出现问题的地方操作。将日志文件全选粘贴到下方。 29 | -------------------------------------------------------------------------------- /20190328233849.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/20190328233849.jpg -------------------------------------------------------------------------------- /20190328233937.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/20190328233937.jpg -------------------------------------------------------------------------------- /20190407215443.jpg: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/20190407215443.jpg -------------------------------------------------------------------------------- /Changelog.txt: -------------------------------------------------------------------------------- 1 | 感谢TG 四爷对日志进行倒序。 2 | 3 | --- 4 | 2.2.3 5 | 2019年7月30日19:48:53 6 | 更新:全新kpr图标 ---- TG Joe 乔爷 and github evolutionjay 7 | 修复:卸载残留定时任务 ----TG 宏 谢 8 | 更新:移动 haveged 到variable文件夹 9 | 说明:由于优酷,腾讯视频,爱奇艺,等主流平台开始大规模实施http2,现阶段的的kpr不支持http2过滤,已经无法完全移除广告了。 10 | --- 11 | 2.2.2 (重大更新) 12 | 2019年7月13日22:14:45 13 | 更新:更新了视频规则更新的逻辑。 - ---TG SD gzsdbb 14 | 更新:大量修正了消耗CPU的规则。降低CPU负担。 15 | 更新:问题反馈移交到问卷星 16 | --- 17 | 2.2.1 18 | 修复:规则调试模式遗留下来的,多个错误。 19 | 更新:kpr将自主更新视频规则。 20 | 更新:开放视频规则更新,及界面微调。 21 | 更新:移除kpr_video_list.txt 22 | 更新:对yhosts规则的三大视频平台进行放行【全部移交给视频规则处理。】。 23 | 更新:部分日志,界面的说明。更加符合阅读规范。 24 | 25 | --- 26 | 2.2.0 27 | 更新:规则调试模式更新,此时将一起覆盖/tmp下的临时文件。避免保存时又恢复到默认。同时更新自动关闭规则调试模式。 28 | 新增:规则调试模式更新,可以同时启用多个调试,比如启用调试模式——info之后,再启动本模式可以同时生效。 29 | 更新:更新自动等待时间1秒---9999秒(3小时)也就是更新时间从晚上3点到早上6点之间,此举可以缓解用户增长带来的服务器压力,并避免以后多次调整。 30 | 调整:将调试模式-WARNING模式 调整至全调试模式。(将有用的留下,没用的去掉) 31 | 32 | --- 33 | 2.1.9 34 | 2019年6月29日11:52:31 35 | 更新:更新调试模式,更改全调试模式到规则调试模式,此模式下使用【WinSCP】等文件管理软件,更改/koolshare/koolproxyR/data/rules/user.txt将即时生效,而不再等待重启Kpr,重启SS等系列操作。 36 | 修复:修复更新规则无法判断失败的Bug. 37 | 更新:新增自动更新规则随机等待1秒---999秒,避免同时进行大量请求导致更新失败。 38 | 修复:修复自定义shell脚本KoolProxyR_my_rule_diy.sh 导致日志不正常的问题,已经使用自定义shell的同学,请重新到项目首页下载,并将命令复制过去。 39 | 更新:编译过程不再依靠软件中心【酷软】。 40 | 41 | --- 42 | 2.1.8 43 | 修复:yhosts 对三大购物平台放行不彻底的问题(京东,淘宝,天猫) ---TG 说好的女装呢 女装大佬 44 | 新增:debug-info 提示 如果您需要查看https流量,请在【访问控制】中指定【HTTP/HTTPS双过滤模式】 --- TG Joe asita 45 | 新增:在【玩不转?】中新增一个新手的标准流程。 46 | 47 | --- 48 | 2.1.7 49 | 2019年5月31日22:58:43 50 | 新增:隐藏功能,自定义shell(面向有shell基础的用户)请从github项目主页上下载KoolProxyR_my_rule_diy.sh 51 | 修复:全端口无法过滤广告的问题,此BUG由2.1.6发生 ----TG 爱情骷髅 52 | 优化:yhosts,优化源,恢复版本号显示. 53 | 新增:主规则下载的判断逻辑,当一个规则下载失败的时候,整个规则处于失败状态. ----TG Kt 54 | 优化:升级/重装KPR 自定义规则判断逻辑,避免自定义规则丢失. 55 | 新增:文件树说明,在项目主页。 56 | 57 | --- 58 | 2.1.6 59 | 2019年5月24日14:31:08 60 | 修复:修复昨天调整if判断遗留下来的规则无法更新的Bug ----TG GKC 61 | 更新:更新规则,在线更新kpr将统一采用ipv4,避免ipv6响应过慢的问题。----TG Crusoe Jay 62 | 新增:日志一键拷贝按钮。 感谢 油炸包子的指点。 此功能已放弃 还是使用Ctrl+A Ctrl+C 吧 63 | 新增:对非KPR订阅用户新增规则md5文件。(部分人想用,但是没有软路由,订阅又没有Md5,我就顺手为之吧。不过这个可不是一直更新,更新Kpr才得以更新。) 64 | 65 | 对大家致歉:本人可能太过追求完美,不断收到反馈,然后修复Bug新增完善功能。导致版本更新迭代过多。 66 | 自身水平不够过硬,有时候修复调整,又弄出一个新的bug。 67 | 此后kpr更新时间调整为(每月的24-月底)之间,其他时间只收集修复Bug,并不对推送更新。紧急bug除外。 68 | 希望大家都有一个愉快的体验。 69 | 此次更新之后,本月不再更新,非重大bug,下月再见。 70 | 71 | --- 72 | 2.1.5 73 | 更新:更新kpr自检查守护。当Kpr打开而kp没有运行时,自动重启Kpr.(你可以理解为Kpr守护...) 74 | 新增:在线更新/在线安装/更新规则--自动重试5次。 75 | 修复:部分判断不稳定if用法问题 -----TG 233boy 76 | 调整:Debug提示优化,现在能更快关闭节约时间了。 77 | 78 | --- 79 | 2.1.4 80 | 修复:KPR重启SS,KPR没有日志的问题。 -------- TG 切克闹 不爱吃辣椒 81 | 修复:腾讯开发者平台无法跨域,导致没有更新提示框的问题,现在提示框连接重新回到github 82 | 修复:部分时候无法停止kpr导致更新/离线安装/在线安装无法进入下一步的问题。 -- TG 切克闹 不爱吃辣椒 83 | 更新:使用卸载命令将反DBUS注册。脚本来自 ---TG sadog 反馈来自 -- TG 切克闹 不爱吃辣椒 84 | 更新:在线更新kpr也采用start-stop-daemon模式,同时在线安装也将dbus反注册不在留下空白图标。(PS离线安装无解) 85 | 86 | --- 87 | 2.1.3 88 | 修复:修复只选择fanboy全规则保存成功fanboy并没有生效的问题。 -----------TG Joe asita 89 | 更新:将主要网络服务,迁移致腾讯云开发者平台,代码还是托管于github,腾讯云提供下载,更新。 90 | 91 | --- 92 | 2.1.2 93 | 替换:补充规则替换到vokins/yhosts,现在更加适合国内,规则更少. 94 | 新增:开机启动检查haveged开机变慢补丁是否安装。 -------------TG jimmy w 95 | 修复:修复ipset列表问题wan口部分大佬使用旁路没有wan口报错的问题 -----------TG Joe asita 96 | 97 | --- 98 | 2.1.1 99 | 修复:修复ipset列表问题wan口大小写问题,现在不管你是大写小写,混合写。都能正确识别了 -------------TG jjww jj 100 | 修复:修复更新规规则选框问题。 101 | 优化:在运行状态栏增加 建议使用chrome内核浏览器字样。 102 | 优化:规则状态中,新增kpr未开启提示。 103 | 优化:优化部分排版 104 | 105 | --- 106 | 2.0.10 107 | 108 | 新增隐藏功能,自定义生成证书。 109 | 110 | 在SSH中执行 111 | dbus set koolproxy_diy_ca=xxxxyyyzzz xxxxyyyzzz 换成你想要的任何东西,不能特殊符号不能中文,可以 空格 . -_ ()' 只能英语状态输入 112 | cd /koolshare/koolproxyR/data && sh gen_ca.sh 113 | 使用隐藏功能需要重新安装证书。此功能没有其他意义只能装逼。。。。 114 | 115 | 修复万古遗留离线安装问题,理论上现在可以直接离线安装了。 TG sadog (k站s大) 116 | 更新:现在提交问题可以选择模板了,在github。 117 | 118 | --- 119 | 2.0.9 120 | 重新打包2.0.8 因为部分规则下载掉了。 121 | 122 | --- 123 | 2.0.8 124 | 2019年5月12日11:06:27 125 | 修复单网口机子ipset列表问题-------github ericwang2006 126 | 更新 KoolProxyR_check_chain 控制脚本地址。 127 | 128 | --- 129 | 2.0.7 130 | 2019年5月11日16:37:15 131 | 修复无法获取特殊IP的问题。(拨号IP和DHCP的IP) 132 | 界面微调 133 | 134 | --- 135 | 2.0.6 136 | 2019年5月9日23:23:53 137 | 页面布局优化-------------TG Leo Jo 138 | 新增更新MD5校验,MD5不一致不在安装。解决部分大佬,升级升级着打不开kpr管理页面了。 139 | 140 | --- 141 | 2.0.5 142 | 对从未安装过kpr的用户自定义规则文件进行判断-------TG 规避风险 143 | 2019年5月9日01:58:01 144 | 开放,你反正都玩不来系列,debug调试抓包。更加方便快捷的抓包,拍错,查找误杀。编写规则。 145 | 146 | --- 147 | 2019年5月8日09:34:37 148 | 2.0.4 149 | 增加多重判断,一定要安装上haveged解决与v2ray和ss 冲突导致开机变慢的问题。 -------TG 规避风险 150 | 151 | --- 152 | 2019年5月7日23:20:48 153 | 2.0.3 154 | 尝试解决tvb打不开的问题 155 | 修复fanboy 没有放行apple.com 及apple验证服务器,导致ios 商店无法打开的问题 -------- TG 穷人 156 | 暂时关闭兼容koolclash,因为作者没有兼容适配,会导致koolclash失效。 ------- TG plat0 157 | 158 | --- 159 | 2019年5月7日11:32:54 160 | 2.0.2 161 | 修正阿里CDN的图片放行。(比如优酷 淘宝打开无图片) --------- TG topsite 162 | 163 | --- 164 | 2019年5月6日23:55:30 165 | 2.0.1 166 | 修复一个因为放行$domain,导致主流网站打不开的问题。 167 | 168 | --- 169 | 900.8.42 170 | 2019年5月6日19:32:20 171 | 优化haveged的安装,对已安装用户不再安装并且改为离线安装。(解决开机过慢的程序)。 172 | 对https的$domain(指定域名)后缀删除。 ----------TG houzi- 【kp规则维护者】 173 | 更新kp.dat 174 | 修复版本号过高的Bug.此版本更正为2.0.0 175 | 176 | --- 177 | 900.8.41 178 | 179 | 取消非通配符的白名单放行。(白名单还是太多*的规则了。这样去广告就没效果了) 180 | 部分ui 优化 --------- Leo Jo 181 | 对所有Kpr用户安装haveged,解决与v2ray,ss冲突开机过慢的问题。 ---------TG 小黄渤丶 182 | 对apple的验证服务器mzstatic.com进行放行。 183 | 新增提交kpr规则教程。 184 | 185 | --- 186 | 900.8.40 187 | 此版本已被撤回 188 | 189 | --- 190 | 900.8.39 191 | 替换移动设备规则为DNS规则。(因为简单规则在Kpr上工作良好,作为其他规则的补充规则而存在。) 192 | 对不是通配符的白名单进行放行。(此举可以解决,部分网站被误杀的情况。) 193 | 解决kpr 与v2ray同时安装有冲突导致开机时间边长 反馈者 : TG dantes 感谢 TG Robin Xiao 参与测试 194 | 195 | --- 196 | 900.8.38 197 | 临时禁用kp.dat更新,避免因为更新而导致视频规则失效。 198 | 199 | --- 200 | 900.8.37 201 | 2019年4月28日21:07:43 202 | 对microsoft.com进行放行(解决Windows无法更新的问题)反馈者:TG Rodman Wang 203 | 204 | --- 205 | 900.8.36 (重大更新) 206 | 2019年4月28日17:23:28 207 | 全新KPR全新上路。KPR越战越勇,此次更新修正了部分文字界面说明。 208 | 209 | --- 210 | 2019年4月28日03:43:24 211 | 900.8.35 (重大更新) 212 | 取消所有的放行http与https (因为今天才明白@@ 和@@@@的意义是域名完全放行。这就导致了不能随便放行规则,不然满屏广告!) 213 | 214 | --- 215 | 2019年4月27日23:34:07 216 | 900.8.34 (重大更新) 217 | 修正https白名单放行问题。反馈者:TG xiao bao 【kp二进制文件作者】 218 | 丢人呀,眼睛花了十几个版本都没发现!!!白名单一直有问题https的 219 | 220 | 清空以前所有的低版本。毕竟很多bug过多,如果需要以前的低版本,请跳转到次更新以前 221 | 222 | --- 223 | 2019年4月27日21:03:54 224 | 900.8.33 225 | 给 netflix.com 放行 反馈者:TG 麋麋麋麋𐂂 226 | 给 tvbs.com 放行 反馈者:TG 穷人 227 | 228 | --- 229 | 2019年4月26日17:18:50 230 | 900.8.32 231 | 修复 勾选 移动设备 视频规则 fanboy 状态不正确 反馈者:TG PayneChen 232 | 给京东 天猫 淘宝 放行 反馈者:TG 锋 锋 233 | 234 | --- 235 | 2019年4月21日03:30:43 236 | 900.8.31 237 | 修正自动更新规则的bug 反馈者 tg:🔴凸(`0´)凸 238 | 修复更新规则出错的问题。 239 | 240 | --- 241 | 900.8.30 242 | 2019年4月21日00:30:05 243 | 新增安装时删除KP的二进制和核心配置文件。保留其他所有配置,避免小白两个都安装导致一些莫名其妙的问题。 反馈者 TG: woshi yigefreedom 244 | 修改规则更新逻辑,避免只下载一部分,或者下载一个空文件。 反馈者 tg:🔴凸(`0´)凸 245 | 修正几处大小写。 246 | 247 | --- 248 | 900.8.29 249 | 删除可能导致Kpr变慢的规则。 250 | 251 | --- 252 | 900.8.28 253 | 2019年4月20日12:17:27 254 | 删除坑逼的https//* 规则,这种规则必然导致KPR的CPU占用飙升。 255 | 修正移动设备规则加载情况。 256 | 257 | --- 258 | 900.8.27 259 | 2019年4月18日00:16:44 260 | 上架fanboy全功能版本,开启此项将取代原来的fanboy规则。低功耗CPU切勿开启。不然卡死你。 反馈者TG:D YY 261 | 修复更新规则不能重载页面的问题。 262 | 2019年4月18日11:30:38 263 | 兼容koolclash 。虽然已经兼容,但是需要最新版本的koolclash! 264 | 2019年4月19日08:41:22 265 | 新增规则自动更新 每天晚上3点 266 | 对移动设备规则的Facebook apple instagram github 放行 反馈者 云淡风清 267 | 新的插件图标, 268 | 269 | --- 270 | 900.8.26 271 | 2019年4月17日22:13:18 272 | 修改下载0.根证书的格式从zip变成tar.gz(部分低版本用户没有zip.比如lede v2.14) 273 | 274 | --- 275 | 900.8.25 276 | 2019年4月17日18:28:35 277 | 将qq.com的所有域名放行。所有QQ微信相关都恢复正常,腾讯视频并没有放行!(加密视频规则中有2条屏蔽微信视频的规则,如果出现微信文章打不开请暂时用流量。或者关闭加密视频规则。) 278 | 新增 开发者带你玩转KoolProxyR页面 279 | 280 | --- 281 | 900.8.24 282 | 2019年4月15日01:21:13 283 | 给qq.com的html规则放行。(only https) 主要是QQ这些规则上的广告少,而且容易误伤。 284 | 修正一个错误,将wget 写成了wegt 285 | 286 | --- 287 | 900.8.23 288 | 2019年4月14日19:22:17 289 | 给知乎放行,Https修改后知乎app无法打开 290 | 291 | --- 292 | 900.8.22 293 | 修复证书脚本格式编码问题 294 | 295 | --- 296 | 900.8.21 297 | 部分脚本细节优化 298 | 上架新的规则 KPR主规则 此规则由EasylistChina和CJX sAnnoyance 与KPR自定义规则组成,是KPR的首选规则.。 299 | 下架 ChinaList2.0规则,被更新更快的 KPR主规则取代 300 | 上架移动设备规则 此规则由adguard官方人员编写,主要用于去除移动设备端的广告。 301 | 逻辑优化,当没有使用KP加密视频规则的时候,自动使用自带KPR视频规则的规则。 302 | 优化,当规则更新过慢时,不再超时。跳转。 303 | 插件顶部新增更新日志连接。 304 | 305 | --- 306 | 900.8.20 307 | 修复自定义规则没有加载的问题,900.8.15的时候遗留的Bug 308 | 优化规则更新日志提示。升级日志提示。 309 | 修正规则更新后,规则丢失的Bug 310 | 修复规则全选不显示完整的bug 311 | 再度恢复视频加密规则kp.dat 312 | 移除经常导致的css崩溃的乘风规则。由视频规则取代。 313 | 314 | --- 315 | 900.8.19 316 | 317 | 2019年4月12日01:25:16 318 | 修正facebook放行的一个问题。 319 | 给 instagram.com 放行 320 | 321 | --- 322 | 900.8.18 323 | 更新fanboy 地址链接 324 | 完善https与http规则 325 | 优化在线更新规则,现在可以显示版本号了。 326 | 新增在线贡献规则按钮,欢迎大佬来贡献规则。 327 | 328 | --- 329 | 900.8.17 330 | 2019年4月10日22:20:04 331 | 真心一天更新几次了。 332 | 更新 加载自定义规则 (900.8.15的时候移除了,一直没加回来) 333 | 更新 更新规则功能,的https逻辑优化。 334 | 给github放行。虽然github上的广告越来越多了。但是难得的良心。还有就是版本号也放在github 会出事的 335 | 336 | --- 337 | 900.8.16 338 | 339 | 修复上个版本遗留的规则加载问题。规则都没加载。。。卧槽 340 | 修正安装前不能先停止的Bug。 341 | 其他规则对三大视频网站优酷 爱奇艺 腾讯视频 放行 342 | 新增将规则单独剔出来,作为https规则文件(包含白名单,现在可以脱离加密视频文件去视频广告了) 343 | 移除kp.dat 加密视频规则文件,VIP解析不再可用 344 | 345 | ---- 346 | 900.8.15 347 | 348 | 修复黑名单软连接问题。 349 | 移除了 ABP规则 绿坝规则 视频规则 350 | 上架ChinaList2.0。 351 | 可使用 ctrl+↑ 唤出VIP解析(此项功能未变) 352 | 353 | --- 354 | 900.8.14 355 | 2019年4月6日02:03:43 356 | 更新弹出式检查更新提醒(现在更新更有B格了) 357 | 2019年4月7日21:01:20 358 | 修改导致KP崩溃规则替换逻辑。减少误伤。 359 | 修改规则管理界面UI,添加详细说明。 360 | 361 | --- 362 | 2019年4月5日11:07:47 363 | 更新在线安装脚本,让在线安装更加直观。 364 | 365 | --- 366 | 900.8.13 367 | 368 | 修正部分UI,主要是增强说明。让大家更明白。 369 | 新增.0根证书的导出. 在证书管理中 370 | 371 | --- 372 | 900.8.12 373 | 374 | 在线更新插件按钮监测更机制还原, 375 | 修改规则源文件地址,避免因为没有跳转产生失败. 376 | 更正下SS重启文件的路径.及log文件地址 377 | 更新了界面的部分说明,例如TG群,和HTTPS去广告教程。 378 | 379 | --- 380 | 900.8.11 381 | 修正一处界面,让是否是重启的SS V2RAY GAME 更加清楚。 382 | 383 | --- 384 | 900.8.10 385 | 我也没想到还要再更新一次! 386 | 本次更新新增了重启SS,V2RAY,GAME!以解决到底是该先开代理还是先开KPR的情况,现在你都可以更方便的开关了 387 | 388 | --- 389 | 2019年4月1日02:44:32 390 | 900.8.9 391 | 修复导入证书无法启动的问题 392 | 伪装成koolproxy,来启动V2RAY!解决V2RAY导致卡顿问题 393 | 变更在线新版本检测方式,为提交后才能检测更新!(这样可以不必要每次都下载文件来看看是否有更新,当你在使用的时候才会网页的时候或者重启kpr的时候,版本号才刷新。) 394 | 395 | --- 396 | 2019年3月31日02:42:39 397 | 900.8.8 398 | 提交首个正式版! 399 | 修复规则导致KP崩溃的问题 400 | UI细节优化(说明类) 401 | 上线所有的规则 402 | 403 | --- 404 | 2019年3月28日23:21:20 405 | 新增更新插件按钮,新增在线安装,修正部分UI和说明。 406 | 移除ABP规则 (因为不兼容 407 | 408 | --- 409 | 2019年3月26日14:04:05 410 | 新增自动更新规则,手动更新,恢复乘风规则(卡饭),修改部分界面说明。 411 | 412 | 2019年3月25日14:02:50 413 | 第一版本 900.8.5 更新上线,修正fanboy订阅规则并更名为koolproxyR 414 | -------------------------------------------------------------------------------- /KoolProxyR_install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export soft_name=koolproxyR.tar.gz 3 | export KSROOT=/koolshare 4 | alias echo_date='echo 【$(date +%Y年%m月%d日\ %X)】:' 5 | source $KSROOT/scripts/base.sh 6 | eval `dbus export soft` 7 | TARGET_DIR=/tmp/upload 8 | 9 | clean(){ 10 | rm -rf /tmp/$name >/dev/null 2>&1 11 | rm -rf /tmp/$MODULE_NAME >/dev/null 2>&1 12 | rm -rf /tmp/$soft_name >/dev/null 2>&1 13 | find /tmp -name "*.tar.gz"|xargs rm -rf >/dev/null 2>&1 14 | } 15 | 16 | url_version="https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/version" 17 | wget --no-check-certificate --timeout=8 -qO - $url_version > /tmp/koolproxyR_version 18 | koolproxyR_installing_md5=`cat /tmp/koolproxyR_version | sed -n '2p'` 19 | rm -rf /tmp/version 20 | echo_date ============================================== 21 | echo_date koolproxyR 开始下载最新版KPR。 22 | echo_date =============================================== 23 | for i in {1..5}; do 24 | echo_date1 这是第 $i 次下载共 5 次下载koolproxyR 25 | wget -4 -O /tmp/upload/koolproxyR.tar.gz https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/koolproxyR.tar.gz 26 | koolproxyR_download_md5=`md5sum /tmp/upload/koolproxyR.tar.gz|awk '{print $1}'` 27 | echo_date 远程版本md5:$koolproxyR_installing_md5 28 | echo_date 您下载版本md5:$koolproxyR_download_md5 29 | if [[ "$koolproxyR_installing_md5" == "$koolproxyR_download_md5" ]]; then 30 | echo_date MD5校验通过,开始安装!请等待.... 31 | break 32 | fi 33 | if [[ $i == 5 ]]; then 34 | echo_date1 一个悲伤的故事,MD5多次校验不通过,勇士请重新来过吧! 35 | rm -rf /tmp/upload/koolproxyR.tar.gz 36 | exit 37 | fi 38 | done 39 | echo_date ============================================== 40 | echo_date koolproxyR 开始执行安装程序。 41 | 42 | name=`echo "$soft_name"|sed 's/.tar.gz//g'|awk -F "_" '{print $1}'|awk -F "-" '{print $1}'` 43 | INSTALL_SUFFIX=_install 44 | VER_SUFFIX=_version 45 | NAME_SUFFIX=_name 46 | cd /tmp 47 | echo_date ====================== step 1 =========================== 48 | echo_date 开启软件在线安装! 49 | sleep 1 50 | if [ -f $TARGET_DIR/$soft_name ]; then 51 | mv /tmp/upload/$soft_name /tmp 52 | sleep 1 53 | echo_date 尝试解压在线安装包在线安装包 54 | sleep 1 55 | tar -zxvf $soft_name >/dev/null 2>&1 56 | echo_date 解压完成! 57 | sleep 1 58 | cd /tmp 59 | 60 | if [ -f /tmp/$name/install.sh ]; then 61 | INSTALL_SCRIPT=/tmp/$name/install.sh 62 | else 63 | INSTALL_SCRIPT_NU=`find /tmp -name "install.sh"|wc -l` 2>/dev/null 64 | [["$INSTALL_SCRIPT_NU" == "1" ]] && INSTALL_SCRIPT=`find /tmp -name "install.sh"` || INSTALL_SCRIPT="" 65 | fi 66 | 67 | if [ -n "$INSTALL_SCRIPT" -a -f "$INSTALL_SCRIPT" ]; then 68 | SCRIPT_AB_DIR=`dirname $INSTALL_SCRIPT` 69 | MODULE_NAME=${SCRIPT_AB_DIR##*/} 70 | echo_date 准备安装$MODULE_NAME插件! 71 | echo_date 找到安装脚本! 72 | chmod +x $INSTALL_SCRIPT >/dev/null 2>&1 73 | echo_date 运行安装脚本... 74 | echo_date ====================== step 2 =========================== 75 | sleep 1 76 | start-stop-daemon -S -q -x $INSTALL_SCRIPT 2>&1 77 | # sh /tmp/$name/install.sh 2>&1 78 | if [[ "$?" != "0" ]]; then 79 | echo_date 因为$MODULE_NAME插件安装失败!退出在线安装! 80 | clean 81 | # 取消dbus注册 TG sadog 82 | if [ -f "$KSROOT/koolproxyR/kpr_config.sh" ]; then 83 | echo_date $MODULE_NAME更新失败!请再试一次。 84 | else 85 | cd /tmp 86 | dbus list softcenter_module_|grep koolproxyR|cut -d "=" -f1|sed 's/^/dbus remove /g' >> clean.sh 87 | chmod 777 clean.sh 88 | sh ./clean.sh > /dev/null 2>&1 89 | rm clean.sh 90 | # 反注册结束 91 | fi 92 | echo_date jobdown 93 | exit 94 | fi 95 | echo_date ====================== step 3 =========================== 96 | dbus set "softcenter_module_$MODULE_NAME$NAME_SUFFIX=$MODULE_NAME" 97 | dbus set "softcenter_module_$MODULE_NAME$INSTALL_SUFFIX=1" 98 | #dbus set "softcenter_module_$name$VER_SUFFIX=$soft_install_version" 99 | if [ -n "$soft_install_version" ]; then 100 | dbus set "softcenter_module_$MODULE_NAME$VER_SUFFIX=$soft_install_version" 101 | echo_date "从插件文件名中获取到了版本号:$soft_install_version" 102 | else 103 | #已经在插件安装中设置了 104 | if [ -z "`dbus get softcenter_module_$MODULE_NAME$VER_SUFFIX`" ]; then 105 | dbus set "softcenter_module_$MODULE_NAME$VER_SUFFIX=0.1" 106 | echo_date "插件安装脚本里没有找到版本号,设置默认版本号为0.1" 107 | else 108 | echo_date "插件安装脚本已经设置了插件版本号为:`dbus get softcenter_module_$MODULE_NAME$VER_SUFFIX`" 109 | fi 110 | fi 111 | install_pid=`ps | grep -w install.sh | grep -v grep | awk '{print $1}'` 112 | i=120 113 | until [ -z "$install_pid" ] 114 | do 115 | install_pid=`ps | grep -w install.sh | grep -v grep | awk '{print $1}'` 116 | i=$(($i-1)) 117 | if [[ "$i" -lt 1 ]]; then 118 | echo_date "Could not load nat rules!" 119 | echo_date 安装似乎出了点问题,请手动重启路由器后重新尝试... 120 | echo_date 删除相关文件并退出... 121 | sleep 1 122 | clean 123 | dbus remove "softcenter_module_$MODULE_NAME$INSTALL_SUFFIX" 124 | echo_date jobdown 125 | exit 126 | fi 127 | sleep 1 128 | done 129 | echo_date 安装完成! 130 | sleep 1 131 | echo_date 一点点清理工作... 132 | sleep 1 133 | clean 134 | echo_date 完成!在线安装插件成功~ 135 | sleep 1 136 | else 137 | echo_date 没有找到安装脚本! 138 | echo_date 删除相关文件并退出... 139 | clean 140 | fi 141 | else 142 | echo_date 没有找到在线安装包! 143 | echo_date 删除相关文件并退出... 144 | clean 145 | fi 146 | sleep 1 147 | dbus remove soft_install_version 148 | dbus remove soft_name 149 | echo_date 150 | clean 151 | 152 | echo_date koolproxyR 已经安装/升级完成,请刷新网页试试 153 | echo_date =============================================== 154 | -------------------------------------------------------------------------------- /KoolProxyR_my_rule_diy.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export KSROOT=/koolshare 3 | source $KSROOT/scripts/base.sh 4 | eval `dbus export koolproxyR_` 5 | alias echo_date='echo $(date +%Y年%m月%d日\ %X):' 6 | 7 | mydiy(){ 8 | echo_date ======================================================================================================= 9 | echo_date 开始应用自定义修改,请等待... 10 | # 请在以下地区填入自定义shell命令,因为此功能面向高端用户,需要一定shell基础。切勿瞎折腾. 11 | # 可以修改N多东西,包括不限于规则....此DIY会在你每次保存时候应用 12 | # 请在其他地方保留备份. 13 | # 请采用utf-8格式LF格式编码 14 | # 你可以通过【系统】----【文件管理】上传删除文件 15 | # 如果出现问题,请使用如下命令删除文件 16 | # rm -rf /koolshare/scripts/KoolProxyR_my_rule_diy.sh 17 | # 运行命令 sh /koolshare/scripts/KoolProxyR_my_rule_diy.sh mydiy 18 | 19 | 20 | 21 | 22 | echo_date 自定义修改完成..... 23 | echo_date ======================================================================================================= 24 | } 25 | 26 | if [ -n "$1" ]; then 27 | mydiy "$1" >> /tmp/upload/kpr_log.txt 28 | http_response "$1" 29 | fi 30 | -------------------------------------------------------------------------------- /README.md: -------------------------------------------------------------------------------- 1 | # KoolShare LEDE koolproxyR 项目 2 | **Thanks To** 3 | - Koolshare 的各位大佬,包括不限于:xiaobao、sadog、houzi-、 Fw867 、....... 4 | - 晴天 、Leo Jo 对页面布局所做的贡献. 5 | - Sukka / 苏卡卡 对交互界面的指点. 6 | - 油炸包子 对页面调试的指点. 7 | - 233boy 对脚本代码的指点. 8 | - cjx 对easylistchina与cjx-annoyance规则的贡献. 9 | - fanboy 对fanboy规则的整理和完善. 10 | - vokins 对yhosts的整理和完善. 11 | - 感谢在更新日志里面提到的所有人. 12 | - Github 对代码进行托管. 13 | - Gitlab 对代码进行中转 14 | - 腾讯开发者平台 提供更新及文件下载. 15 | --- 16 | **KPR是一个开源活性高的项目,它不一定满足你的需求,但你可以让它变得更好** 17 | 18 | **欢迎大佬随时提交更新和问题** 19 | 20 | ## 为什么有这个项目! 21 | 22 | 官方其实是有项目的,但是我喜欢fanboy规则,在多方反馈无果的情况下,我当然自己动手丰衣足食了。这个项目允许大家提供好的规则。我们要以去广告为先。去掉所有的广告。谢谢! 23 | 24 | ## 怎么使用这个插件! (请先卸载koolproxy,互不兼容。) 25 | ### 最佳方法 26 | 在**SSH**中执行如下代码实现在线安装。(**请全部复制**) 27 | `wget -4 -O /tmp/KoolProxyR_install.sh https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/KoolProxyR_install.sh && chmod 777 /tmp/KoolProxyR_install.sh && sh /tmp/KoolProxyR_install.sh` 28 | 29 | 30 | ### 稳定方法 31 | 到F大没修复软件中心之前,或者我上架软件中心(其实根本没这个可能),你可以通过如下步骤进行使用本软件! 32 | 33 | [点我下载](https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/koolproxyR.tar.gz),通过软件中心的离线安装进行安装!**PS 请勿修改名字保持koolproxyR.tar.gz才能安装**,并且你可能需要执行下面的ssh代码. 34 | 35 | --- 36 | 如果你遇到** `离线安装` ** 无法安装,你还需要在SSH中执行如下步骤。(**请全部复制**) 37 | 38 | --- 39 | 40 | `wget -4 -O /koolshare/scripts/ks_tar_install.sh https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/ks_tar_install.sh && chmod 777 /koolshare/scripts/ks_tar_install.sh` 41 | 42 | --- 43 | 44 | 如果遇到其他问题,请提交问题反馈。能力有限不一定都能解决。 45 | 46 | 47 | ## 参考截图 48 | 49 | ![目前版本截图](https://github.com/user1121114685/koolproxyR/blob/master/20190328233937.jpg?raw=true "后续更新可能还会有更新!") 50 | ![目前版本截图](https://github.com/user1121114685/koolproxyR/blob/master/20190328233849.jpg?raw=true "后续更新可能还会有更新!") 51 | ![目前版本截图](https://github.com/user1121114685/koolproxyR/blob/master/20190407215443.jpg?raw=true "后续更新可能还会有更新!") 52 | 53 | ## 文件树简要说明 54 |
55 | 查看文件树更了解kpr 56 |
.
 57 | ├── 20190328233849.jpg      项目首页用图片
 58 | ├── 20190328233937.jpg      项目首页用图片
 59 | ├── 20190407215443.jpg      项目首页用图片
 60 | ├── backup.sh       软件中心调用的备份sh用于生成 history
 61 | ├── build.sh        编译kpr版本---需要配合软件中心。当然也可以剔除那部分配合.
 62 | ├── Changelog.txt       更新日志
 63 | ├── config.json.js      暂时无用
 64 | ├── history     历史版本
 65 | ├── koolproxyR      主程序文件夹
 66 | │   ├── variable/haveged.ipk  用于解决kpr与v2ray ss 冲突导致开机变慢的问题
 67 | │   ├── init.d
 68 | │   │   └── S93koolproxyR.sh        自启脚本
 69 | │   ├── install.sh      离线安装执行脚本
 70 | │   ├── koolproxyR      /koolshare 下的文件夹 也是软件名字
 71 | │   │   ├── data
 72 | │   │   │   ├── gen_ca.sh       生成证书的脚本
 73 | │   │   │   ├── koolproxyR_ipset.conf       黑名单控制文件
 74 | │   │   │   ├── openssl.cnf     生成证书用的openssl配置文件
 75 | │   │   │   ├── rules       规则
 76 | │   │   │   │   ├── easylistchina.txt       主规则
 77 | │   │   │   │   ├── easylistchina.txt.md5
 78 | │   │   │   │   ├── fanboy-annoyance.txt        fanboy普通规则
 79 | │   │   │   │   ├── fanboy-annoyance.txt.md5
 80 | │   │   │   │   ├── kp.dat         视频加密规则
 81 | │   │   │   │   ├── kp.dat.md5
 82 | │   │   │   │   ├── kpr_video_list.txt      备用视频规则(主规则加载,视频规则没有加载的情况下使用)
 83 | │   │   │   │   ├── kpr_video_list.txt.md5
 84 | │   │   │   │   ├── user.txt           自定义规则文件
 85 | │   │   │   │   ├── user.txt.md5
 86 | │   │   │   │   ├── yhosts.txt      补充规则文件
 87 | │   │   │   │   └── yhosts.txt.md5
 88 | │   │   │   └── source.list     规则控制文件,此文件控制koolproxy加载那些规则。
 89 | │   │   ├── koolproxy       kp二进制文件
 90 | │   │   └── kpr_config.sh   kpr保存的时候执行的配置文件。【核心】
 91 | │   ├── variable/libhavege.ipk        用于解决kpr与v2ray ss 冲突导致开机变慢的问题
 92 | │   ├── scripts     脚本目录 安装后位于/koolshare/scripts
 93 | │   │   ├── KoolProxyR_cert.sh      证书相关脚本备份.恢复.生成 .0 根证书
 94 | │   │   ├── KoolProxyR_check_chain.sh    检查SS WG V2RAY 和是否被kiil的脚本
 95 | │   │   ├── KoolProxyR_config.sh        控制重启Kpr的文件----
 96 | │   │   ├── KoolProxyR_debug.sh         附加设置-调试模式的脚本
 97 | │   │   ├── KoolProxyR_getarp.sh        获取arp 脚本
 98 | │   │   ├── KoolProxyR_rules_status.sh      规则的状态脚本
 99 | │   │   ├── KoolProxyR_rule_update.sh       规则的更新脚本
100 | │   │   ├── KoolProxyR_status.sh        kpr状态监测脚本
101 | │   │   └── KoolProxyR_update_now.sh    kpr在线更新脚本
102 | │   ├── uninstall.sh        卸载脚本
103 | │   └── webs
104 | │       ├── Module_koolproxyR.asp       Kpr界面文件
105 | │       └── res
106 | │           ├── icon-koolproxyR-bg.png      软件中心背景图标
107 | │           ├── icon-koolproxyR.png         软件中心主图标
108 | │           └── icon_koolproxyR-v.png       kpr界面文件左上角调用的图标
109 | ├── KoolProxyR_install.sh       在线安装/更新KPR的脚本
110 | ├── KoolProxyR_my_rule_diy.sh     自定义SHELL文件,放入/koolshare/scripts下即可
111 | ├── koolproxyR.tar.gz       最新版本的kpr离线安装包
112 | ├── kpr_tar_install.sh      kpr在线更新调用的离线安装脚本
113 | ├── KPR内图标.psd       图标开源
114 | ├── KPR图标背景图片.psd     图片开源
115 | ├── ks_tar_install.sh        软件中心离线安装脚本(修复了离线安装验证不通过的问题)
116 | ├── README.md       你现在所看到的页面
117 | └── version        版本号,负责控制kpr的更新和md5核对。
118 | 
119 |
120 | 121 | 122 | ## 开源及授权 123 | 如果同时满足如下要求,无需取得授权。 124 | 1.不得用于非开源项目. 125 | 2.不得用于商业用途. 126 | 3.给予本项目优先反馈,和知情权。 -------------------------------------------------------------------------------- /backup.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | # you can do something here 4 | # this shell scripts will run at the end of build.py scripts 5 | 6 | tar_name="koolproxyR.tar.gz" 7 | 8 | mkdir -p history 9 | if [ ! -f ./history/version ]; then 10 | touch ./history/version 11 | fi 12 | 13 | version_old=`cat history/version | sed -n '$p' | cut -d \ -f1` 14 | version_new=`cat version |sed -n 1p` 15 | md5_new=` md5sum $tar_name | cut -d \ -f1` 16 | # 保证md5连续性 17 | wget -O ./history/version https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/history/version 18 | if [ -f ./$tar_name ]; then 19 | if [ "$version_old" != "$version_new" ]; then 20 | mkdir ./history/$version_new/ 21 | cp ./$tar_name ./history/$version_new/ 22 | echo $version_new $md5_new >> ./history/version 23 | fi 24 | fi 25 | 26 | -------------------------------------------------------------------------------- /build.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | MODULE=koolproxyR 4 | VERSION="2.2.3" 5 | TITLE=koolproxyR 6 | DESCRIPTION="KPR更多规则更舒服!" 7 | HOME_URL="Module_koolproxyR.asp" 8 | CHANGELOG="维护阶段的kpr" 9 | # 查看内核日志 10 | # dmesg | less 或者 dmesg 11 | # 转化DOS格式到unix 需要 apt-get install dos2unix 12 | find . -type f -exec dos2unix {} \; 13 | #get latest rules 14 | rm -rf ./koolproxyR/koolproxyR/data/rules/*.txt 15 | rm -rf ./koolproxyR/koolproxyR/data/rules/*.md5 16 | rm -rf ./koolproxyR/koolproxyR/data/rules/*.dat 17 | rm -rf ./koolproxyR/koolproxyR/data/source.list 18 | # rm -rf ./koolproxyR/koolproxyR/koolproxy 19 | cd koolproxyR/koolproxyR/data/rules 20 | # mkdir oridata 21 | # cd oridata 22 | # 下载三方规则 23 | # 从 https://filterlists.com/ 找规则 24 | # https://tgc.cloud/downloads/hosts.txt 36万DNS规则,kpr 生产出来是72万 25 | wget https://easylist-downloads.adblockplus.org/easylistchina.txt 26 | # https://dev.tencent.com/u/shaoxia1991/p/cjxlist/git/raw/master/cjx-annoyance.txt 27 | wget https://dev.tencent.com/u/shaoxia1991/p/cjxlist/git/raw/master/cjx-annoyance.txt 28 | 29 | wget https://secure.fanboy.co.nz/fanboy-annoyance.txt 30 | # ADGUARD-DNS过滤规则 31 | # wget -O yhosts.txt https://filters.adtidy.org/extension/chromium/filters/15.txt 32 | # yhosts过滤规则 33 | # https://dev.tencent.com/u/shaoxia1991/p/yhosts/git/raw/master/data/tvbox.txt 34 | wget -O yhosts.txt https://dev.tencent.com/u/shaoxia1991/p/yhosts/git/raw/master/hosts 35 | wget -O tvbox.txt https://dev.tencent.com/u/shaoxia1991/p/yhosts/git/raw/master/data/tvbox.txt 36 | cat tvbox.txt >> yhosts.txt 37 | 38 | # ad.txt:合并EasylistChina、EasylistLite、CJX'sAnnoyance,以及补充的一些规则; 39 | # ad2.txt:仅合并EasylistChina、EasylistLite、CJX'sAnnoyance; 40 | # ad3.txt:合并EasylistChina、EasylistLite、CJX'sAnnoyance、EasyPrivacy; 41 | # wget https://gitee.com/halflife/list/raw/master/ad.txt 42 | 43 | # 分割三方规则 44 | 45 | # # split -l 1 easylistchina.txt ./../easylistchina_ 46 | # split -l 1 yhosts.txt ./../chengfeng_ 47 | # # split -l 999 fanboy-annoyance.txt ./../fanboy_ 48 | # cd .. 49 | 50 | # 同步kp官方规则 51 | 52 | # wget https://kprules.b0.upaiyun.com/koolproxy.txt 53 | # wget https://kprules.b0.upaiyun.com/daily.txt 54 | # 暂时先用临时的替代 55 | # wget https://kprules.b0.upaiyun.com/kp.dat 56 | # wget https://kprules.b0.upaiyun.com/user.txt 57 | # 同步Kpr视频规则及md5 58 | wget https://dev.tencent.com/u/shaoxia1991/p/koolproxyR_rule_list/git/raw/master/kp.dat 59 | wget https://dev.tencent.com/u/shaoxia1991/p/koolproxyR_rule_list/git/raw/master/kp.dat.md5 60 | wget https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/koolproxyR/koolproxyR/data/rules/user.txt 61 | 62 | ## ---------------------------------------------------fanboy处理开始------------------------------------------------------ 63 | ## 删除导致KP崩溃的规则 64 | sed -i '/^\$/d' fanboy-annoyance.txt 65 | sed -i '/\*\$/d' fanboy-annoyance.txt 66 | 67 | # 给三大视频网站放行 由kp.dat负责 68 | sed -i '/youku.com/d' fanboy-annoyance.txt 69 | sed -i '/g.alicdn.com/d' fanboy-annoyance.txt 70 | sed -i '/tudou.com/d' fanboy-annoyance.txt 71 | sed -i '/iqiyi.com/d' fanboy-annoyance.txt 72 | sed -i '/qq.com/d' fanboy-annoyance.txt 73 | sed -i '/gtimg.cn/d' fanboy-annoyance.txt 74 | # 给知乎放行 75 | sed -i '/zhihu.com/d' fanboy-annoyance.txt 76 | 77 | 78 | # 将规则转化成kp能识别的https 79 | cat fanboy-annoyance.txt | grep "^||" | sed 's#^||#||https://#g' >> fanboy-annoyance_https.txt 80 | # 移出https不支持规则domain= 81 | sed -i 's/\(,domain=\).*//g' fanboy-annoyance_https.txt 82 | sed -i 's/\(\$domain=\).*//g' fanboy-annoyance_https.txt 83 | sed -i 's/\(domain=\).*//g' fanboy-annoyance_https.txt 84 | sed -i '/\^$/d' fanboy-annoyance_https.txt 85 | sed -i '/\^\*\.gif/d' fanboy-annoyance_https.txt 86 | sed -i '/\^\*\.jpg/d' fanboy-annoyance_https.txt 87 | 88 | 89 | cat fanboy-annoyance.txt | grep "^||" | sed 's#^||#||http://#g' >> fanboy-annoyance_https.txt 90 | cat fanboy-annoyance.txt | grep -i '^[0-9a-z]'| grep -v '^http'| sed 's#^#https://#g' >> fanboy-annoyance_https.txt 91 | cat fanboy-annoyance.txt | grep -i '^[0-9a-z]'| grep -v '^http'| sed 's#^#http://#g' >> fanboy-annoyance_https.txt 92 | cat fanboy-annoyance.txt | grep -i '^[0-9a-z]'| grep -i '^http' >> fanboy-annoyance_https.txt 93 | 94 | 95 | # 给github的https放行 96 | sed -i '/github/d' fanboy-annoyance_https.txt 97 | # 给apple的https放行 98 | sed -i '/apple.com/d' fanboy-annoyance_https.txt 99 | sed -i '/mzstatic.com/d' fanboy-annoyance_https.txt 100 | # 给api.twitter.com的https放行 101 | sed -i '/twitter.com/d' fanboy-annoyance_https.txt 102 | # 给facebook.com的https放行 103 | sed -i '/facebook.com/d' fanboy-annoyance_https.txt 104 | sed -i '/fbcdn.net/d' fanboy-annoyance_https.txt 105 | # 给 instagram.com 放行 106 | sed -i '/instagram.com/d' fanboy-annoyance_https.txt 107 | # 删除可能导致Kpr变慢的Https规则 108 | sed -i '/\.\*\//d' fanboy-annoyance_https.txt 109 | 110 | # 给国内三大电商平台放行 111 | sed -i '/jd.com/d' fanboy-annoyance_https.txt 112 | sed -i '/taobao.com/d' fanboy-annoyance_https.txt 113 | sed -i '/tmall.com/d' fanboy-annoyance_https.txt 114 | 115 | # 删除不必要信息重新打包 15 表示从第15行开始 $表示结束 116 | sed -i '15,$d' fanboy-annoyance.txt 117 | # 合二归一 118 | cat fanboy-annoyance_https.txt >> fanboy-annoyance.txt 119 | # 删除可能导致kpr卡死的神奇规则 120 | sed -i '/https:\/\/\*/d' fanboy-annoyance.txt 121 | # 给 netflix.com 放行 122 | sed -i '/netflix.com/d' fanboy-annoyance.txt 123 | # 给 tvbs.com 放行 124 | sed -i '/tvbs.com/d' fanboy-annoyance.txt 125 | sed -i '/googletagmanager.com/d' fanboy-annoyance.txt 126 | # 给 microsoft.com 放行 127 | sed -i '/microsoft.com/d' fanboy-annoyance.txt 128 | 129 | # 终极 https 卡顿优化 grep -n 显示行号 awk -F 分割数据 sed -i "${del_rule}d" 需要""" 和{}引用变量 130 | # 当 koolproxyR_del_rule 是1的时候就一直循环,除非 del_rule 变量为空了。 131 | koolproxyR_del_rule=1 132 | while [ $koolproxyR_del_rule = 1 ];do 133 | del_rule=`cat fanboy-annoyance.txt | grep -n 'https://' | grep '\*' | grep -v '/\*'| grep -v '\^\*' | grep -v '\*\=' | grep -v '\$s\@' | grep -v '\$r\@'| awk -F":" '{print $1}' | sed -n '1p'` 134 | if [[ "$del_rule" != "" ]]; then 135 | sed -i "${del_rule}d" fanboy-annoyance.txt 136 | else 137 | koolproxyR_del_rule=0 138 | fi 139 | done 140 | 141 | 142 | ## -------------------------------------------------------fanboy处理结束------------------------------------------------------ 143 | 144 | 145 | ## ---------------------------------------------------------KPR 中国简易规则处理开始 ------------------------------------------------------- 146 | cat cjx-annoyance.txt >> easylistchina.txt 147 | sed -i '/^\$/d' easylistchina.txt 148 | sed -i '/\*\$/d' easylistchina.txt 149 | # 给btbtt.替换过滤规则。 150 | sed -i 's#btbtt.\*#\*btbtt.\*#g' easylistchina.txt 151 | # 给手机百度图片放行 152 | sed -i '/baidu.com\/it\/u/d' easylistchina.txt 153 | # # 给手机百度放行 154 | # sed -i '/mbd.baidu.com/d' easylistchina.txt 155 | # 给知乎放行 156 | sed -i '/zhihu.com/d' easylistchina.txt 157 | 158 | 159 | 160 | # 将规则转化成kp能识别的https 161 | cat easylistchina.txt | grep "^||" | sed 's#^||#||https://#g' >> easylistchina_https.txt 162 | # 移出https不支持规则domain= 163 | sed -i 's/\(,domain=\).*//g' easylistchina_https.txt 164 | sed -i 's/\(\$domain=\).*//g' easylistchina_https.txt 165 | sed -i 's/\(domain=\).*//g' easylistchina_https.txt 166 | sed -i '/\^$/d' easylistchina_https.txt 167 | sed -i '/\^\*\.gif/d' easylistchina_https.txt 168 | sed -i '/\^\*\.jpg/d' easylistchina_https.txt 169 | 170 | cat easylistchina.txt | grep "^||" | sed 's#^||#||http://#g' >> easylistchina_https.txt 171 | cat easylistchina.txt | grep -i '^[0-9a-z]'| grep -v '^http'| sed 's#^#https://#g' >> easylistchina_https.txt 172 | # 源文件替换成http 173 | cat easylistchina.txt | grep -i '^[0-9a-z]'| grep -v '^http'| sed 's#^#http://#g' >> easylistchina_https.txt 174 | cat easylistchina.txt | grep -i '^[0-9a-z]'| grep -i '^http' >> easylistchina_https.txt 175 | cat easylistchina.txt | grep -i '^[0-9a-z]'| grep -i '^|http' >> easylistchina_https.txt 176 | 177 | # 给facebook.com的https放行 178 | sed -i '/facebook.com/d' easylistchina_https.txt 179 | sed -i '/fbcdn.net/d' easylistchina_https.txt 180 | # 删除可能导致Kpr变慢的Https规则 181 | sed -i '/\.\*\//d' easylistchina_https.txt 182 | 183 | 184 | 185 | # 腾讯视频真的没办法了。找大佬帮我把 186 | # 删除不必要信息重新打包 15 表示从第15行开始 $表示结束 187 | sed -i '6,$d' easylistchina.txt 188 | # 合二归一 189 | # https://dev.tencent.com/u/shaoxia1991/p/koolproxyR_rule_list/git/raw/master/kpr_our_rule.txt 190 | wget https://dev.tencent.com/u/shaoxia1991/p/koolproxyR_rule_list/git/raw/master/kpr_our_rule.txt 191 | cat easylistchina_https.txt >> easylistchina.txt 192 | 193 | # 给三大视频网站放行 由kp.dat负责 194 | sed -i '/youku.com/d' easylistchina.txt 195 | sed -i '/iqiyi.com/d' easylistchina.txt 196 | sed -i '/g.alicdn.com/d' easylistchina.txt 197 | sed -i '/tudou.com/d' easylistchina.txt 198 | sed -i '/gtimg.cn/d' easylistchina.txt 199 | # 给https://qq.com的html规则放行 200 | sed -i '/qq.com/d' easylistchina.txt 201 | # 删除可能导致kpr卡死的神奇规则 202 | sed -i '/https:\/\/\*/d' easylistchina.txt 203 | # 给国内三大电商平台放行 204 | sed -i '/jd.com/d' easylistchina.txt 205 | sed -i '/taobao.com/d' easylistchina.txt 206 | sed -i '/tmall.com/d' easylistchina.txt 207 | # 给 tvbs.com 放行 208 | sed -i '/tvbs.com/d' easylistchina.txt 209 | sed -i '/googletagmanager.com/d' easylistchina.txt 210 | # 给 netflix.com 放行 211 | sed -i '/netflix.com/d' easylistchina.txt 212 | # 给 microsoft.com 放行 213 | sed -i '/microsoft.com/d' easylistchina.txt 214 | # 给apple的https放行 215 | sed -i '/apple.com/d' easylistchina.txt 216 | sed -i '/mzstatic.com/d' easylistchina.txt 217 | 218 | # 终极 https 卡顿优化 grep -n 显示行号 awk -F 分割数据 sed -i "${del_rule}d" 需要""" 和{}引用变量 219 | # 当 koolproxyR_del_rule 是1的时候就一直循环,除非 del_rule 变量为空了。 220 | koolproxyR_del_rule=1 221 | while [ $koolproxyR_del_rule = 1 ];do 222 | del_rule=`cat easylistchina.txt | grep -n 'https://' | grep '\*' | grep -v '/\*'| grep -v '\^\*' | grep -v '\*\=' | grep -v '\$s\@' | grep -v '\$r\@'| awk -F":" '{print $1}' | sed -n '1p'` 223 | if [[ "$del_rule" != "" ]]; then 224 | sed -i "${del_rule}d" easylistchina.txt 225 | else 226 | koolproxyR_del_rule=0 227 | fi 228 | done 229 | cat kpr_our_rule.txt >> easylistchina.txt 230 | 231 | 232 | 233 | 234 | 235 | # -----------------------------------------KPR 中国简易规则处理结束------------------------------------------------ 236 | 237 | 238 | # -------------------------------------- 补充规则处理开始---------------------------------------------------------- 239 | # 删除不必要信息重新打包 0-11行 表示从第15行开始 $表示结束 240 | # sed -i '1,11d' yhosts.txt 241 | # 开始Kpr规则化处理 242 | cat yhosts.txt > yhosts_https.txt 243 | sed -i 's/^127.0.0.1\ /||https:\/\//g' yhosts_https.txt 244 | cat yhosts.txt >> yhosts_https.txt 245 | sed -i 's/^127.0.0.1\ /||http:\/\//g' yhosts_https.txt 246 | # 处理tvbox.txt本身规则。 247 | sed -i 's/^127.0.0.1\ /||/g' tvbox.txt 248 | # 给国内三大电商平台放行 249 | sed -i '/jd.com/d' yhosts_https.txt 250 | sed -i '/taobao.com/d' yhosts_https.txt 251 | sed -i '/tmall.com/d' yhosts_https.txt 252 | 253 | # 合二归一 254 | cat yhosts_https.txt > yhosts.txt 255 | cat tvbox.txt >> yhosts.txt 256 | # 此处对yhosts进行单独处理 257 | sed -i 's/^@/!/g' yhosts.txt 258 | sed -i 's/^#/!/g' yhosts.txt 259 | 260 | # 给三大视频网站放行 由kp.dat负责 261 | sed -i '/youku.com/d' yhosts.txt 262 | sed -i '/iqiyi.com/d' yhosts.txt 263 | sed -i '/g.alicdn.com/d' yhosts.txt 264 | sed -i '/tudou.com/d' yhosts.txt 265 | sed -i '/gtimg.cn/d' yhosts.txt 266 | 267 | 268 | # 给知乎放行 269 | sed -i '/zhihu.com/d' yhosts.txt 270 | 271 | # 给qq.com放行 272 | sed -i '/qq.com/d' yhosts.txt 273 | 274 | # 给github的https放行 275 | sed -i '/github/d' yhosts.txt 276 | # 给apple的https放行 277 | sed -i '/apple.com/d' yhosts.txt 278 | sed -i '/mzstatic.com/d' yhosts.txt 279 | # 给api.twitter.com的https放行 280 | sed -i '/twitter.com/d' yhosts.txt 281 | # 给facebook.com的https放行 282 | sed -i '/facebook.com/d' yhosts.txt 283 | sed -i '/fbcdn.net/d' yhosts.txt 284 | # 给 instagram.com 放行 285 | sed -i '/instagram.com/d' yhosts.txt 286 | # 删除可能导致kpr卡死的神奇规则 287 | sed -i '/https:\/\/\*/d' yhosts.txt 288 | # 给 tvbs.com 放行 289 | sed -i '/tvbs.com/d' yhosts.txt 290 | sed -i '/googletagmanager.com/d' yhosts.txt 291 | # 给 netflix.com 放行 292 | sed -i '/netflix.com/d' yhosts.txt 293 | # 给 microsoft.com 放行 294 | sed -i '/microsoft.com/d' yhosts.txt 295 | 296 | # 终极 https 卡顿优化 grep -n 显示行号 awk -F 分割数据 sed -i "${del_rule}d" 需要""" 和{}引用变量 297 | # 当 koolproxyR_del_rule 是1的时候就一直循环,除非 del_rule 变量为空了。 298 | koolproxyR_del_rule=1 299 | while [ $koolproxyR_del_rule = 1 ];do 300 | del_rule=`cat yhosts.txt | grep -n 'https://' | grep '\*' | grep -v '/\*'| grep -v '\^\*' | grep -v '\*\=' | grep -v '\$s\@' | grep -v '\$r\@'| awk -F":" '{print $1}' | sed -n '1p'` 301 | if [[ "$del_rule" != "" ]]; then 302 | sed -i "${del_rule}d" yhosts.txt 303 | else 304 | koolproxyR_del_rule=0 305 | fi 306 | done 307 | 308 | 309 | 310 | # ---------------------------------------------补充规则处理结束---------------------------------------------- 311 | 312 | ## 删除临时文件 313 | rm *_https.txt 314 | rm kpr_our_rule.txt 315 | rm cjx-annoyance.txt 316 | rm tvbox.txt 317 | 318 | # 测试专用 319 | # split -l 1 yhosts.txt chengfeng_ 320 | # ls|grep chengfeng_|xargs -n1 -i{} mv {} {}.txt 321 | 322 | cd .. 323 | find -name *.txt |sed 's#.*/##' > source.list 324 | 325 | # find -name chengfeng* |sed 's#.*/##' >> source.list 326 | # find -name fanboy_* |sed 's#.*/##' >> source.list 327 | sed -i 's/^/0|/' source.list 328 | sed -i 's/$/|0|0/' source.list 329 | sed -i '/user.txt/d' source.list 330 | echo "1|user.txt|0|0" >> source.list 331 | echo "0|kp.dat|0|0" >> source.list 332 | # source.list的格式命名 333 | # 开关 0表示关闭 1表示开启 334 | # 开关|规则名字|规则网址|规则备注名字 335 | # 不支持规则 336 | 337 | # 1 小于2个字符的 例如 ab 338 | # ~开头的 339 | # $webrtc,domain=avgle.com 340 | # @@*$stylesheet 341 | 342 | cd .. 343 | # 现在在\koolproxyR\koolproxyR\koolproxyR 344 | # wget https://raw.githubusercontent.com/koolshare/ledesoft/master/koolproxy/koolproxy/koolproxy/koolproxy 345 | cd ../.. 346 | # 现在在 Y:\koolproxyR 也就是主目录 347 | # # Check and include base 348 | # DIR="$( cd "$( dirname "$BASH_SOURCE[0]" )" && pwd )" 349 | 350 | # # now include build_base.sh 351 | # . $DIR/../softcenter/build_base.sh 352 | 353 | # # change to module directory 354 | # cd $DIR 355 | 356 | # # do something here 357 | 358 | # 359 | 360 | 361 | do_build_result() { 362 | rm -f koolproxyR.tar.gz 363 | tar -zcvf koolproxyR.tar.gz koolproxyR 364 | md5value=`md5sum koolproxyR.tar.gz | cut -d \ -f1` 365 | echo "$VERSION" > version 366 | echo "$md5value" >> version 367 | } 368 | do_build_result 369 | 370 | 371 | sh backup.sh koolproxyR 372 | cd koolproxyR/koolproxyR/data/rules 373 | # ls | grep .txt | sed 's/^/md5sum /g' | >> rules_md5.sh 374 | md5sum easylistchina.txt|awk '{print $1}' > easylistchina.txt.md5 375 | md5sum kp.dat|awk '{print $1}' > kp.dat.md5 376 | md5sum user.txt|awk '{print $1}' > user.txt.md5 377 | md5sum fanboy-annoyance.txt|awk '{print $1}' > fanboy-annoyance.txt.md5 378 | md5sum yhosts.txt|awk '{print $1}' > yhosts.txt.md5 379 | 380 | -------------------------------------------------------------------------------- /history/2.2.0/koolproxyR.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/history/2.2.0/koolproxyR.tar.gz -------------------------------------------------------------------------------- /history/2.2.1/koolproxyR.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/history/2.2.1/koolproxyR.tar.gz -------------------------------------------------------------------------------- /history/2.2.2/koolproxyR.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/history/2.2.2/koolproxyR.tar.gz -------------------------------------------------------------------------------- /history/2.2.3/koolproxyR.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/history/2.2.3/koolproxyR.tar.gz -------------------------------------------------------------------------------- /history/version: -------------------------------------------------------------------------------- 1 | 2.2.0 f6609f5cf29c1bd3a24e12c20f505720 2 | 2.2.0 feaf9c60ba6f1ebe3ab760b2cc4ba77b 3 | 2.2.1 b8b8afb4d8919335e1481092a3426e5b 4 | 2.2.2 f0c2b9ec082f0c7573d587a0913c939a 5 | 2.2.3 de55230acdf715f0987ff0be2eedeef4 6 | -------------------------------------------------------------------------------- /koolproxyR.tar.gz: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/koolproxyR.tar.gz -------------------------------------------------------------------------------- /koolproxyR/init.d/S93koolproxyR.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh /etc/rc.common 2 | # 3 | # Copyright (C) 2015 OpenWrt-dist 4 | # Copyright (C) 2016 fw867 5 | # Copyright (C) 2016 sadog 6 | # 7 | # This is free software, licensed under the GNU General Public License v3. 8 | # See /LICENSE for more information. 9 | # 10 | 11 | START=93 12 | STOP=15 13 | 14 | source /koolshare/scripts/base.sh 15 | eval `dbus export koolproxyR_` 16 | 17 | 18 | start(){ 19 | [ ! -L "/tmp/upload/user.txt" ] && ln -sf $KSROOT/koolproxyR/data/user.txt /tmp/upload/user.txt 20 | [[ "$koolproxyR_enable" == "1" ]] && sh /koolshare/koolproxyR/kpr_config.sh restart >> /tmp/upload/kpr_log.txt 21 | 22 | entropy_avail=`opkg list-installed |grep -i "haveged"` 23 | if [[ "$entropy_avail" == "" ]]; then 24 | # 离线安装包下载地址 https://downloads.openwrt.org/releases/packages-18.06/x86_64/packages/ 25 | opkg install /koolshare/variable/libhavege.ipk 26 | sleep 1 27 | opkg install /koolshare/variable/haveged.ipk 28 | fi 29 | } 30 | 31 | stop(){ 32 | sh /koolshare/koolproxyR/kpr_config.sh stop >> /tmp/upload/kpr_log.txt 33 | } -------------------------------------------------------------------------------- /koolproxyR/install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export KSROOT=/koolshare 3 | source $KSROOT/scripts/base.sh 4 | eval `dbus export koolproxyR_` 5 | alias echo_date='echo 【$(date +%Y年%m月%d日\ %X)】:' 6 | # mkdir -p /tmp/upload 7 | 8 | # 判断路由架构和平台 9 | case $(uname -m) in 10 | armv7l) 11 | echo_date 本KoolProxyR插件用于koolshare OpenWRT/LEDE x86_64固件平台,arm平台不能安装!!! 12 | echo_date 退出KoolProxyR安装! 13 | exit 1 14 | ;; 15 | mips) 16 | echo_date 本KoolProxyR插件用于koolshare OpenWRT/LEDE x86_64固件平台,mips平台不能安装!!! 17 | echo_date 退出KoolProxyR安装! 18 | exit 1 19 | ;; 20 | x86_64) 21 | fw867=`cat /etc/banner|grep fw867` 22 | if [ -d "/koolshare" ] && [ -n "$fw867" ]; then 23 | echo_date 固件平台【koolshare OpenWRT/LEDE x86_64】符合安装要求,开始安装插件! 24 | else 25 | echo_date 本KoolProxyR插件用于koolshare OpenWRT/LEDE x86_64固件平台,其它x86_64固件平台不能安装!!! 26 | echo_date 退出KoolProxyR安装! 27 | exit 1 28 | fi 29 | ;; 30 | *) 31 | echo_date 本KoolProxyR插件用于koolshare OpenWRT/LEDE x86_64固件平台,其它平台不能安装!!! 32 | echo_date 退出KoolProxyR安装! 33 | exit 1 34 | ;; 35 | esac 36 | # 感谢这位大佬的教程。 37 | # https://www.linuxquestions.org/questions/debian-26/debian-hangs-at-boot-with-random-crng-init-done-4175613405/#post5889997 38 | # 此举解决了kpr与v2ray冲突,与SS冲突,导致开机过慢的问题 39 | # haveged 项目的目的是提供一个易用、不可预测的随机数生成器,基于 HAVEGE 算法。 40 | 41 | # entropy_avail=`cat /proc/sys/kernel/random/entropy_avail` 42 | entropy_avail=`opkg list-installed |grep -i "haveged"` 43 | 44 | 45 | if [[ "$entropy_avail" == "" ]]; then 46 | # 离线安装包下载地址 https://downloads.openwrt.org/releases/packages-18.06/x86_64/packages/ 47 | echo_date 开始安装haveged,解决ss,v2ray冲突导致开机变慢的问题。 48 | opkg install /tmp/koolproxyR/variable/libhavege.ipk 49 | sleep 1 50 | opkg install /tmp/koolproxyR/variable/haveged.ipk 51 | entropy_avail1=`opkg list-installed |grep -i "haveged"` 52 | if [[ "$entropy_avail1" == "" ]]; then 53 | echo_date 离线安装haveged失败,正在尝试在线安装! 54 | opkg update && opkg install haveged 55 | entropy_avail2=`opkg list-installed |grep -i "haveged"` 56 | if [[ "$entropy_avail2" == "" ]]; then 57 | echo_date 离线,在线安装haveged失败请手动尝试,在ssh中执行如下命令,否则无法解决开机变慢的问题。 58 | echo_date opkg update && opkg install haveged 59 | fi 60 | fi 61 | else 62 | echo_date 你已安装haveged,不用担心与ss,v2ray冲突导致开机变慢的问题。 63 | fi 64 | # stop first 65 | KP_ENBALE=`dbus get koolproxy_enable` 66 | koolproxyR_enable=`dbus get koolproxyR_enable` 67 | 68 | if [[ "$KP_ENBALE" == "1" ]]; then 69 | if [ -f "$KSROOT/koolproxy/kp_config.sh" ]; then 70 | sh $KSROOT/koolproxy/kp_config.sh stop >> /tmp/upload/kpr_log.txt 71 | fi 72 | fi 73 | # 删除KP的二进制和核心配置文件。保留其他所有配置,避免小白两个都安装导致一些莫名其妙的问题。 74 | rm -rf $KSROOT/koolproxy/kp_config.sh >/dev/null 2>&1 75 | rm -rf $KSROOT/koolproxy/koolproxy >/dev/null 2>&1 76 | # 暂时关闭kpr进程。进行更新 77 | if [[ "$koolproxyR_enable" == "1" ]]; then 78 | echo_date 关闭koolproxyR主进程... 79 | kill -9 `pidof koolproxy` >/dev/null 2>&1 80 | killall koolproxy >/dev/null 2>&1 81 | fi 82 | # remove old files 83 | echo_date 移除koolproxyR旧文件... 84 | 85 | rm -rf $KSROOT/bin/koolproxy >/dev/null 2>&1 86 | # 自定义shell 移动,避免安装丢失 87 | if [ -f /koolshare/scripts/KoolProxyR_my_rule_diy.sh ]; then 88 | mv /koolshare/scripts/KoolProxyR_my_rule_diy.sh /tmp/KoolProxyR_my_rule_diy.sh.tmp 89 | fi 90 | rm -rf $KSROOT/scripts/KoolProxyR_* >/dev/null 2>&1 91 | rm -rf $KSROOT/webs/Module_koolproxyR.asp >/dev/null 2>&1 92 | rm -rf $KSROOT/koolproxyR/koolproxy >/dev/null 2>&1 93 | rm -rf $KSROOT/koolproxyR/*.sh >/dev/null 2>&1 94 | rm -rf $KSROOT/koolproxyR/data/gen_ca.sh >/dev/null 2>&1 95 | rm -rf $KSROOT/koolproxyR/data/source.list >/dev/null 2>&1 96 | rm -rf $KSROOT/koolproxyR/data/koolproxyR_ipset.conf >/dev/null 2>&1 97 | rm -rf $KSROOT/koolproxyR/data/openssl.cnf >/dev/null 2>&1 98 | rm -rf $KSROOT/koolproxyR/data/rules >/dev/null 2>&1 99 | # 移动 自定义规则 100 | if [ -f "$KSROOT/koolproxyR/data/rules/user.txt" ]; then 101 | mv $KSROOT/koolproxyR/data/rules/user.txt /tmp/user.txt.tmp 102 | fi 103 | rm -rf $KSROOT/koolproxyR/data/rules/* >/dev/null 2>&1 104 | 105 | # copy new files 106 | echo_date 复制koolproxyR新文件... 107 | cd /tmp 108 | mkdir -p $KSROOT/koolproxyR 109 | mkdir -p $KSROOT/init.d 110 | mkdir -p $KSROOT/koolproxyR/data 111 | cp -rf /tmp/koolproxyR/scripts/* $KSROOT/scripts/ 112 | cp -rf /tmp/koolproxyR/webs/* $KSROOT/webs/ 113 | cp -rf /tmp/koolproxyR/init.d/* $KSROOT/init.d/ 114 | # 自定义规则 判断 115 | if [ -f "/tmp/user.txt.tmp" ]; then 116 | cp -rf /tmp/koolproxyR/* $KSROOT/ 117 | rm -rf $KSROOT/koolproxyR/data/rules/user.txt 118 | mv /tmp/user.txt.tmp $KSROOT/koolproxyR/data/rules/user.txt 119 | else 120 | cp -rf /tmp/koolproxyR/* $KSROOT/ 121 | fi 122 | # 自定义shell 移动,避免安装丢失 123 | if [ -f /tmp/KoolProxyR_my_rule_diy.sh.tmp ]; then 124 | mv /tmp/KoolProxyR_my_rule_diy.sh.tmp /koolshare/scripts/KoolProxyR_my_rule_diy.sh 125 | fi 126 | 127 | cp -f /tmp/koolproxyR/uninstall.sh $KSROOT/scripts/uninstall_koolproxyR.sh 128 | rm -rf $KSROOT/install.sh 129 | rm -rf $KSROOT/uninstall.sh 130 | # rm -rf $KSROOT/libhavege*.ipk 131 | # rm -rf $KSROOT/haveged*.ipk 132 | [ ! -L "/tmp/upload/user.txt" ] && ln -sf $KSROOT/koolproxyR/data/rules/user.txt /tmp/upload/user.txt 133 | 134 | echo_date 赋予koolproxyR文件权限... 135 | 136 | cd / 137 | chmod 755 $KSROOT/koolproxyR/* 138 | chmod 755 $KSROOT/koolproxyR/data/* 139 | chmod 755 $KSROOT/scripts/* 140 | chmod 755 $KSROOT/init.d/* 141 | ln -sf $KSROOT/koolproxyR/koolproxy $KSROOT/bin/koolproxy 142 | 143 | # remove install tar 144 | echo_date 移除koolproxyR安装残留... 145 | rm -rf /tmp/koolproxy* >/dev/null 2>&1 146 | 147 | # remove old files if exist 148 | echo_date koolproxyR后续处理... 149 | find /etc/rc.d/ -name *koolproxyR.sh* | xargs rm -rf 150 | [ ! -L "/etc/rc.d/S93koolproxyR.sh" ] && ln -sf $KSROOT/init.d/S93koolproxyR.sh /etc/rc.d/S93koolproxyR.sh 151 | 152 | [ -z "$koolproxyR_mode" ] && dbus set koolproxyR_mode="1" 153 | [ -z "$koolproxyR_acl_default" ] && dbus set koolproxyR_acl_default="1" 154 | [ -z "$koolproxyR_acl_list" ] && dbus set koolproxyR_acl_list=" " 155 | [ -z "$koolproxyR_arp" ] && dbus set koolproxyR_arp=" " 156 | 157 | # add icon into softerware center 158 | # 酷软 插件首行 159 | dbus set softcenter_module_koolproxyR_title="KoolProxyR" 160 | # 酷软 插件次行 161 | dbus set softcenter_module_koolproxyR_description="至 善 至 美" 162 | dbus set softcenter_module_koolproxyR_install=1 163 | dbus set softcenter_module_koolproxyR_home_url="Module_koolproxyR.asp" 164 | dbus set softcenter_module_koolproxyR_name=koolproxyR 165 | dbus set softcenter_module_koolproxyR_version=2.2.3 166 | dbus set koolproxyR_version=2.2.3 167 | 168 | echo_date 安装koolproxyR完成,开始重启koolproxyR... 169 | 170 | [[ "$koolproxyR_enable" == "1" ]] && sh $KSROOT/koolproxyR/kpr_config.sh restart 171 | echo_date koolproxyR重启完成... 172 | 173 | # 首次安装/更新之后进行一次规则升级。避免规则过久。 174 | # sh /koolshare/scripts/KoolProxyR_rule_update.sh update 175 | 176 | # 修复离线安装失败的问题 TG sadog 177 | exit 0 -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/data/gen_ca.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | alias echo_date='echo $(date +%Y年%m月%d日\ %X):' 3 | KPR_DIY_CA=`dbus get koolproxy_diy_ca` 4 | # 本功能作为隐藏功能,使用dbus set koolproxy_diy_ca=xxxxyyyzzz 5 | # cd /koolshare/koolproxyR/data && sh gen_ca.sh 6 | if [ ! -f openssl.cnf ]; then 7 | echo_date "没有找到 openssl.cnf" 8 | exit 1 9 | fi 10 | if [[ "$KPR_DIY_CA" != "" ]]; then 11 | echo_date "生成自定义证书中..." 12 | rm -rf /koolshare/koolproxyR/data/private/*.pem 13 | rm -rf /koolshare/koolproxyR/data/certs/ca.crt 14 | #step 1, root ca 15 | mkdir -p certs private 16 | rm -f serial private/ca.key.pem 17 | chmod 700 private 18 | echo 1000 > serial 19 | openssl genrsa -aes256 -passout pass:koolshare -out private/ca.key.pem 2048 20 | chmod 400 private/ca.key.pem 21 | openssl req -config openssl.cnf -passin pass:koolshare \ 22 | -subj "/C=CN/ST=Beijing/L=KPR/O=KoolProxyR/CN=$KPR_DIY_CA" \ 23 | -key private/ca.key.pem \ 24 | -new -x509 -days 7300 -sha256 -extensions v3_ca \ 25 | -out certs/ca.crt 26 | 27 | #step 2, domain rsa key 28 | openssl genrsa -aes256 -passout pass:koolshare -out private/base.key.pem 2048 29 | # 生成完毕,移除dbus 避免重复生成 30 | dbus remove koolproxy_diy_ca 31 | echo_date "自定义证书生成完毕..." 32 | koolproxyR_enable=`dbus get koolproxyR_enable` 33 | [[ "$koolproxyR_enable" == "1" ]] && sh /koolshare/koolproxyR/kpr_config.sh restart 34 | echo_date "重新给设备安装证书,体验惊喜吧!" 35 | fi 36 | 37 | if [ -f /koolshare/koolproxyR/data/private/ca.key.pem ]; then 38 | echo_date "已经有证书了!" 39 | else 40 | echo_date "生成证书中..." 41 | 42 | #step 1, root ca 43 | mkdir -p certs private 44 | rm -f serial private/ca.key.pem 45 | chmod 700 private 46 | echo 1000 > serial 47 | openssl genrsa -aes256 -passout pass:koolshare -out private/ca.key.pem 2048 48 | chmod 400 private/ca.key.pem 49 | openssl req -config openssl.cnf -passin pass:koolshare \ 50 | -subj "/C=CN/ST=Beijing/L=KP/O=KoolProxy inc/CN=koolproxy.com" \ 51 | -key private/ca.key.pem \ 52 | -new -x509 -days 7300 -sha256 -extensions v3_ca \ 53 | -out certs/ca.crt 54 | 55 | #step 2, domain rsa key 56 | openssl genrsa -aes256 -passout pass:koolshare -out private/base.key.pem 2048 57 | echo_date "证书生成完毕..." 58 | fi 59 | -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/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 | -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/data/rules/easylistchina.txt.md5: -------------------------------------------------------------------------------- 1 | 2fc72b2de46dfcdd5d115c89479acd2f 2 | -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/data/rules/fanboy-annoyance.txt.md5: -------------------------------------------------------------------------------- 1 | 8b07757854e36a1c2c6f83ec7ae6b386 2 | -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/data/rules/kp.dat: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/koolproxyR/koolproxyR/data/rules/kp.dat -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/data/rules/kp.dat.md5: -------------------------------------------------------------------------------- 1 | 533ab791221873823a9d89ac2396e411 2 | -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/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 | -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/data/rules/user.txt.md5: -------------------------------------------------------------------------------- 1 | 715d8d892a7323346cf42d8d66cc96b7 2 | -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/data/rules/yhosts.txt.md5: -------------------------------------------------------------------------------- 1 | 64177a0e2451c8686ef347f46b5a07c5 2 | -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/data/source.list: -------------------------------------------------------------------------------- 1 | 0|easylistchina.txt|0|0 2 | 0|yhosts.txt|0|0 3 | 0|fanboy-annoyance.txt|0|0 4 | 1|user.txt|0|0 5 | 0|kp.dat|0|0 6 | -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/koolproxy: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/koolproxyR/koolproxyR/koolproxy -------------------------------------------------------------------------------- /koolproxyR/koolproxyR/kpr_config.sh: -------------------------------------------------------------------------------- 1 | #! /bin/sh 2 | 3 | alias echo_date='echo $(date +%Y年%m月%d日\ %X):' 4 | export KSROOT=/koolshare 5 | source $KSROOT/scripts/base.sh 6 | eval `dbus export koolproxyR_` 7 | SOFT_DIR=/koolshare 8 | KP_DIR=$SOFT_DIR/koolproxyR 9 | LOCK_FILE=/var/lock/koolproxy.lock 10 | # 一定要按照source.list的排列顺序/我就不按照顺序。。。啦啦啦啦啦啦 11 | SOURCE_LIST=$KP_DIR/data/source.list 12 | # 关闭规则调试模式 13 | dbus set koolproxyR_debug_0=0 14 | # fanboy全规则检查 15 | if [[ "$koolproxyR_fanboy_all_rules" == "1" ]]; then 16 | dbus set koolproxyR_fanboy_rules=1 17 | eval `dbus export koolproxyR_` 18 | fi 19 | 20 | write_user_txt(){ 21 | if [ -n "$koolproxyR_custom_rule" ]; then 22 | echo $koolproxyR_custom_rule | base64_decode | sed 's/\\n/\n/g' > $KP_DIR/data/rules/user.txt 23 | fi 24 | } 25 | 26 | load_rules(){ 27 | sed -i "s/1|/0|/g" $SOURCE_LIST 28 | sed -i "s/0|user/1|user/g" $SOURCE_LIST 29 | if [[ "$koolproxyR_easylist_rules" == "1" ]]; then 30 | echo_date 加载【KPR主规则】 31 | sed -i "s/0|easylistchina/1|easylistchina/g" $SOURCE_LIST 32 | fi 33 | if [[ "$koolproxyR_replenish_rules" == "1" ]]; then 34 | echo_date 加载【补充规则】 35 | sed -i "s/0|yhosts.txt/1|yhosts.txt/g" $SOURCE_LIST 36 | fi 37 | if [ "$koolproxyR_easylist_rules" == "1" -a "$koolproxyR_video_rules" == "0" ]; then 38 | echo_date 加载【KPR视频规则】 39 | sed -i "s/0|kpr_video_list/1|kpr_video_list/g" $SOURCE_LIST 40 | fi 41 | 42 | if [[ "$koolproxyR_video_rules" == "1" ]]; then 43 | echo_date 加载【KPR视频规则】 44 | sed -i "s/0|kp.dat/1|kp.dat/g" $SOURCE_LIST 45 | fi 46 | if [[ "$koolproxyR_fanboy_rules" == "1" ]]; then 47 | echo_date 加载【Fanboy规则】 48 | sed -i "s/0|fanboy/1|fanboy/g" $SOURCE_LIST 49 | fi 50 | } 51 | 52 | start_koolproxy(){ 53 | write_user_txt 54 | kp_version=`koolproxy -h | head -n1 | awk '{print $6}'` 55 | dbus set koolproxyR_binary_version="koolproxy $kp_version " 56 | echo_date 开启koolproxyR主进程! 57 | load_rules 58 | [ -f "$KSROOT/bin/koolproxy" ] && rm -rf $KSROOT/bin/koolproxy 59 | [ ! -L "$KSROOT/bin/koolproxy" ] && ln -sf $KSROOT/koolproxyR/koolproxy $KSROOT/bin/koolproxy 60 | if [[ "$koolproxyR_mode_enable" == "1" ]]; then 61 | echo_date 开启【进阶模式】 62 | [ "$koolproxyR_mode" == "0" ] && echo_date 选择【不过滤】 63 | [ "$koolproxyR_mode" == "1" ] && echo_date 选择【HTTP过滤模式】 64 | [ "$koolproxyR_mode" == "2" ] && echo_date 选择【HTTP/HTTPS双过滤模式】 65 | [ "$koolproxyR_mode" == "3" ] && echo_date 选择【黑名单模式】 66 | [ "$koolproxyR_mode" == "4" ] && echo_date 选择【HTTP/HTTPS双黑名单模式】 67 | # [ "$koolproxyR_mode" == "5" ] && echo_date 选择【全端口模式】 68 | else 69 | [ "$koolproxyR_base_mode" == "0" ] && echo_date 选择【不过滤】 70 | [ "$koolproxyR_base_mode" == "1" ] && echo_date 选择【HTTP过滤模式】 71 | [ "$koolproxyR_base_mode" == "2" ] && echo_date 选择【黑名单模式】 72 | fi 73 | cd $KP_DIR && koolproxy -d --ttl 188 --ttlport 3001 --ipv6 74 | } 75 | 76 | stop_koolproxy(){ 77 | echo_date 关闭koolproxyR主进程... 78 | kill -9 `pidof koolproxy` >/dev/null 2>&1 79 | killall koolproxy >/dev/null 2>&1 80 | } 81 | 82 | creat_start_up(){ 83 | [ ! -L "/etc/rc.d/S93koolproxyR.sh" ] && { 84 | echo_date 加入开机自动启动... 85 | ln -sf $SOFT_DIR/init.d/S93koolproxyR.sh /etc/rc.d/S93koolproxyR.sh 86 | } 87 | } 88 | 89 | write_nat_start(){ 90 | echo_date 添加nat-start触发事件... 91 | uci -q batch <<-EOT 92 | delete firewall.ks_koolproxy 93 | set firewall.ks_koolproxy=include 94 | set firewall.ks_koolproxy.type=script 95 | set firewall.ks_koolproxy.path=/koolshare/koolproxyR/kpr_config.sh 96 | set firewall.ks_koolproxy.family=any 97 | set firewall.ks_koolproxy.reload=1 98 | commit firewall 99 | EOT 100 | } 101 | 102 | remove_nat_start(){ 103 | echo_date 删除nat-start触发... 104 | uci -q batch <<-EOT 105 | delete firewall.ks_koolproxy 106 | commit firewall 107 | EOT 108 | } 109 | # =============================== 110 | 111 | add_ipset_conf(){ 112 | if [[ "$koolproxyR_mode_enable" == "1" ]]; then 113 | if [[ "$koolproxyR_mode" == "3" ]]; then 114 | echo_date 添加黑名单软连接... 115 | rm -rf /tmp/dnsmasq.d/koolproxyR_ipset.conf 116 | ln -sf $KP_DIR/data/koolproxyR_ipset.conf /tmp/dnsmasq.d/koolproxyR_ipset.conf 117 | dnsmasq_restart=1 118 | fi 119 | else 120 | if [[ "$koolproxyR_base_mode" == "2" ]]; then 121 | echo_date 添加黑名单软连接... 122 | rm -rf /tmp/dnsmasq.d/koolproxyR_ipset.conf 123 | ln -sf $KP_DIR/data/koolproxyR_ipset.conf /tmp/dnsmasq.d/koolproxyR_ipset.conf 124 | dnsmasq_restart=1 125 | fi 126 | fi 127 | } 128 | 129 | remove_ipset_conf(){ 130 | if [ -L "/tmp/dnsmasq.d/koolproxyR_ipset.conf" ]; then 131 | echo_date 移除黑名单软连接... 132 | rm -rf /tmp/dnsmasq.d/koolproxyR_ipset.conf 133 | fi 134 | } 135 | 136 | del_dns_takeover(){ 137 | ss_enable=`iptables -t nat -L SHADOWSOCKS 2>/dev/null |wc -l` 138 | ss_chromecast=`dbus get ss_basic_chromecast` 139 | [ -z "$ss_chromecast" ] && ss_chromecast=0 140 | if [[ "$ss_enable" == "0" ]]; then 141 | chromecast_nu=`iptables -t nat -L PREROUTING -v -n --line-numbers|grep "dpt:53"|awk '{print $1}'` 142 | [ -n "$chromecast_nu" ] && iptables -t nat -D PREROUTING $chromecast_nu >/dev/null 2>&1 143 | else 144 | [ "$ss_chromecast" == "0" ] && [ -n "$chromecast_nu" ] && iptables -t nat -D PREROUTING $chromecast_nu >/dev/null 2>&1 145 | fi 146 | } 147 | 148 | restart_dnsmasq(){ 149 | if [[ "$dnsmasq_restart" == "1" ]]; then 150 | echo_date 重启dnsmasq进程... 151 | /etc/init.d/dnsmasq restart > /dev/null 2>&1 152 | fi 153 | } 154 | 155 | write_reboot_job(){ 156 | # start setvice 157 | [ ! -f "/etc/crontabs/root" ] && touch /etc/crontabs/root 158 | CRONTAB=`cat /etc/crontabs/root|grep KoolProxyR_check_chain.sh` 159 | KoolProxyR_rule_update=`cat /etc/crontabs/root|grep KoolProxyR_rule_update.sh\ update` 160 | 161 | [ -z "$KoolProxyR_rule_update" ] && echo_date 写入KPR规则自动更新... && echo "15 3 * * * /koolshare/scripts/KoolProxyR_rule_update.sh update" >> /etc/crontabs/root 162 | 163 | [ -z "$CRONTAB" ] && echo_date 写入KPR过滤代理链守护... && echo "*/30 * * * * $SOFT_DIR/scripts/KoolProxyR_check_chain.sh" >> /etc/crontabs/root 164 | # if [[ "1" == "$koolproxyR_reboot" ]]; then 165 | # [ -z "$CRONTAB" ] && echo_date 开启插件定时重启,每天"$koolproxyR_reboot_hour"时,自动重启插件... && echo "0 $koolproxyR_reboot_hour * * * $KP_DIR/kpr_config.sh restart" >> /etc/crontabs/root 166 | # elif [[ "2" == "$koolproxyR_reboot" ]]; then 167 | # [ -z "$CRONTAB" ] && echo_date 开启插件间隔重启,每隔"$koolproxyR_reboot_inter_hour"时,自动重启插件... && echo "0 */$koolproxyR_reboot_inter_hour * * * $KP_DIR/kpr_config.sh restart" >> /etc/crontabs/root 168 | # fi 169 | } 170 | 171 | remove_reboot_job(){ 172 | [ ! -f "/etc/crontabs/root" ] && touch /etc/crontabs/root 173 | jobexist=`cat /etc/crontabs/root|grep KoolProxyR` 174 | KP_ENBALE=`dbus get koolproxyR_enable` 175 | 176 | # kill crontab job 177 | if [[ ! "$KP_ENBALE" == "1" ]]; then 178 | if [ ! -z "$jobexist" ]; then 179 | echo_date 删除KPR规则自动更新... 180 | sed -i '/KoolProxyR_rule_update/d' /etc/crontabs/root >/dev/null 2>&1 181 | echo_date 删除KPR过滤代理链守护... 182 | sed -i '/koolproxyR_check_chain/d' /etc/crontabs/root >/dev/null 2>&1 183 | fi 184 | fi 185 | } 186 | 187 | creat_ipset(){ 188 | echo_date 创建ipset名单 189 | # Load ipset netfilter kernel modules and kernel modules 190 | ipset -! create white_kp_list nethash 191 | ipset -! create black_koolproxy iphash 192 | cat $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 -! 193 | } 194 | 195 | gen_special_ip() { 196 | dhcp_mode_wan=`cat /etc/config/network | grep -oi "wan" | sed -n '1p' | cut -c 1-3` 197 | if [[ "$dhcp_mode_wan" != "" ]]; then 198 | ethernet=`ifconfig | grep eth | wc -l` 199 | if [[ "$ethernet" -ge "2" ]]; then 200 | dhcp_mode=`ubus call network.interface.$dhcp_mode_wan status | grep \"proto\" | sed -e 's/^[ \t]\"proto\": //g' -e 's/"//g' -e 's/,//g'` 201 | fi 202 | fi 203 | cat <<-EOF | grep -E "^([0-9]{1,3}\.){3}[0-9]{1,3}" 204 | 0.0.0.0/8 205 | 10.0.0.0/8 206 | 100.64.0.0/10 207 | 127.0.0.0/8 208 | 169.254.0.0/16 209 | 172.16.0.0/12 210 | 192.0.0.0/24 211 | 192.0.2.0/24 212 | 192.31.196.0/24 213 | 192.52.193.0/24 214 | 192.88.99.0/24 215 | 192.168.0.0/16 216 | 192.175.48.0/24 217 | 198.18.0.0/15 218 | 198.51.100.0/24 219 | 203.0.113.0/24 220 | 224.0.0.0/4 221 | 240.0.0.0/4 222 | 255.255.255.255 223 | $([ "$dhcp_mode" == "pppoe" ] && ubus call network.interface.$dhcp_mode_wan status | grep \"address\" | grep -oE '[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}') 224 | EOF 225 | } 226 | 227 | add_white_black_ip(){ 228 | echo_date 添加ipset名单 229 | ipset -! restore <<-EOF || return 1 230 | create white_kp_list hash:net hashsize 64 231 | $(gen_special_ip | sed -e "s/^/add white_kp_list /") 232 | EOF 233 | ipset -A black_koolproxy 110.110.110.110 >/dev/null 2>&1 234 | return 0 235 | } 236 | 237 | get_mode_name() { 238 | case "$1" in 239 | 0) 240 | echo "不过滤" 241 | ;; 242 | 1) 243 | echo "HTTP过滤模式" 244 | ;; 245 | 2) 246 | echo "HTTP/HTTPS双过滤模式" 247 | ;; 248 | 3) 249 | echo "黑名单模式" 250 | ;; 251 | 4) 252 | echo "HTTP/HTTPS双黑名单模式" 253 | ;; 254 | 5) 255 | echo "全端口模式" 256 | ;; 257 | esac 258 | } 259 | 260 | get_base_mode_name() { 261 | case "$1" in 262 | 0) 263 | echo "不过滤" 264 | ;; 265 | 1) 266 | echo "HTTP过滤模式" 267 | ;; 268 | 2) 269 | echo "黑名单模式" 270 | ;; 271 | esac 272 | } 273 | 274 | get_jump_mode(){ 275 | case "$1" in 276 | 0) 277 | echo "-j" 278 | ;; 279 | *) 280 | echo "-g" 281 | ;; 282 | esac 283 | } 284 | 285 | get_action_chain() { 286 | case "$1" in 287 | 0) 288 | echo "RETURN" 289 | ;; 290 | 1) 291 | echo "KP_HTTP" 292 | ;; 293 | 2) 294 | echo "KP_HTTPS" 295 | ;; 296 | 3) 297 | echo "KP_BLOCK_HTTP" 298 | ;; 299 | 4) 300 | echo "KP_BLOCK_HTTPS" 301 | ;; 302 | 5) 303 | echo "KP_ALL_PORT" 304 | ;; 305 | esac 306 | } 307 | 308 | get_base_mode() { 309 | case "$1" in 310 | 0) 311 | echo "RETURN" 312 | ;; 313 | 1) 314 | echo "KP_HTTP" 315 | ;; 316 | 2) 317 | echo "KP_BLOCK_HTTP" 318 | ;; 319 | esac 320 | } 321 | 322 | factor(){ 323 | if [ -z "$1" ] || [ -z "$2" ]; then 324 | echo "" 325 | else 326 | echo "$2 $1" 327 | fi 328 | } 329 | 330 | flush_nat(){ 331 | echo_date 移除nat规则... 332 | cd /tmp 333 | iptables -t nat -S | grep -E "KOOLPROXY|KOOLPROXY_ACT|KP_HTTP|KP_HTTPS|KP_BLOCK_HTTP|KP_BLOCK_HTTPS|KP_ALL_PORT" | sed 's/-A/iptables -t nat -D/g'|sed 1,7d > clean.sh && chmod 777 clean.sh && ./clean.sh 334 | iptables -t nat -X KOOLPROXY > /dev/null 2>&1 335 | iptables -t nat -X KOOLPROXY_ACT > /dev/null 2>&1 336 | iptables -t nat -X KP_HTTP > /dev/null 2>&1 337 | iptables -t nat -X KP_HTTPS > /dev/null 2>&1 338 | iptables -t nat -X KP_BLOCK_HTTP > /dev/null 2>&1 339 | iptables -t nat -X KP_BLOCK_HTTPS > /dev/null 2>&1 340 | iptables -t nat -X KP_ALL_PORT > /dev/null 2>&1 341 | ipset -F black_koolproxy > /dev/null 2>&1 && ipset -X black_koolproxy > /dev/null 2>&1 342 | ipset -F white_kp_list > /dev/null 2>&1 && ipset -X white_kp_list > /dev/null 2>&1 343 | ipset -F kp_full_port > /dev/null 2>&1 && ipset -X kp_full_port > /dev/null 2>&1 344 | } 345 | 346 | get_acl_para(){ 347 | echo `dbus get koolproxyR_acl_list|sed 's/>/\n/g'|sed '/^$/d'|awk NR==$1{print}|cut -d "<" -f "$2"` 348 | } 349 | 350 | lan_acess_control(){ 351 | # lan access control 352 | # [ -z "$koolproxyR_acl_default" ] && koolproxyR_acl_default=1 353 | acl_nu=`dbus get koolproxyR_acl_list|sed 's/>/\n/g'|sed '/^$/d'|sed '/^ /d'|wc -l` 354 | if [ -n "$acl_nu" ]; then 355 | min="1" 356 | max="$acl_nu" 357 | while [ $min -le $max ] 358 | do 359 | #echo_date $min $max 360 | proxy_name=`get_acl_para $min 1` 361 | ipaddr=`get_acl_para $min 2` 362 | mac=`get_acl_para $min 3` 363 | proxy_mode=`get_acl_para $min 4` 364 | 365 | [ -n "$ipaddr" ] && [ -z "$mac" ] && echo_date 加载ACL规则:【$ipaddr】模式为:$(get_mode_name $proxy_mode) 366 | [ -z "$ipaddr" ] && [ -n "$mac" ] && echo_date 加载ACL规则:【$mac】模式为:$(get_mode_name $proxy_mode) 367 | [ -n "$ipaddr" ] && [ -n "$mac" ] && echo_date 加载ACL规则:【$ipaddr】【$mac】模式为:$(get_mode_name $proxy_mode) 368 | #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) 369 | 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) 370 | min=`expr $min + 1` 371 | done 372 | if [[ "$koolproxyR_mode_enable" == "1" ]]; then 373 | echo_date 加载ACL规则:其余主机模式为:$(get_mode_name $koolproxyR_mode) 374 | else 375 | echo_date 加载ACL规则:其余主机模式为:$(get_base_mode_name $koolproxyR_base_mode) 376 | fi 377 | else 378 | if [[ "$koolproxyR_mode_enable" == "1" ]]; then 379 | echo_date 加载ACL规则:所有模式为:$(get_mode_name $koolproxyR_mode) 380 | else 381 | echo_date 加载ACL规则:所有模式为:$(get_base_mode_name $koolproxyR_base_mode) 382 | fi 383 | fi 384 | } 385 | 386 | load_nat(){ 387 | echo_date 加载nat规则! 388 | #----------------------BASIC RULES--------------------- 389 | echo_date 写入iptables规则到nat表中... 390 | # 创建KOOLPROXY nat rule 391 | iptables -t nat -N KOOLPROXY 392 | # 创建KOOLPROXY_ACT nat rule 393 | iptables -t nat -N KOOLPROXY_ACT 394 | # 匹配TTL走TTL Port 395 | iptables -t nat -A KOOLPROXY_ACT -p tcp -m ttl --ttl-eq 188 -j REDIRECT --to 3001 396 | # 不匹配TTL走正常Port 397 | iptables -t nat -A KOOLPROXY_ACT -p tcp -j REDIRECT --to 3000 398 | # 局域网地址不走KP 399 | iptables -t nat -A KOOLPROXY -m set --match-set white_kp_list dst -j RETURN 400 | # 生成对应CHAIN 401 | iptables -t nat -N KP_HTTP 402 | iptables -t nat -A KP_HTTP -p tcp -m multiport --dport 80 -j KOOLPROXY_ACT 403 | iptables -t nat -N KP_HTTPS 404 | iptables -t nat -A KP_HTTPS -p tcp -m multiport --dport 80,443 -j KOOLPROXY_ACT 405 | iptables -t nat -N KP_BLOCK_HTTP 406 | iptables -t nat -A KP_BLOCK_HTTP -p tcp -m multiport --dport 80 -m set --match-set black_koolproxy dst -j KOOLPROXY_ACT 407 | iptables -t nat -N KP_BLOCK_HTTPS 408 | iptables -t nat -A KP_BLOCK_HTTPS -p tcp -m multiport --dport 80,443 -m set --match-set black_koolproxy dst -j KOOLPROXY_ACT 409 | iptables -t nat -N KP_ALL_PORT 410 | iptables -t nat -A KP_ALL_PORT -p tcp -j KOOLPROXY_ACT 411 | # 局域网控制 412 | lan_acess_control 413 | # 剩余流量转发到缺省规则定义的链中 414 | [ "$koolproxyR_mode_enable" == "1" ] && iptables -t nat -A KOOLPROXY -p tcp -j $(get_action_chain $koolproxyR_mode) 415 | [ ! "$koolproxyR_mode_enable" == "1" ] && iptables -t nat -A KOOLPROXY -p tcp -j $(get_base_mode $koolproxyR_base_mode) 416 | # 重定所有流量到 KOOLPROXY 417 | # HTTP过滤模式和视频模式 418 | PR_NU=`iptables -nvL PREROUTING -t nat |sed 1,2d | sed -n '/prerouting_rule/='` 419 | if [[ "$PR_NU" == "" ]]; then 420 | PR_NU=1 421 | else 422 | let PR_NU+=1 423 | fi 424 | # [ "$koolproxyR_mode" == "1" ] || [ "$koolproxyR_mode" == "3" ] && iptables -t nat -I PREROUTING "$PR_NU" -p tcp -j KOOLPROXY 425 | iptables -t nat -I PREROUTING "$PR_NU" -p tcp -j KOOLPROXY 426 | # ipset 黑名单模式 427 | # [ "$koolproxyR_mode" == "2" ] && iptables -t nat -I PREROUTING "$PR_NU" -p tcp -m set --match-set black_koolproxy dst -j KOOLPROXY 428 | } 429 | 430 | dns_takeover(){ 431 | ss_chromecast=`uci -q get shadowsocks.@global[0].dns_53` 432 | ss_enable=`iptables -t nat -L PREROUTING | grep SHADOWSOCKS |wc -l` 433 | [ -z "$ss_chromecast" ] && ss_chromecast=0 434 | lan_ipaddr=`uci get network.lan.ipaddr` 435 | #chromecast=`iptables -t nat -L PREROUTING -v -n|grep "dpt:53"` 436 | chromecast_nu=`iptables -t nat -L PREROUTING -v -n --line-numbers|grep "dpt:53"|awk '{print $1}'` 437 | is_right_lanip=`iptables -t nat -L PREROUTING -v -n --line-numbers|grep "dpt:53" |grep "$lan_ipaddr"` 438 | if [[ "$koolproxyR_mode_enable" == "1" ]]; then 439 | if [[ "$koolproxyR_mode" == "3" ]]; then 440 | if [ -z "$chromecast_nu" ]; then 441 | echo_date 黑名单模式开启DNS劫持 442 | iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to $lan_ipaddr >/dev/null 2>&1 443 | else 444 | if [ -z "$is_right_lanip" ]; then 445 | echo_date 黑名单模式开启DNS劫持 446 | iptables -t nat -D PREROUTING $chromecast_nu >/dev/null 2>&1 447 | iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to $lan_ipaddr >/dev/null 2>&1 448 | else 449 | echo_date DNS劫持规则已经添加,跳过~ 450 | fi 451 | fi 452 | else 453 | if [[ "$ss_chromecast" != "1" ]] || [["$ss_enable" -eq 0 ]]; then 454 | if [ -n "$chromecast_nu" ]; then 455 | echo_date 全局过滤模式下删除DNS劫持 456 | iptables -t nat -D PREROUTING $chromecast_nu >/dev/null 2>&1 457 | fi 458 | fi 459 | fi 460 | else 461 | if [[ "$koolproxyR_base_mode" == "2" ]]; then 462 | if [ -z "$chromecast_nu" ]; then 463 | echo_date 黑名单模式开启DNS劫持 464 | iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to $lan_ipaddr >/dev/null 2>&1 465 | else 466 | if [ -z "$is_right_lanip" ]; then 467 | echo_date 黑名单模式开启DNS劫持 468 | iptables -t nat -D PREROUTING $chromecast_nu >/dev/null 2>&1 469 | iptables -t nat -A PREROUTING -p udp --dport 53 -j DNAT --to $lan_ipaddr >/dev/null 2>&1 470 | else 471 | echo_date DNS劫持规则已经添加,跳过~ 472 | fi 473 | fi 474 | else 475 | if [[ "$ss_chromecast" != "1" ]] || [["$ss_enable" -eq 0 ]]; then 476 | if [ -n "$chromecast_nu" ]; then 477 | echo_date 全局过滤模式下删除DNS劫持 478 | iptables -t nat -D PREROUTING $chromecast_nu >/dev/null 2>&1 479 | fi 480 | fi 481 | fi 482 | fi 483 | } 484 | 485 | detect_cert(){ 486 | if [ ! -f $KP_DIR/data/private/ca.key.pem -o ! -f $KP_DIR/data/certs/ca.crt ]; then 487 | echo_date 开始生成koolproxyR证书,用于https过滤! 488 | cd $KP_DIR/data && sh gen_ca.sh 489 | fi 490 | } 491 | 492 | set_lock(){ 493 | exec 1000>"$LOCK_FILE" 494 | flock -x 1000 495 | } 496 | 497 | unset_lock(){ 498 | flock -u 1000 499 | rm -rf "$LOCK_FILE" 500 | } 501 | 502 | my_rule_diy(){ 503 | if [ -f /koolshare/scripts/KoolProxyR_my_rule_diy.sh ]; then 504 | chmod 777 /koolshare/scripts/KoolProxyR_my_rule_diy.sh 505 | sh /koolshare/scripts/KoolProxyR_my_rule_diy.sh mydiy 506 | fi 507 | } 508 | 509 | new_kpr_version(){ 510 | url_version="https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/version" 511 | wget --no-check-certificate --timeout=8 -qO - $url_version > /tmp/version 512 | koolproxyR_installing_version=`cat /tmp/version | sed -n '1p'` 513 | echo_date 获取到最新在线版本为:$koolproxyR_installing_version! 514 | dbus set koolproxyR_new_install_version=$koolproxyR_installing_version 515 | rm -rf /tmp/version 516 | echo_date 请和koolproxy二选一,因为我会打开koolproxy开关来,骗过V2RAY 517 | } 518 | 519 | ss_v2ray_game_restrt(){ 520 | SS_ENABLE=`dbus get ss_basic_enable` 521 | V2_ENABLE=`dbus get v2ray_basic_enable` 522 | KG_ENABLE=`dbus get koolgame_basic_enable` 523 | koolclash_ENABLE=`dbus get koolclash_enable` 524 | if [[ "$SS_ENABLE" == "1" ]]; then 525 | echo_date ================== 以下为SS日志 ================= 526 | /koolshare/ss/ssstart.sh restart >> /tmp/upload/kpr_log.txt 527 | echo_date ================== 以上为SS日志 ================= 528 | echo_date 检测到SS开启,重启了你的SS插件以适应KPR的开启与关闭! 529 | fi 530 | if [[ "$V2_ENABLE" == "1" ]]; then 531 | # 顺带检查到,自启服务脚本写错了,干脆我写成控制文件 532 | echo_date ================== 以下为V2RAY日志 ================= 533 | /koolshare/scripts/v2ray_config.sh restart 534 | echo_date ================== 以上为V2RAY日志 ================= 535 | echo_date 检测到V2RAY开启,重启了你的V2RAY插件以适应KPR的开启与关闭! 536 | fi 537 | if [[ "$KG_ENABLE" == "1" ]]; then 538 | # 顺带检查到,自启服务脚本写错了,干脆我写成控制文件 539 | echo_date ================== 以下为koolgame日志 ================= 540 | /koolshare/scripts/koolgame_config.sh restart 541 | echo_date ================== 以上为koolgame日志 ================= 542 | echo_date 检测到koolgame开启,重启了你的koolgame插件以适应KPR的开启与关闭! 543 | fi 544 | if [[ "$koolclash_ENABLE" == "1" ]]; then 545 | # echo_date ================== 以下为koolclash日志 ================= 546 | # /koolshare/scripts/koolclash_control.sh stop 547 | # dbus set koolclash_enable=1 548 | # /koolshare/scripts/koolclash_control.sh start 549 | # echo_date ================== 以上为koolclash日志 ================= 550 | # echo_date 检测到koolclash开启,重启了你的koolclash插件以适应KPR的开启与关闭! 551 | echo_date 检测到koolclash开启,等koolclash兼容KP后开放此功能! 552 | fi 553 | } 554 | 555 | case $1 in 556 | start) 557 | set_lock 558 | echo_date ================== koolproxyR启用 ================= 559 | rm -rf /tmp/upload/user.txt && ln -sf $KSROOT/koolproxyR/data/rules/user.txt /tmp/upload/user.txt 560 | my_rule_diy 561 | detect_cert 562 | start_koolproxy 563 | add_ipset_conf && restart_dnsmasq 564 | creat_ipset 565 | add_white_black_ip 566 | load_nat 567 | dns_takeover 568 | write_nat_start 569 | write_reboot_job 570 | echo_date ================================================= 571 | unset_lock 572 | new_kpr_version 573 | # 伪装KP的开启,骗过V2RAY 574 | dbus set koolproxy_enable=1 575 | ss_v2ray_game_restrt 576 | ;; 577 | restart) 578 | set_lock 579 | # now stop 580 | echo_date ================== 关闭 ================= 581 | rm -rf /tmp/upload/user.txt && ln -sf $KSROOT/koolproxyR/data/rules/user.txt /tmp/upload/user.txt 582 | remove_reboot_job 583 | del_dns_takeover 584 | remove_ipset_conf 585 | remove_nat_start 586 | flush_nat 587 | stop_koolproxy 588 | # now start 589 | echo_date ================== koolproxyR启用 ================= 590 | my_rule_diy 591 | detect_cert 592 | start_koolproxy 593 | add_ipset_conf && restart_dnsmasq 594 | creat_ipset 595 | add_white_black_ip 596 | load_nat 597 | dns_takeover 598 | creat_start_up 599 | write_nat_start 600 | write_reboot_job 601 | echo_date koolproxyR启用成功,请等待日志窗口自动关闭,页面会自动刷新... 602 | echo_date ================================================= 603 | unset_lock 604 | new_kpr_version 605 | # 伪装KP的开启,骗过V2RAY 606 | dbus set koolproxy_enable=1 607 | ss_v2ray_game_restrt 608 | ;; 609 | stop) 610 | set_lock 611 | remove_reboot_job 612 | del_dns_takeover 613 | remove_ipset_conf && restart_dnsmasq 614 | remove_nat_start 615 | flush_nat 616 | stop_koolproxy 617 | unset_lock 618 | new_kpr_version 619 | # 伪装KP的关闭,骗过V2RAY 620 | dbus set koolproxy_enable=0 621 | ss_v2ray_game_restrt 622 | ;; 623 | *) 624 | set_lock 625 | flush_nat 626 | creat_ipset 627 | add_white_black_ip 628 | load_nat 629 | dns_takeover 630 | unset_lock 631 | new_kpr_version 632 | ss_v2ray_game_restrt 633 | ;; 634 | esac 635 | -------------------------------------------------------------------------------- /koolproxyR/scripts/KoolProxyR_cert.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export KSROOT=/koolshare 4 | source $KSROOT/scripts/base.sh 5 | eval `dbus export koolproxyR_` 6 | alias echo_date='echo 【$(date +%Y年%m月%d日\ %X)】:' 7 | LOG_FILE=/tmp/upload/kpr_log.txt 8 | CA_DIR=/tmp/upload/CA/ 9 | echo "" > $LOG_FILE 10 | 11 | backup() { 12 | echo_date "开始备份证书!" 13 | mkdir -p $KSROOT/webs/files 14 | 15 | if [ ! -f $KSROOT/koolproxyR/data/private/ca.key.pem ]; then 16 | echo_date "证书文件:$KSROOT/koolproxyR/data/private/ca.key.pem 不存在!" 17 | file_found=0 18 | fi 19 | if [ ! -f $KSROOT/koolproxyR/data/private/base.key.pem ]; then 20 | echo_date "证书文件:$KSROOT/koolproxyR/data/private/base.key.pem 不存在!" 21 | file_found=0 22 | fi 23 | if [ ! -f $KSROOT/koolproxyR/data/certs/ca.crt ]; then 24 | echo_date "$KSROOT/koolproxyR/data/certs/ca.crt 不存在!" 25 | file_found=0 26 | fi 27 | 28 | if [[ "$file_found" == "0" ]]; then 29 | echo_date "退出备份!" 30 | echo XU6J03M6 31 | exit 1 32 | fi 33 | 34 | cd $KSROOT/koolproxyR/data 35 | tar czf /tmp/upload/koolproxyca.tar.gz private/ca.key.pem private/base.key.pem certs/ca.crt 36 | cp /tmp/upload/koolproxyca.tar.gz $KSROOT/webs/files/koolproxyca.tar.gz 37 | echo_date "证书备份完毕" 38 | } 39 | 40 | backup_0() { 41 | echo_date "开始生成 .0 证书!" 42 | mkdir -p $KSROOT/webs/files 43 | 44 | if [ ! -f $KSROOT/koolproxyR/data/certs/ca.crt ]; then 45 | echo_date "$KSROOT/koolproxyR/data/certs/ca.crt 不存在!" 46 | file_found=0 47 | fi 48 | 49 | if [[ "$file_found" == "0" ]]; then 50 | echo_date "退出生成 .0 根证书!" 51 | echo XU6J03M6 52 | exit 1 53 | fi 54 | # 生成证书的hash名字 55 | ca_0_hash=$(openssl x509 -subject_hash_old -in $KSROOT/koolproxyR/data/certs/ca.crt|head -1).0 56 | cp $KSROOT/koolproxyR/data/certs/ca.crt $KSROOT/webs/files/$ca_0_hash 57 | # 生成.0根证书 58 | openssl x509 -text -in cp $KSROOT/koolproxyR/data/certs/ca.crt -out /dev/null >> $KSROOT/webs/files/$ca_0_hash 59 | cd $KSROOT/webs/files 60 | tar czf ca_0.tar.gz $ca_0_hash 61 | # zip ca_0.zip $ca_0_hash >/dev/null 62 | echo_date " .0根证书生成成功,名字为 $ca_0_hash" 63 | } 64 | 65 | stop_koolproxy(){ 66 | echo_date 关闭koolproxy主进程... 67 | kill -9 `pidof koolproxy` >/dev/null 2>&1 68 | killall koolproxy >/dev/null 2>&1 69 | } 70 | 71 | restart_koolproxy(){ 72 | 73 | echo_date 重启koolproxy主进程! 74 | [ "$koolproxyR_mode" == "3" ] && EXT_ARG="-e" || EXT_ARG="" 75 | cd $KSROOT/koolproxyR && koolproxyR $EXT_ARG --mark -d 76 | } 77 | 78 | restore() { 79 | if [ -f /tmp/upload/koolproxyCA.tar.gz ]; then 80 | echo_date "开始恢复证书!" 81 | mkdir -p $CA_DIR 82 | cp /tmp/upload/koolproxyCA.tar.gz $CA_DIR 83 | cd $CA_DIR 84 | tar xzf $CA_DIR/koolproxyCA.tar.gz 85 | else 86 | echo_date "没有找到上传的证书备份文件!退出恢复!" 87 | echo XU6J03M6 88 | exit 1 89 | fi 90 | 91 | cp -rf $CA_DIR/* $KSROOT/koolproxyR/data 92 | rm -rf $CA_DIR 93 | rm -f /tmp/upload/koolproxyCA.tar.gz 94 | rm -rf /tmp/upload/koolproxyca.tar.gz 95 | rm -rf $KSROOT/koolproxyR/data/koolproxyCA.tar.gz 96 | 97 | stop_koolproxy 98 | sleep 1 99 | restart_koolproxy 100 | echo_date "证书恢复成功!" 101 | } 102 | 103 | case $2 in 104 | 1) 105 | #备份证书 106 | backup >> $LOG_FILE 107 | http_response "$1" 108 | echo XU6J03M6 >> $LOG_FILE 109 | sleep 10 110 | rm -rf /koolshare/webs/files/koolproxyca.tar.gz 111 | rm -rf /tmp/upload/koolproxyca.tar.gz 112 | ;; 113 | 2) 114 | #恢复证书 115 | restore >> $LOG_FILE 116 | $KSROOT/koolproxyR/kpr_config.sh restart 117 | http_response "$1" 118 | echo XU6J03M6 >> $LOG_FILE 119 | ;; 120 | 3) 121 | #生成.0根证书 122 | backup_0 >> $LOG_FILE 123 | http_response "$1" 124 | echo XU6J03M6 >> $LOG_FILE 125 | sleep 10 126 | rm -rf $KSROOT/webs/files/$ca_0_hash 127 | rm -rf $KSROOT/webs/files/ca_0.tar.gz 128 | ;; 129 | esac 130 | 131 | -------------------------------------------------------------------------------- /koolproxyR/scripts/KoolProxyR_check_chain.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | # 3 | # Copyright (C) 2015 OpenWrt-dist 4 | # Copyright (C) 2018 houzi- 5 | # 6 | # This is free software, licensed under the GNU General Public License v3. 7 | # See /LICENSE for more information. 8 | # 9 | 10 | export KSROOT=/koolshare 11 | source $KSROOT/scripts/base.sh 12 | source $KSROOT/bin/helper.sh 13 | 14 | KPR_ENABLE=`dbus get koolproxyR_enable` 15 | SS_ENABLE=`dbus get ss_basic_enable` 16 | V2_ENABLE=`dbus get v2ray_basic_enable` 17 | KG_ENABLE=`dbus get koolgame_basic_enable` 18 | 19 | KP_NUMBER=`iptables -t nat -L PREROUTING | sed -e '1,2d' | sed -n '/KOOLPROXY/=' | sed -n '1p'` 20 | 21 | SS_DUPLICATE=`iptables -t nat -L PREROUTING | sed -e '1,2d' | grep SHADOWSOCKS | wc -l` 22 | SS_NUMBER=`iptables -t nat -L PREROUTING | sed -e '1,2d' | sed -n '/SHADOWSOCKS/=' | sed -n '1p'` 23 | [ "$SS_ENABLE" == "1" ] && export number="1" 24 | 25 | V2_DUPLICATE=`iptables -t nat -L PREROUTING | sed -e '1,2d' | grep V2RAY | wc -l` 26 | V2_NUMBER=`iptables -t nat -L PREROUTING | sed -e '1,2d' | sed -n '/V2RAY/=' | sed -n '1p'` 27 | [ "$V2_ENABLE" == "1" ] && export number="2" 28 | 29 | KG_DUPLICATE=`iptables -t nat -L PREROUTING | sed -e '1,2d' | grep KOOLGAME | wc -l` 30 | KG_NUMBER=`iptables -t nat -L PREROUTING | sed -e '1,2d' | sed -n '/KOOLGAME/=' | sed -n '1p'` 31 | [ "$KG_ENABLE" == "1" ] && export number="3" 32 | 33 | # kpr运行状态判断 34 | status=`ps | grep koolproxy | grep -v grep | wc -l` 35 | if [[ "$status" == "0" ]]; then 36 | KPR_NOT_RUNNING=1 37 | export number="4" 38 | fi 39 | 40 | [ ! "$KPR_ENABLE" == "1" ] && return 0 || continue 41 | 42 | case $number in 43 | 1) 44 | [ "$KP_NUMBER" -gt "$SS_NUMBER" -o "$SS_DUPLICATE" -ge "2" ] && /koolshare/ss/ssstart.sh restart >> /tmp/upload/kpr_log.txt 2>&1 45 | ;; 46 | 2) 47 | [ "$KP_NUMBER" -gt "$V2_NUMBER" -o "$V2_DUPLICATE" -ge "2" ] && /koolshare/scripts/v2ray_config.sh restart 48 | ;; 49 | 3) 50 | [ "$KP_NUMBER" -gt "$KG_NUMBER" -o "$KG_DUPLICATE" -ge "2" ] && /koolshare/scripts/koolgame_config.sh restart 51 | ;; 52 | 4) 53 | [ "$KPR_ENABLE" == "1" -a "$KPR_NOT_RUNNING" == "1" ] && sh $KSROOT/koolproxyR/kpr_config.sh restart 54 | ;; 55 | esac 56 | -------------------------------------------------------------------------------- /koolproxyR/scripts/KoolProxyR_config.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | alias echo_date1='echo $(date +%Y年%m月%d日\ %X)' 4 | export KSROOT=/koolshare 5 | source $KSROOT/scripts/base.sh 6 | eval `dbus export koolproxyR_` 7 | 8 | echo "" > /tmp/upload/kpr_log.txt 9 | sleep 1 10 | case $2 in 11 | restart) 12 | if [[ "$koolproxyR_enable" == "1" ]]; then 13 | sh /koolshare/koolproxyR/kpr_config.sh restart >> /tmp/upload/kpr_log.txt 2>&1 14 | else 15 | sh /koolshare/koolproxyR/kpr_config.sh stop >> /tmp/upload/kpr_log.txt 2>&1 16 | fi 17 | echo XU6J03M6 >> /tmp/upload/kpr_log.txt 18 | http_response "$1" 19 | ;; 20 | esac -------------------------------------------------------------------------------- /koolproxyR/scripts/KoolProxyR_debug.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export KSROOT=/koolshare 4 | source $KSROOT/scripts/base.sh 5 | SOFT_DIR=/koolshare 6 | KP_DIR=$SOFT_DIR/koolproxyR 7 | eval `dbus export koolproxyR_` 8 | alias echo_date='echo 【$(date +%Y年%m月%d日\ %X)】:' 9 | LOG_FILE=/tmp/upload/kpr_log.txt 10 | echo "" > $LOG_FILE 11 | 12 | kill_kpr() { 13 | echo_date 关闭koolproxyR主进程... 14 | kill -9 `pidof koolproxy` >/dev/null 2>&1 15 | killall koolproxy >/dev/null 2>&1 16 | kpr_status 17 | } 18 | 19 | kpr_status() { 20 | # kpr运行状态判断 21 | sleep 1 22 | status=`ps | grep koolproxy | grep -v grep | wc -l` 23 | if [[ "$status" == "0" ]]; then 24 | echo_date koolproxyR主进程已关闭... 25 | else 26 | echo_date koolproxyR主进程已启动... 27 | fi 28 | } 29 | 30 | kpr_debug_0() { 31 | dbus set koolproxyR_debug_0=1 32 | koolproxyR_debug_status=`ps | grep koolproxy | grep 3001 | cut -d S -f2 | sed -n '1p'` 33 | if [[ "$koolproxyR_debug_status" == "" ]]; then 34 | echo_date "检测到kpr未运行,退出调试" 35 | exit 3 36 | fi 37 | echo "$koolproxyR_debug_status >> /tmp/upload/kpr_log.txt" > /tmp/upload/kpr_status.sh 38 | koolproxyR_debug_0=`dbus get koolproxyR_debug_0` 39 | while [ $koolproxyR_debug_0 = 1 ];do 40 | user_txt_md5_new=`md5sum /koolshare/koolproxyR/data/rules/user.txt | cut -d \ -f1` 41 | if [[ "$user_txt_md5_new" != "$user_txt_md5_old" ]]; then 42 | echo_date 关闭koolproxyR主进程... 43 | kill -9 `pidof koolproxy` >/dev/null 2>&1 44 | killall koolproxy >/dev/null 2>&1 45 | kpr_status 46 | cd $KP_DIR 47 | nohup sh /tmp/upload/kpr_status.sh >/dev/null 2>&1 48 | echo_date "检测到user.txt规则已改变,已重启kpr" 49 | dbus set koolproxyR_custom_rule=`cat /koolshare/koolproxyR//data/rules/user.txt | base64_encode` 50 | user_txt_md5_old=`md5sum /koolshare/koolproxyR/data/rules/user.txt | cut -d \ -f1` 51 | kpr_status 52 | fi 53 | koolproxyR_debug_0=`dbus get koolproxyR_debug_0` 54 | done 55 | } 56 | 57 | kpr_debug_1() { 58 | dbus set koolproxyR_debug_0=0 59 | kill_kpr 60 | echo_date "kpr debug-info模式启动" 61 | koolproxy -l 1 --ttl 188 --ttlport 3001 --ipv6 62 | echo_date "如果您需要查看https流量,请在【访问控制】中指定【HTTP/HTTPS双过滤模式】" 63 | kpr_status 64 | } 65 | 66 | kpr_debug_2() { 67 | dbus set koolproxyR_debug_0=0 68 | kill_kpr 69 | echo_date "kpr debug-ad模式启动" 70 | koolproxy -l 2 --ttl 188 --ttlport 3001 --ipv6 71 | kpr_status 72 | } 73 | 74 | kpr_debug_3() { 75 | dbus set koolproxyR_debug_0=0 76 | kill_kpr 77 | echo_date "kpr debug-全调试模式启动" 78 | koolproxy -l 0 --ttl 188 --ttlport 3001 --ipv6 79 | kpr_status 80 | } 81 | 82 | kpr_debug_4() { 83 | dbus set koolproxyR_debug_0=0 84 | kill_kpr 85 | echo_date "关闭dbug调试" 86 | cd $KP_DIR && koolproxy -d --ttl 188 --ttlport 3001 --ipv6 87 | kpr_status 88 | } 89 | 90 | # $2 表示传入的第2个参数 例如 debug.sh abc 123 中的123 $1 就是 abc 91 | case $2 in 92 | 0) 93 | kpr_debug_0 >> $LOG_FILE 94 | http_response "$1" 95 | ;; 96 | 1) 97 | kpr_debug_1 >> $LOG_FILE 98 | http_response "$1" 99 | ;; 100 | 2) 101 | kpr_debug_2 >> $LOG_FILE 102 | http_response "$1" 103 | ;; 104 | 3) 105 | kpr_debug_3 >> $LOG_FILE 106 | http_response "$1" 107 | ;; 108 | 4) 109 | kpr_debug_4 >> $LOG_FILE 110 | http_response "$1" 111 | echo XU6J03M6 >> /tmp/upload/kpr_log.txt 112 | ;; 113 | esac 114 | -------------------------------------------------------------------------------- /koolproxyR/scripts/KoolProxyR_getarp.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | export KSROOT=/koolshare 4 | source $KSROOT/scripts/base.sh 5 | arp=`arp | grep br-lan | grep -v ? |sed 's// /g'| sed 's/ (/#g'` 6 | 7 | if [ -n "$arp" ]; then 8 | dbus set koolproxyR_arp="$arp" 9 | fi 10 | 11 | http_response "$arp" 12 | 13 | 14 | 15 | 16 | -------------------------------------------------------------------------------- /koolproxyR/scripts/KoolProxyR_rule_update.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export KSROOT=/koolshare 3 | source $KSROOT/scripts/base.sh 4 | eval `dbus export koolproxyR_` 5 | alias echo_date='echo $(date +%Y年%m月%d日\ %X):' 6 | 7 | url_cjx="https://dev.tencent.com/u/shaoxia1991/p/cjxlist/git/raw/master/cjx-annoyance.txt" 8 | url_kp="https://dev.tencent.com/u/shaoxia1991/p/koolproxyR_rule_list/git/raw/master/kp.dat" 9 | url_kp_md5="https://dev.tencent.com/u/shaoxia1991/p/koolproxyR_rule_list/git/raw/master/kp.dat.md5" 10 | # url_koolproxy="https://kprules.b0.upaiyun.com/koolproxy.txt" 11 | # 原网址跳转到https://kprule.com/koolproxy.txt跳转到又拍云,为了节省时间,还是直接去又拍云下载吧!避免某些时候跳转不过去 12 | url_easylist="https://easylist-downloads.adblockplus.org/easylistchina.txt" 13 | url_yhosts="https://dev.tencent.com/u/shaoxia1991/p/yhosts/git/raw/master/hosts" 14 | url_yhosts1="https://dev.tencent.com/u/shaoxia1991/p/yhosts/git/raw/master/data/tvbox.txt" 15 | kpr_our_rule="https://dev.tencent.com/u/shaoxia1991/p/koolproxyR_rule_list/git/raw/master/kpr_our_rule.txt" 16 | # 检测是否开启fanboy全功能版本 17 | if [[ "$koolproxyR_fanboy_all_rules" == "1" ]]; then 18 | url_fanboy="https://secure.fanboy.co.nz/r/fanboy-complete.txt" 19 | dbus set koolproxyR_fanboy_rules=1 20 | else 21 | url_fanboy="https://secure.fanboy.co.nz/fanboy-annoyance.txt" 22 | fi 23 | update_rule(){ 24 | echo_date ======================================================================================================= 25 | echo_date 开始更新koolproxyR的规则,请等待... 26 | # 赋予文件夹权限 27 | chmod -R 777 /koolshare/koolproxyR/data/rules 28 | # update 中国简易列表 2.0 29 | if [[ "$koolproxyR_basic_easylist_update" == "1" ]]; then 30 | echo_date " ---------------------------------------------------------------------------------------" 31 | # wget --no-check-certificate --timeout=8 -qO - $url_easylist > /tmp/easylistchina.txt 32 | for i in {1..5}; do 33 | wget -4 -a /tmp/upload/kpr_log.txt -O /tmp/easylistchina.txt $url_easylist 34 | easylistchina_rule_nu_local=`grep -E -v "^!" /tmp/easylistchina.txt | wc -l` 35 | if [[ "$easylistchina_rule_nu_local" -gt 5000 ]]; then 36 | break 37 | else 38 | echo_date easylistchina规则文件下载失败 39 | koolproxyR_basic_easylist_failed=1 40 | fi 41 | done 42 | for i in {1..5}; do 43 | wget -4 -a /tmp/upload/kpr_log.txt -O /tmp/cjx-annoyance.txt $url_cjx 44 | cjx_rule_nu_local=`grep -E -v "^!" /tmp/cjx-annoyance.txt | wc -l` 45 | if [[ "$cjx_rule_nu_local" -gt 500 ]]; then 46 | break 47 | else 48 | echo_date cjx-annoyance规则文件下载失败 49 | koolproxyR_basic_easylist_failed=1 50 | fi 51 | done 52 | for i in {1..5}; do 53 | wget -4 -a /tmp/upload/kpr_log.txt -O $KSROOT/koolproxyR/data/rules/kpr_our_rule.txt $kpr_our_rule 54 | kpr_our_rule_nu_local=`grep -E -v "^!" $KSROOT/koolproxyR/data/rules/kpr_our_rule.txt | wc -l` 55 | if [[ "$kpr_our_rule_nu_local" -gt 500 ]]; then 56 | break 57 | else 58 | echo_date kpr_our_rule规则文件下载失败 59 | koolproxyR_basic_easylist_failed=1 60 | fi 61 | done 62 | # expr 进行运算,将统计到的规则条数相加 如果条数大于 10000 条就说明下载完毕 63 | easylistchina_rule_local=`expr $kpr_our_rule_nu_local + $cjx_rule_nu_local + $easylistchina_rule_nu_local` 64 | cat /tmp/cjx-annoyance.txt >> /tmp/easylistchina.txt 65 | rm /tmp/cjx-annoyance.txt 66 | easylist_rules_local=`cat $KSROOT/koolproxyR/data/rules/easylistchina.txt | sed -n '3p'|awk '{print $3,$4}'` 67 | easylist_rules_local1=`cat /tmp/easylistchina.txt | sed -n '3p'|awk '{print $3,$4}'` 68 | 69 | echo_date KPR主规则的本地版本号: $easylist_rules_local 70 | echo_date KPR主规则的在线版本号: $easylist_rules_local1 71 | if [[ "$koolproxyR_basic_easylist_failed" != "1" ]]; then 72 | if [[ "$easylistchina_rule_local" -gt 10000 ]]; then 73 | if [[ "$easylist_rules_local" != "$easylist_rules_local1" ]]; then 74 | echo_date 检测到 KPR主规则 已更新,现在开始更新... 75 | echo_date 将临时的KPR主规则文件移动到指定位置 76 | mv /tmp/easylistchina.txt $KSROOT/koolproxyR/data/rules/easylistchina.txt 77 | koolproxyR_https_ChinaList=1 78 | else 79 | echo_date 检测到 KPR主规则本地版本号和在线版本号相同,那还更新个毛啊! 80 | fi 81 | fi 82 | else 83 | echo_date KPR主规则文件下载失败! 84 | fi 85 | else 86 | echo_date 未打开 KPR主规则 的更新开关! 87 | fi 88 | 89 | # update 补充规则 90 | if [[ "$koolproxyR_basic_replenish_update" == "1" ]]; then 91 | echo_date " ---------------------------------------------------------------------------------------" 92 | for i in {1..5}; do 93 | wget -4 -a /tmp/upload/kpr_log.txt -O /tmp/yhosts.txt $url_yhosts 94 | wget -4 -a /tmp/upload/kpr_log.txt -O /tmp/tvbox.txt $url_yhosts1 95 | cat /tmp/tvbox.txt >> /tmp/yhosts.txt 96 | replenish_rules_local=`cat $KSROOT/koolproxyR/data/rules/yhosts.txt | sed -n '2p' | cut -d "=" -f2` 97 | replenish_rules_local1=`cat /tmp/yhosts.txt | sed -n '2p' | cut -d "=" -f2` 98 | mobile_nu_local=`grep -E -v "^!" /tmp/yhosts.txt | wc -l` 99 | echo_date 补充规则本地版本号: $replenish_rules_local 100 | echo_date 补充规则在线版本号: $replenish_rules_local1 101 | if [[ "$mobile_nu_local" -gt 5000 ]]; then 102 | if [[ "$replenish_rules_local" != "$replenish_rules_local1" ]]; then 103 | echo_date 将临时文件覆盖到原始 补充规则 文件 104 | mv /tmp/yhosts.txt $KSROOT/koolproxyR/data/rules/yhosts.txt 105 | koolproxyR_https_mobile=1 106 | break 107 | else 108 | echo_date 检测到 补充规则 本地版本号和在线版本号相同,那还更新个毛啊! 109 | fi 110 | else 111 | echo_date 补充规则文件下载失败! 112 | fi 113 | done 114 | else 115 | echo_date 未打开 补充规则 的更新开关! 116 | fi 117 | 118 | # update 视频规则 119 | if [[ "$koolproxyR_basic_video_update" == "1" ]] || [[ -n "$1" ]]; then 120 | echo_date " ---------------------------------------------------------------------------------------" 121 | for i in {1..5}; do 122 | kpr_video_md5=`md5sum $KSROOT/koolproxyR/data/rules/kp.dat | awk '{print $1}'` 123 | wget -4 -a /tmp/upload/kpr_log.txt -O /tmp/kp.dat.md5 $url_kp_md5 124 | kpr_video_new_md5=`cat /tmp/kp.dat.md5 | sed -n '1p'` 125 | echo_date 远程视频规则md5:$kpr_video_new_md5 126 | echo_date 您本地视频规则md5:$kpr_video_md5 127 | 128 | if [[ "$kpr_video_md5" != "$kpr_video_new_md5" ]]; then 129 | echo_date 检测到新版视频规则.开始更新.......... 130 | wget -4 -a /tmp/upload/kpr_log.txt -O /tmp/kp.dat $url_kp 131 | kpr_video_download_md5=`md5sum /tmp/kp.dat | awk '{print $1}'` 132 | echo_date 您下载的视频规则md5:$kpr_video_download_md5 133 | if [[ "$kpr_video_download_md5" == "$kpr_video_new_md5" ]]; then 134 | echo_date 将临时文件覆盖到原始 视频规则 文件 135 | mv /tmp/kp.dat $KSROOT/koolproxyR/data/rules/kp.dat 136 | mv /tmp/kp.dat.md5 $KSROOT/koolproxyR/data/rules/kp.dat.md5 137 | break 138 | else 139 | echo_date 视频规则md5校验不通过... 140 | fi 141 | else 142 | echo_date 检测到 视频规则 本地版本号和在线版本号相同,那还更新个毛啊! 143 | fi 144 | done 145 | else 146 | echo_date 未打开 视频规则 的更新开关! 147 | fi 148 | 149 | # update fanboy规则 150 | if [[ "$koolproxyR_basic_fanboy_update" == "1" ]]; then 151 | echo_date " ---------------------------------------------------------------------------------------" 152 | for i in {1..5}; do 153 | wget -4 -a /tmp/upload/kpr_log.txt -O /tmp/fanboy-annoyance.txt $url_fanboy 154 | # wget --no-check-certificate --timeout=8 -qO - $url_fanboy > /tmp/fanboy-annoyance.txt 155 | # 检测是否开启fanboy 全规则版本 156 | if [[ "$koolproxyR_fanboy_all_rules" == "1" ]]; then 157 | fanboy_rules_local=`cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | sed -n '4p'|awk '{print $3,$4}'` 158 | fanboy_rules_local1=`cat /tmp/fanboy-annoyance.txt | sed -n '4p'|awk '{print $3,$4}'` 159 | else 160 | fanboy_rules_local=`cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | sed -n '3p'|awk '{print $3,$4}'` 161 | fanboy_rules_local1=`cat /tmp/fanboy-annoyance.txt | sed -n '3p'|awk '{print $3,$4}'` 162 | fi 163 | fanboy_nu_local=`grep -E -v "^!" /tmp/fanboy-annoyance.txt | wc -l` 164 | 165 | echo_date fanboy规则本地版本号: $fanboy_rules_local 166 | echo_date fanboy规则在线版本号: $fanboy_rules_local1 167 | if [[ "$fanboy_nu_local" -gt 15000 ]]; then 168 | if [[ "$fanboy_rules_local" != "$fanboy_rules_local1" ]]; then 169 | echo_date 检测到新版本 fanboy规则 列表,开始更新... 170 | echo_date 将临时文件覆盖到原始 fanboy规则 文件 171 | mv /tmp/fanboy-annoyance.txt $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 172 | koolproxyR_https_fanboy=1 173 | break 174 | else 175 | echo_date 检测到 fanboy规则 本地版本号和在线版本号相同,那还更新个毛啊! 176 | fi 177 | else 178 | echo_date fanboy规则 文件下载失败! 179 | fi 180 | done 181 | else 182 | echo_date 未打开 fanboy规则 的更新开关! 183 | fi 184 | 185 | rm -rf /tmp/fanboy-annoyance.txt 186 | rm -rf /tmp/yhosts.txt 187 | rm -rf /tmp/easylistchina.txt 188 | 189 | if [[ "$koolproxyR_https_fanboy" == "1" ]]; then 190 | echo_date 正在优化 fanboy规则。。。。。 191 | # 删除导致KP崩溃的规则 192 | # 听说高手?都打的很多、这样才能体现技术 193 | sed -i '/^\$/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 194 | sed -i '/\*\$/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 195 | # 给三大视频网站放行 由kp.dat负责 196 | sed -i '/youku.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 197 | sed -i '/iqiyi.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 198 | sed -i '/qq.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 199 | sed -i '/g.alicdn.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 200 | sed -i '/tudou.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 201 | sed -i '/gtimg.cn/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 202 | # 给知乎放行 203 | sed -i '/zhihu.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 204 | 205 | 206 | # 将规则转化成kp能识别的https 207 | cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | grep "^||" | sed 's#^||#||https://#g' >> $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 208 | # 移出https不支持规则domain= 209 | sed -i 's/\(,domain=\).*//g' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 210 | sed -i 's/\(\$domain=\).*//g' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 211 | sed -i 's/\(domain=\).*//g' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 212 | sed -i '/\^$/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 213 | sed -i '/\^\*\.gif/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 214 | sed -i '/\^\*\.jpg/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 215 | 216 | cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | grep "^||" | sed 's#^||#||http://#g' >> $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 217 | 218 | cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | grep -i '^[0-9a-z]'| grep -v '^http'| sed 's#^#https://#g' >> $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 219 | cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | grep -i '^[0-9a-z]'| grep -v '^http'| sed 's#^#http://#g' >> $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 220 | cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | grep -i '^[0-9a-z]'| grep -i '^http' >> $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 221 | 222 | 223 | # 给github放行 224 | sed -i '/github/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 225 | # 给api.twitter.com的https放行 226 | sed -i '/twitter.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 227 | # 给facebook.com的https放行 228 | sed -i '/facebook.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 229 | sed -i '/fbcdn.net/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 230 | # 给 instagram.com 放行 231 | sed -i '/instagram.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 232 | # 给 twitch.tv 放行 233 | sed -i '/twitch.tv/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 234 | # 删除可能导致卡顿的HTTPS规则 235 | sed -i '/\.\*\//d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 236 | # 给国内三大电商平台放行 237 | sed -i '/jd.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 238 | sed -i '/taobao.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 239 | sed -i '/tmall.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt 240 | 241 | # 删除不必要信息重新打包 15 表示从第15行开始 $表示结束 242 | sed -i '15,$d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 243 | # 合二归一 244 | cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance_https.txt >> $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 245 | # 删除可能导致kpr卡死的神奇规则 246 | sed -i '/https:\/\/\*/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 247 | # 给 netflix.com 放行 248 | sed -i '/netflix.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 249 | # 给 tvbs.com 放行 250 | sed -i '/tvbs.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 251 | sed -i '/googletagmanager.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 252 | # 给 microsoft.com 放行 253 | sed -i '/microsoft.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 254 | # 给apple的https放行 255 | sed -i '/apple.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 256 | sed -i '/mzstatic.com/d' $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 257 | # 终极 https 卡顿优化 grep -n 显示行号 awk -F 分割数据 sed -i "${del_rule}d" 需要""" 和{}引用变量 258 | # 当 koolproxyR_del_rule 是1的时候就一直循环,除非 del_rule 变量为空了。 259 | koolproxyR_del_rule=1 260 | while [ $koolproxyR_del_rule = 1 ];do 261 | del_rule=`cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | grep -n 'https://' | grep '\*' | grep -v '/\*'| grep -v '\^\*' | grep -v '\*\=' | grep -v '\$s\@' | grep -v '\$r\@'| awk -F":" '{print $1}' | sed -n '1p'` 262 | if [[ "$del_rule" != "" ]]; then 263 | sed -i "${del_rule}d" $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt 264 | else 265 | koolproxyR_del_rule=0 266 | fi 267 | done 268 | 269 | 270 | else 271 | echo_date 跳过优化 fanboy规则。。。。。 272 | fi 273 | 274 | 275 | 276 | if [[ "$koolproxyR_https_ChinaList" == "1" ]]; then 277 | echo_date 正在优化 KPR主规则。。。。。 278 | sed -i '/^\$/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 279 | sed -i '/\*\$/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 280 | # 给btbtt.替换过滤规则。 281 | sed -i 's#btbtt.\*#\*btbtt.\*#g' $KSROOT/koolproxyR/data/rules/easylistchina.txt 282 | # 给手机百度图片放行 283 | sed -i '/baidu.com\/it\/u/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 284 | # # 给手机百度放行 285 | # sed -i '/mbd.baidu.comd' $KSROOT/koolproxyR/data/rules/easylistchina.txt 286 | # 给知乎放行 287 | sed -i '/zhihu.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 288 | # 给apple的https放行 289 | sed -i '/apple.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 290 | sed -i '/mzstatic.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 291 | 292 | 293 | 294 | # 将规则转化成kp能识别的https 295 | cat $KSROOT/koolproxyR/data/rules/easylistchina.txt | grep "^||" | sed 's#^||#||https://#g' >> $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 296 | # 移出https不支持规则domain= 297 | sed -i 's/\(,domain=\).*//g' $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 298 | sed -i 's/\(\$domain=\).*//g' $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 299 | sed -i 's/\(domain=\).*//g' $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 300 | sed -i '/\^$/d' $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 301 | sed -i '/\^\*\.gif/d' $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 302 | sed -i '/\^\*\.jpg/d' $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 303 | 304 | 305 | 306 | cat $KSROOT/koolproxyR/data/rules/easylistchina.txt | grep "^||" | sed 's#^||#||http://#g' >> $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 307 | 308 | cat $KSROOT/koolproxyR/data/rules/easylistchina.txt | grep -i '^[0-9a-z]'| grep -v '^http'| sed 's#^#https://#g' >> $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 309 | cat $KSROOT/koolproxyR/data/rules/easylistchina.txt | grep -i '^[0-9a-z]'| grep -v '^http'| sed 's#^#http://#g' >> $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 310 | cat $KSROOT/koolproxyR/data/rules/easylistchina.txt | grep -i '^[0-9a-z]'| grep -i '^http' >> $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 311 | # 给facebook.com的https放行 312 | sed -i '/facebook.com/d' $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 313 | sed -i '/fbcdn.net/d' $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 314 | # 删除可能导致卡顿的HTTPS规则 315 | sed -i '/\.\*\//d' $KSROOT/koolproxyR/data/rules/easylistchina_https.txt 316 | 317 | 318 | 319 | # 删除不必要信息重新打包 15 表示从第15行开始 $表示结束 320 | sed -i '6,$d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 321 | # 合二归一 322 | cat $KSROOT/koolproxyR/data/rules/easylistchina_https.txt >> $KSROOT/koolproxyR/data/rules/easylistchina.txt 323 | # 给三大视频网站放行 由kp.dat负责 324 | sed -i '/youku.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 325 | sed -i '/iqiyi.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 326 | sed -i '/g.alicdn.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 327 | sed -i '/tudou.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 328 | sed -i '/gtimg.cn/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 329 | # 给https://qq.com的html规则放行 330 | sed -i '/qq.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 331 | # 删除可能导致kpr卡死的神奇规则 332 | sed -i '/https:\/\/\*/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 333 | # 给国内三大电商平台放行 334 | sed -i '/jd.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 335 | sed -i '/taobao.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 336 | sed -i '/tmall.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 337 | # 给 netflix.com 放行 338 | sed -i '/netflix.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 339 | # 给 tvbs.com 放行 340 | sed -i '/tvbs.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 341 | sed -i '/googletagmanager.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 342 | # 给 microsoft.com 放行 343 | sed -i '/microsoft.com/d' $KSROOT/koolproxyR/data/rules/easylistchina.txt 344 | # 终极 https 卡顿优化 grep -n 显示行号 awk -F 分割数据 sed -i "${del_rule}d" 需要""" 和{}引用变量 345 | # 当 koolproxyR_del_rule 是1的时候就一直循环,除非 del_rule 变量为空了。 346 | koolproxyR_del_rule=1 347 | while [ $koolproxyR_del_rule = 1 ];do 348 | del_rule=`cat $KSROOT/koolproxyR/data/rules/easylistchina.txt | grep -n 'https://' | grep '\*' | grep -v '/\*'| grep -v '\^\*' | grep -v '\*\=' | grep -v '\$s\@' | grep -v '\$r\@'| awk -F":" '{print $1}' | sed -n '1p'` 349 | if [[ "$del_rule" != "" ]]; then 350 | sed -i "${del_rule}d" $KSROOT/koolproxyR/data/rules/easylistchina.txt 351 | else 352 | koolproxyR_del_rule=0 353 | fi 354 | done 355 | cat $KSROOT/koolproxyR/data/rules/kpr_our_rule.txt >> $KSROOT/koolproxyR/data/rules/easylistchina.txt 356 | 357 | else 358 | echo_date 跳过优化 KPR主规则。。。。。 359 | fi 360 | 361 | 362 | if [[ "$koolproxyR_https_mobile" == "1" ]]; then 363 | # 删除不必要信息重新打包 0-11行 表示从第15行开始 $表示结束 364 | # sed -i '1,11d' $KSROOT/koolproxyR/data/rules/yhosts.txt 365 | echo_date 正在优化 补充规则yhosts。。。。。 366 | 367 | # 开始Kpr规则化处理 368 | cat $KSROOT/koolproxyR/data/rules/yhosts.txt > $KSROOT/koolproxyR/data/rules/yhosts_https.txt 369 | sed -i 's/^127.0.0.1\ /||https:\/\//g' $KSROOT/koolproxyR/data/rules/yhosts_https.txt 370 | cat $KSROOT/koolproxyR/data/rules/yhosts.txt >> $KSROOT/koolproxyR/data/rules/yhosts_https.txt 371 | sed -i 's/^127.0.0.1\ /||http:\/\//g' $KSROOT/koolproxyR/data/rules/yhosts_https.txt 372 | # 处理tvbox.txt本身规则。 373 | sed -i 's/^127.0.0.1\ /||/g' /tmp/tvbox.txt 374 | rm -rf /tmp/tvbox.txt 375 | # 合二归一 376 | cat $KSROOT/koolproxyR/data/rules/yhosts_https.txt > $KSROOT/koolproxyR/data/rules/yhosts.txt 377 | cat /tmp/tvbox.txt >> $KSROOT/koolproxyR/data/rules/yhosts.txt 378 | 379 | 380 | # 此处对yhosts进行单独处理 381 | sed -i 's/^@/!/g' $KSROOT/koolproxyR/data/rules/yhosts.txt 382 | sed -i 's/^#/!/g' $KSROOT/koolproxyR/data/rules/yhosts.txt 383 | # 给三大视频网站放行 由kp.dat负责 384 | sed -i '/youku.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 385 | sed -i '/iqiyi.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 386 | sed -i '/g.alicdn.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 387 | sed -i '/tudou.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 388 | sed -i '/gtimg.cn/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 389 | 390 | 391 | # 给知乎放行 392 | sed -i '/zhihu.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 393 | # 给https://qq.com的html规则放行 394 | sed -i '/qq.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 395 | # 给github的https放行 396 | sed -i '/github/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 397 | # 给apple的https放行 398 | sed -i '/apple.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 399 | sed -i '/mzstatic.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 400 | # 给api.twitter.com的https放行 401 | sed -i '/twitter.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 402 | # 给facebook.com的https放行 403 | sed -i '/facebook.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 404 | sed -i '/fbcdn.net/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 405 | # 给 instagram.com 放行 406 | sed -i '/instagram.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 407 | # 删除可能导致kpr卡死的神奇规则 408 | sed -i '/https:\/\/\*/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 409 | # 给国内三大电商平台放行 410 | sed -i '/jd.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 411 | sed -i '/taobao.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 412 | sed -i '/tmall.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 413 | # 给 netflix.com 放行 414 | sed -i '/netflix.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 415 | # 给 tvbs.com 放行 416 | sed -i '/tvbs.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 417 | sed -i '/googletagmanager.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 418 | # 给 microsoft.com 放行 419 | sed -i '/microsoft.com/d' $KSROOT/koolproxyR/data/rules/yhosts.txt 420 | # 终极 https 卡顿优化 grep -n 显示行号 awk -F 分割数据 sed -i "${del_rule}d" 需要""" 和{}引用变量 421 | # 当 koolproxyR_del_rule 是1的时候就一直循环,除非 del_rule 变量为空了。 422 | koolproxyR_del_rule=1 423 | while [ $koolproxyR_del_rule = 1 ];do 424 | del_rule=`cat $KSROOT/koolproxyR/data/rules/yhosts.txt | grep -n 'https://' | grep '\*' | grep -v '/\*'| grep -v '\^\*' | grep -v '\*\=' | grep -v '\$s\@' | grep -v '\$r\@'| awk -F":" '{print $1}' | sed -n '1p'` 425 | if [[ "$del_rule" != "" ]]; then 426 | sed -i "${del_rule}d" $KSROOT/koolproxyR/data/rules/yhosts.txt 427 | else 428 | koolproxyR_del_rule=0 429 | fi 430 | done 431 | 432 | 433 | else 434 | echo_date 跳过优化 补充规则yhosts。。。。。 435 | fi 436 | # 删除临时文件 437 | rm $KSROOT/koolproxyR/data/rules/*_https.txt 438 | rm $KSROOT/koolproxyR/data/rules/kpr_our_rule.txt 439 | 440 | 441 | 442 | echo_date 所有规则更新并优化完毕! 443 | 444 | echo_date 自动重启koolproxyR,以应用新的规则文件!请稍后! 445 | sh $KSROOT/koolproxyR/kpr_config.sh restart 446 | echo_date ======================================================================================================= 447 | } 448 | 449 | 450 | case $2 in 451 | 5) 452 | update_rule "$1" > /tmp/upload/kpr_log.txt 453 | echo XU6J03M6 >> /tmp/upload/kpr_log.txt 454 | http_response "$1" 455 | ;; 456 | *) 457 | # 此次由于定时任务无法产生随机Id,所以直接判断$1. 458 | if [[ "$1" == "update" ]]; then 459 | # 此处生产随机的三位数 用来缓解瞬间产生大量请求导致服务器拒绝的情况。 460 | sleep_time=`tr -cd 0-9 /tmp/upload/kpr_log.txt 463 | echo_date "本次自动更新等待了 $sleep_time 秒" >> /tmp/upload/kpr_log.txt 464 | echo XU6J03M6 >> /tmp/upload/kpr_log.txt 465 | http_response "$1" 466 | fi 467 | ;; 468 | esac 469 | -------------------------------------------------------------------------------- /koolproxyR/scripts/KoolProxyR_rules_status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | alias echo_date1='echo $(date +%Y年%m月%d日\ %X)' 4 | export KSROOT=/koolshare 5 | source $KSROOT/scripts/base.sh 6 | eval `dbus export koolproxyR_` 7 | 8 | version=`koolproxy -v` 9 | status=`ps|grep -w koolproxy | grep -cv grep` 10 | date=`echo_date1` 11 | pid=`pidof koolproxy` 12 | 13 | easylist_rules_local=`cat $KSROOT/koolproxyR/data/rules/easylistchina.txt | sed -n '3p'|awk '{print $3,$4}'` 14 | easylist_nu_local=`grep -E -v "^!" $KSROOT/koolproxyR/data/rules/easylistchina.txt | wc -l` 15 | # 补充规则版本号暂时没有 16 | replenish_rules_local=`cat $KSROOT/koolproxyR/data/rules/yhosts.txt | sed -n '2p' | cut -d "=" -f2` 17 | replenish_nu_local=`grep -E -v "^!" $KSROOT/koolproxyR/data/rules/yhosts.txt | wc -l` 18 | fanboy_nu_local=`grep -E -v "^!" $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | wc -l` 19 | # 检测是否开启fanboy 全规则版本 20 | if [ "$koolproxyR_fanboy_all_rules" == "1" ]; then 21 | fanboy_rules_local=`cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | sed -n '4p'|awk '{print $3,$4}'` 22 | else 23 | fanboy_rules_local=`cat $KSROOT/koolproxyR/data/rules/fanboy-annoyance.txt | sed -n '3p'|awk '{print $3,$4}'` 24 | fi 25 | # 从此由kpr自己更新视频规则 26 | video_rules_local=`cat $KSROOT/koolproxyR/data/rules/kp.dat.md5 | sed -n '2p'` 27 | video_nu_local=`cat $KSROOT/koolproxyR/data/rules/kp.dat.md5 | sed -n '3p'` 28 | 29 | if [ "$koolproxyR_enable" == "1" ]; then 30 | if [ "$koolproxyR_easylist_rules" == "1" -o "$koolproxyR_video_rules" == "1" -o "$koolproxyR_replenish_rules" == "1" -o "$koolproxyR_fanboy_rules" == "1" ]; then 31 | if [ "$koolproxyR_easylist_rules" == "1" -a "$koolproxyR_replenish_rules" == "1" -a "$koolproxyR_video_rules" == "1" -a "$koolproxyR_fanboy_rules" == "1" ]; then 32 | http_response "KPR主规则版本号:$easylist_rules_local /合计 $easylist_nu_local条    补充规则版本号:$replenish_rules_local /合计 $replenish_nu_local条    视频规则版本号:$video_rules_local /合计 $video_nu_local条    Fanboy规则版本号:$fanboy_rules_local /合计 $fanboy_nu_local条" 33 | return 0 34 | fi 35 | if [ "$koolproxyR_easylist_rules" == "1" -a "$koolproxyR_replenish_rules" == "1" -a "$koolproxyR_video_rules" == "1" ]; then 36 | http_response "KPR主规则版本号:$easylist_rules_local /合计 $easylist_nu_local条    补充规则版本号:$replenish_rules_local /合计 $replenish_nu_local条    视频规则版本号:$video_rules_local /合计 $video_nu_local条    " 37 | return 0 38 | fi 39 | if [ "$koolproxyR_easylist_rules" == "1" -a "$koolproxyR_replenish_rules" == "1" -a "$koolproxyR_fanboy_rules" == "1" ]; then 40 | http_response "KPR主规则版本号:$easylist_rules_local /合计 $easylist_nu_local条    补充规则版本号:$replenish_rules_local /合计 $replenish_nu_local条    Fanboy规则版本号:$fanboy_rules_local /合计 $fanboy_nu_local条" 41 | return 0 42 | fi 43 | if [ "$koolproxyR_easylist_rules" == "1" -a "$koolproxyR_video_rules" == "1" -a "$koolproxyR_fanboy_rules" == "1" ]; then 44 | http_response "KPR主规则版本号:$easylist_rules_local /合计 $easylist_nu_local条    视频规则版本号:$video_rules_local /合计 $video_nu_local条    Fanboy规则版本号:$fanboy_rules_local /合计 $fanboy_nu_local条" 45 | return 0 46 | fi 47 | if [ "$koolproxyR_replenish_rules" == "1" -a "$koolproxyR_video_rules" == "1" -a "$koolproxyR_fanboy_rules" == "1" ]; then 48 | http_response "补充规则版本号:$replenish_rules_local /合计 $replenish_nu_local条    视频规则版本号:$video_rules_local /合计 $video_nu_local条    Fanboy规则版本号:$fanboy_rules_local /合计 $fanboy_nu_local条" 49 | return 0 50 | fi 51 | 52 | if [ "$koolproxyR_easylist_rules" == "1" -a "$koolproxyR_replenish_rules" == "1" ]; then 53 | http_response "KPR主规则版本号:$easylist_rules_local /合计 $easylist_nu_local条    补充规则版本号:$replenish_rules_local /合计 $replenish_nu_local条" 54 | return 0 55 | fi 56 | if [ "$koolproxyR_easylist_rules" == "1" -a "$koolproxyR_video_rules" == "1" ]; then 57 | http_response "KPR主规则版本号:$easylist_rules_local /合计 $easylist_nu_local条    视频规则版本号:$video_rules_local /合计 $video_nu_local条" 58 | return 0 59 | fi 60 | if [ "$koolproxyR_replenish_rules" == "1" -a "$koolproxyR_video_rules" == "1" ]; then 61 | http_response "补充规则版本号:$replenish_rules_local /合计 $replenish_nu_local条    视频规则版本号:$video_rules_local /合计 $video_nu_local条" 62 | return 0 63 | fi 64 | if [ "$koolproxyR_replenish_rules" == "1" -a "$koolproxyR_fanboy_rules" == "1" ]; then 65 | http_response "补充规则版本号:$replenish_rules_local /合计 $replenish_nu_local条    Fanboy规则版本号:$fanboy_rules_local /合计 $fanboy_nu_local条" 66 | return 0 67 | fi 68 | 69 | if [ "$koolproxyR_easylist_rules" == "1" -a "$koolproxyR_fanboy_rules" == "1" ]; then 70 | http_response "KPR主规则版本号:$easylist_rules_local /合计 $easylist_nu_local条    Fanboy规则版本号:$fanboy_rules_local /合计 $fanboy_nu_local条" 71 | return 0 72 | fi 73 | if [ "$koolproxyR_video_rules" == "1" -a "$koolproxyR_fanboy_rules" == "1" ]; then 74 | http_response "视频规则已加载    Fanboy规则版本号:$fanboy_rules_local /合计 $fanboy_nu_local条" 75 | return 0 76 | fi 77 | [ "$koolproxyR_replenish_rules" == "1" ] && http_response "补充规则版本号:$replenish_rules_local /合计 $replenish_nu_local条" 78 | [ "$koolproxyR_easylist_rules" == "1" ] && http_response "KPR主规则版本号:$easylist_rules_local /合计 $easylist_nu_local条" 79 | [ "$koolproxyR_video_rules" == "1" ] && http_response "视频规则已加载" 80 | [ "$koolproxyR_fanboy_rules" == "1" ] && http_response "Fanboy规则版本号:$fanboy_rules_local /合计 $fanboy_nu_local条" 81 | else 82 | http_response "未加载!" 83 | fi 84 | else 85 | http_response "KoolProxyR未开启...." 86 | fi 87 | 88 | 89 | -------------------------------------------------------------------------------- /koolproxyR/scripts/KoolProxyR_status.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | alias echo_date1='echo $(date +%Y年%m月%d日\ %X)' 3 | export KSROOT=/koolshare 4 | source $KSROOT/scripts/base.sh 5 | eval `dbus export koolproxyR_` 6 | date=`echo_date1` 7 | version=`dbus get koolproxyR_version` 8 | status=`ps | grep koolproxy | grep -v grep | wc -l` 9 | koolproxyR_installing_version=`dbus get koolproxyR_new_install_version` 10 | 11 | if [[ "$status" -ge "1" ]]; then 12 | http_response " 【$date】 正在运行KoolProxyR $version / 线上最新版本为: $koolproxyR_installing_version @@绿坝规则:$rules_date_local / $rules_nu_local条" 13 | else 14 | http_response "【警告】:KoolProxyR未运行! @@未加载!" 15 | fi 16 | 17 | -------------------------------------------------------------------------------- /koolproxyR/scripts/KoolProxyR_update_now.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export soft_name=koolproxyR.tar.gz 3 | alias echo_date1='echo $(date +%Y年%m月%d日\ %X)' 4 | 5 | 6 | update_kpr(){ 7 | echo_date1 ====================== 开始检查更新 =========================== 8 | url_version="https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/version" 9 | wget --no-check-certificate --timeout=8 -qO - $url_version > /tmp/koolproxyR_version 10 | koolproxyR_installing_md5=`cat /tmp/koolproxyR_version | sed -n '2p'` 11 | koolproxyR_installing_version=`cat /tmp/koolproxyR_version | sed -n '1p'` 12 | koolproxyR_version_now=`dbus get koolproxyR_version` 13 | dbus set koolproxyR_new_install_version=$koolproxyR_installing_version 14 | echo_date1 当前本地版本:$koolproxyR_version_now ,当前最新版本为: $koolproxyR_installing_version 15 | rm -rf /tmp/version 16 | echo_date1 ====================== 判断更新 =========================== 17 | if [[ "$koolproxyR_installing_version" != "$koolproxyR_version_now" ]]; then 18 | echo_date1 检查到与线上版本不一致,开始更新..... 19 | echo_date1 请耐心等待更新完成..... 20 | for i in {1..5}; do 21 | echo_date1 这是第 $i 次下载共 5 次下载koolproxyR 22 | wget -4 -a /tmp/upload/kpr_log.txt -O /tmp/upload/koolproxyR.tar.gz https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/koolproxyR.tar.gz 23 | koolproxyR_download_md5=`md5sum /tmp/upload/koolproxyR.tar.gz|awk '{print $1}'` 24 | echo_date1 远程版本md5:$koolproxyR_installing_md5 25 | echo_date1 您下载版本md5:$koolproxyR_download_md5 26 | if [[ "$koolproxyR_installing_md5" == "$koolproxyR_download_md5" ]]; then 27 | wget -4 -a /tmp/upload/kpr_log.txt -O /koolshare/scripts/kpr_tar_install.sh https://dev.tencent.com/u/shaoxia1991/p/koolproxyr/git/raw/master/kpr_tar_install.sh && chmod 777 /koolshare/scripts/kpr_tar_install.sh 28 | sh /koolshare/scripts/kpr_tar_install.sh 29 | break 30 | fi 31 | if [[ $i == 5 ]]; then 32 | echo_date1 一个悲伤的故事,MD5多次校验不通过,勇士请重新来过吧! 33 | rm -rf /tmp/upload/koolproxyR.tar.gz 34 | fi 35 | done 36 | else 37 | echo_date1 并没有更新,下次再来看吧! 38 | fi 39 | 40 | echo_date1 ========================================================== 41 | } 42 | if [ -n "$1" ]; then 43 | update_kpr "$1" > /tmp/upload/kpr_log.txt 44 | http_response "$1" 45 | # 软件中心通知已完成代码 XU6J03M6 46 | echo XU6J03M6 >> /tmp/upload/kpr_log.txt 47 | else 48 | update_kpr > /tmp/upload/kpr_log.txt 49 | echo XU6J03M6 >> /tmp/upload/kpr_log.txt 50 | fi 51 | -------------------------------------------------------------------------------- /koolproxyR/uninstall.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | export KSROOT=/koolshare 3 | source $KSROOT/scripts/base.sh 4 | 5 | sh $KSROOT/koolproxyR/kpr_config.sh stop 6 | rm -rf $KSROOT/bin/koolproxy >/dev/null 2>&1 7 | rm -rf $KSROOT/scripts/KoolProxyR_* >/dev/null 2>&1 8 | rm -rf $KSROOT/scripts/KoolproxyR_* >/dev/null 2>&1 9 | rm -rf $KSROOT/webs/module_KoolproxyR.asp >/dev/null 2>&1 10 | rm -rf $KSROOT/koolproxyR >/dev/null 2>&1 11 | rm -rf $KSROOT/init.d/S93koolproxyR.sh >/dev/null 2>&1 12 | rm -rf /etc/rc.d/S93koolproxyR.sh >/dev/null 2>&1 13 | rm -rf $KSROOT/variable/libhavege*.ipk 14 | rm -rf $KSROOT/variable/haveged*.ipk 15 | 16 | # 取消dbus注册 TG sadog 17 | cd /tmp 18 | dbus list koolproxyR|cut -d "=" -f1|sed 's/^/dbus remove /g' > clean.sh 19 | dbus list softcenter_module_|grep koolproxyR|cut -d "=" -f1|sed 's/^/dbus remove /g' >> clean.sh 20 | chmod 777 clean.sh 21 | sh ./clean.sh > /dev/null 2>&1 22 | rm clean.sh 23 | 24 | # 清楚 定时任务 25 | [ ! -f "/etc/crontabs/root" ] && touch /etc/crontabs/root 26 | jobexist=`cat /etc/crontabs/root|grep KoolProxyR` 27 | 28 | if [ ! -z "$jobexist" ]; then 29 | sed -i '/KoolProxyR/d' /etc/crontabs/root >/dev/null 2>&1 30 | fi 31 | 32 | 33 | exit 0 34 | -------------------------------------------------------------------------------- /koolproxyR/variable/haveged.ipk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/koolproxyR/variable/haveged.ipk -------------------------------------------------------------------------------- /koolproxyR/variable/libhavege.ipk: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/koolproxyR/variable/libhavege.ipk -------------------------------------------------------------------------------- /koolproxyR/webs/Module_koolproxyR.asp: -------------------------------------------------------------------------------- 1 | 8 | KoolProxyR 9 | 10 | 11 | 12 | 13 | 14 | 19 | 773 | 774 |
775 |
776 | 777 | 返回 778 | 更新日志 779 | 780 |
781 |
782 | KoolProxyR为免费开源软件,追求体验更快、更清洁的网络,屏蔽烦人的广告 ! 783 | 784 | 785 | 786 |
787 |
788 |
789 |
790 |
791 |
792 | 797 |
798 |
799 | 800 |
801 | 正在检查运行状态...(推荐使用chrome内核浏览器打开) 802 |
803 |
804 |
805 |
806 | 807 | 817 |
818 |
819 |
820 | 831 |
832 |
833 |
834 |
友情提示
835 |
836 |
  • 不管你多么优秀,请一定注意以下几件事。
  • 837 |
  • --------------------------------------------------------------------------
  • 838 |
  • 一,请不要随意开启全端口模式和黑名单模式,除非你知道你在做什么。
  • 839 |
  • 二,请给设备正确安装https证书,如果证书不正确,kpr也就废了。
  • 840 |
  • 三,遇到搞不定的事情,请及时到tg群反馈。kpr的tg群。
  • 841 |
  • --------------------------------------------------------------------------
  • 842 |
    843 |
    844 |
    845 |
    开发者带你玩转KoolProxyR:
    846 |
    847 |
    848 |
    849 |
      850 |
    • 问: KoolProxyR的R是日的意思吗?
    • 851 |
    • 答: 是的,日死所有广告。
    • 852 |

      853 |
    •     一个新手的标准流程
    • 854 |
    • 1, 在【基本设置】中默认HTTP过滤模式,此模式表示除【访问控制】以外的机子走的过滤模式。
    • 855 |
    • 2, 在【规则状态】中勾选合适的规则。
    • 856 |
    • 3, 给【HTTP/HTTPS双过滤模式】的机子正确安装证书。(详情请完整阅读本页)
    • 857 |
    • 4, 在【访问控制】中指定【HTTP/HTTPS双过滤模式】过滤的设备。
    • 858 |
    • 5, 善于使用【附加设置】--【开启-AD调试模式 】排除误杀情况,如果比较严重,欢迎提交规则,或者TG群反馈。
    • 859 |
    • 6, 如果您是大佬,可以自行DIY你需要的所有元素,并欢迎提交在github提交Pull requests。
    • 860 |

      861 |
    • 问: 这些模式有什么区别?
    • 862 |
    • 答: HTTP过滤模式,只过滤80端口,HTTP/HTTPS过滤80,443端口,全端口模式过滤所有端口,包含80,443。黑名单模式只过滤黑名单内的域名所以不建议使用。
    • 863 |

      864 |
    • 问: 某些网站我不想去广告,或者某些网站屏蔽了,我的设备无法访问。
    • 865 |
    • 答: 请使用  @@|  或者@@@@|  对域名进行放行,http访问的网站@@|http://xxx.yyy.com    https访问的网站@@@@|https://drive.google.com      【自定义规则】中进行设置。如果你觉得这个规则影响了更多人,请反馈,或者提交规则到kpr,提交的规则将在KPR主规则中,惠及所有KPR用户。
    • 866 |

      867 |
    • 问: HTTPS过滤一定要安装证书吗?
    • 868 |
    • 答: 必须安装证书,而且必须正确安装证书。
    • 869 |

      870 |
    • 问: 我想自动升级KoolProxyR版本可以吗?
    • 871 |
    • 答: 在【系统】--【计划任务】的末尾回车添加上下面这行的代码保存即可。
    • 872 |
    • 0 4 * * * /koolshare/scripts/KoolProxyR_update_now.sh update_kpr
    • 873 |

      874 |
    • 问: 我是安卓7.0以上的系统,我安装了证书,开启Https导致部分APP打开提示没有网络了!
    • 875 |
    • 答: 请在【证书管理】中下载0.根证书的zip文件,解压出来放入下面的两个地方。PS 如何放入,如何root之类的话题,请在到专业论坛讨论。
    • 876 |
    • /system/etc/security/cacerts          /system/etc/security/cacerts_google
    • 877 |

      878 |
    • 问: 我的安卓手机,刷机后卡开机界面了。谷歌服务哪点一直过不了。
    • 879 |
    • 答: 请在【访问控制】中给手机放行,或者,暂时关闭KPR!
    • 880 |

      881 |
    • 问: KoolProxyR为什么要重启SS,V2ray,koolgame?
    • 882 |
    • 答: 是的,是需要重启来适应kpr的开关,这样才能让流量走kpr,而不会导致代理无效的问题,不需要手动重启代理。
    • 883 |

      884 |
    • 问: 为什么梅林没有KoolProxyR?开发者歧视梅林吗?
    • 885 |
    • 答: 不是的,kpr是为了更强更多规则而存在的,目前除了软路由几乎无解。梅林设备性能没有达标!
    • 886 |

      887 |
    • 问: 为什么安装了证书仍然,提示https不安全?
    • 888 |
    • Windows下面请安装的时候选择安装到  [受信任的根证书颁发机构]
    • 889 |
    • IOS设备,在设置---通用----关于手机里面信任证书
    • 890 |
    • MAC, 在 【钥匙串访问】中信任
    • 891 |
    • 安卓7.0以上将.0根证书复制到【/system/etc/security/cacerts】  【/system/etc/security/cacerts_google】中
    • 892 |
    • 火狐浏览器用户,请分别在火狐内访问110.110.110.110,和使用其他浏览器访问110.110.110.110,并将证书安装到[受信任的根证书颁发机构]
    • 893 |

      894 |
    • 问: 我把kp的证书备份下来了kpr可以导入使用吗?
    • 895 |
    • 答: 可以的,本来就是同源,可以相互导入导出证书来使用减少重复安装证书的过程。
    • 896 |

      897 |
    • 问: 我的规则更新,和更新插件十分缓慢?有解决办法吗?
    • 898 |
    • 答: 你可以将,以下域名加入【LEDE】【SS V2RAY WG等代理软件】的【黑白名单】中【域名黑名单】。
    • 899 |
    • raw.githubusercontent.com
    • 900 |
    • easylist-downloads.adblockplus.org
    • 901 |
    • secure.fanboy.co.nz
    • 902 |

      903 |
    • 问: 我开启了fanboy全规则版本,为什么我打开网页没有以前流畅了。
    • 904 |
    • 答: 这个版本由于规则太多对不是重度国外网站使用的你来讲,确实不必要勾选,如果常年逛国外网站,又卡,那你只勾选fanboy全规则版本,其他的都取消掉吧!
    • 905 |
    • 达成成就:成功榨干软路由
    • 906 |

      907 |
    • 问: 我发现规则上下有重复的地方有影响吗?
    • 908 |
    • 答: 没有的,这是因为不知道网站是http的还是https的,所以http与https都需要分别设置一次。
    • 909 |

      910 |
    • 问: 有隐藏功能吗?
    • 911 |
    • 答: 目前有自定义执行shell,和自定义证书名字2个功能。请参考更新日志内的说明。
    • 912 |

      913 |
    • 问: KoolProxyR太棒了,我要捐赠!
    • 914 |
    • 答: 谢谢大家好意,请捐赠给生活中其他需要帮助的人吧!或许这更重要!
    • 915 |

      916 |
    917 |
    918 |
    919 |
    920 |
    921 | 922 |
    923 |
    访问控制
    924 |
    925 |
    926 |
    927 |
    928 |

    929 |

    使用手册

    930 |
    931 |
  • 过滤https站点广告需要为相应设备安装证书,并启用带HTTPS过滤的模式!
  • 932 |
  • 【全端口模式】是包括443和80端口以内的全部端口进行过滤,如果被过滤的设备开启这个,也需要安装证书!
  • 933 |
  • 需要自定义列表内没有的主机时,把【主机别名】留空,填写其它的即可!
  • 934 |
  • 访问控制面板中【ip地址】和【mac地址】至少一个不能为空!只有ip时匹配ip,只有mac时匹配mac,两个都有一起匹配!
  • 935 |
  • 在路由器下的设备,不管是电脑,还是补充,都可以在浏览器中输入110.110.110.110来下载证书。
  • 936 |
  • 如果想在多台装有koolroxy的路由设备上使用一个证书,请用本插件的证书备份功能,并上传到另一台路由。
  • 937 |
  • 注意!【全端口模式】一般情况慎重选择,因为kpr支持非标准端口过滤,只要规则上有。
  • 938 |
  • 注意!【黑名单模式】一般情况下请无论如何都不要选,毕竟黑名单里面的规则不过毛毛雨。
  • 939 |
    940 |

    941 |
    942 |
    943 |
    944 |
    自定义规则
    945 |
    946 |
    947 |
    948 | 953 |
    954 |
    955 |
    956 | 957 |
    958 |
    证书管理
    959 |
    960 |
    961 | 967 |
    968 |
    969 |
    970 |
    规则管理
    971 |
    972 |
    973 | 1005 |

    1006 |

    规则管理说明

    1007 |
    1008 |
  • KoolProxyR请根据自己的实际情况选择使用。
  • 1009 |
  • 【冲突解决】尝试下少勾选部分规则,看看是否好转。。
  • 1010 |
  • 如果遇到问题,或者更好的规则请记得向KPR反馈。
  • 1011 |
  • 规则都是从网上收集,可能更新后会出现问题,不要慌,反馈一下就好了。
  • 1012 |
    1013 |

    1014 |
    1015 |
    1016 |
    1017 |
    附加功能
    1018 |
    1019 |
    1020 | 1025 |

    1026 |

    附加设置功能说明

    1027 |
    1028 |

    1029 |
  • 这是一个抓包,排错,编写规则的辅助工具,强大之人掌握,必能发挥其威力。
  • 1030 |

    1031 |
  • 【规则调试模式】
  • 1032 |
  • 此模式可以直接使用【WinSCP】等文件管理软件,进行编辑,保存实时生效(仅限/koolshare/koolproxyR/data/rules/user.txt)
  • 1033 |
  • 此模式还可以与其他模式混用,极大的提高效率,先启动(info,ad,全调试)再启动本模式即可。
  • 1034 |

    1035 |
  • 【开启-INFO调试模式】
  • 1036 |
  • 此模式下,只将重要信息显示到日志信息中。
  • 1037 |

    1038 |
  • 【开启-AD调试模式】
  • 1039 |
  • 此模式下,通常用来排除误杀。
  • 1040 |

    1041 |
  • 【开启-全调试模式 】
  • 1042 |
  • 更加详细的调试信息,让所有的东西都一览无余。
  • 1043 |

    1044 |
  • 【关闭调试模式 】
  • 1045 |
  • 十分重要的操作,不然一觉起来硬盘爆了。
  • 1046 |

    1047 | 1048 |
    1049 |

    1050 |
    1051 |
    1052 |
    1053 |
    状态日志
    1054 |
    1055 |
    1056 | 1061 |
    1062 |
    1063 |
    1064 | 1066 | 1068 | 1070 | 1071 | 1072 |
    1073 | -------------------------------------------------------------------------------- /koolproxyR/webs/res/icon-koolproxyR-bg.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/koolproxyR/webs/res/icon-koolproxyR-bg.png -------------------------------------------------------------------------------- /koolproxyR/webs/res/icon-koolproxyR.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/koolproxyR/webs/res/icon-koolproxyR.png -------------------------------------------------------------------------------- /koolproxyR/webs/res/icon_koolproxyR-v.png: -------------------------------------------------------------------------------- https://raw.githubusercontent.com/user1121114685/koolproxyR/6aff7c2d48107434fa781c352bc69fd0ee65ab90/koolproxyR/webs/res/icon_koolproxyR-v.png -------------------------------------------------------------------------------- /kpr_tar_install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # for lede x64 by fw867 4 | 5 | export KSROOT=/koolshare 6 | source $KSROOT/scripts/base.sh 7 | alias echo_date='echo 【$(date +%Y年%m月%d日\ %X)】:' 8 | eval `dbus export soft` 9 | TARGET_DIR=/tmp/upload 10 | 11 | clean(){ 12 | rm -rf /tmp/$name >/dev/null 2>&1 13 | rm -rf /tmp/$MODULE_NAME >/dev/null 2>&1 14 | rm -rf /tmp/$soft_name >/dev/null 2>&1 15 | find /tmp -name "*.tar.gz"|xargs rm -rf >/dev/null 2>&1 16 | } 17 | 18 | install_tar(){ 19 | name=`echo "$soft_name"|sed 's/.tar.gz//g'|awk -F "_" '{print $1}'|awk -F "-" '{print $1}'` 20 | INSTALL_SUFFIX=_install 21 | VER_SUFFIX=_version 22 | NAME_SUFFIX=_name 23 | cd /tmp 24 | echo_date ====================== step 1 =========================== 25 | echo_date 即将开始在线更新! 26 | sleep 1 27 | if [ -f $TARGET_DIR/$soft_name ]; then 28 | echo_date $TARGET_DIR目录下检测到在线更新包$soft_name 29 | mv /tmp/upload/$soft_name /tmp 30 | sleep 1 31 | echo_date 尝试解压在线更新包 32 | sleep 1 33 | tar -zxvf $soft_name >/dev/null 2>&1 34 | echo_date 解压完成! 35 | sleep 1 36 | cd /tmp 37 | 38 | if [ -f /tmp/$name/install.sh ]; then 39 | INSTALL_SCRIPT=/tmp/$name/install.sh 40 | else 41 | INSTALL_SCRIPT_NU=`find /tmp -name "install.sh"|wc -l` 2>/dev/null 42 | [ "$INSTALL_SCRIPT_NU" == "1" ] && INSTALL_SCRIPT=`find /tmp -name "install.sh"` || INSTALL_SCRIPT="" 43 | fi 44 | 45 | if [ -n "$INSTALL_SCRIPT" -a -f "$INSTALL_SCRIPT" ]; then 46 | SCRIPT_AB_DIR=`dirname $INSTALL_SCRIPT` 47 | MODULE_NAME=${SCRIPT_AB_DIR##*/} 48 | echo_date 准备安装$MODULE_NAME插件! 49 | echo_date 找到安装脚本! 50 | chmod +x $INSTALL_SCRIPT >/dev/null 2>&1 51 | echo_date 运行安装脚本... 52 | echo_date ====================== step 2 =========================== 53 | sleep 1 54 | start-stop-daemon -S -q -x $INSTALL_SCRIPT 2>&1 55 | # sh /tmp/$name/install.sh 2>&1 56 | if [[ "$?" != "0" ]]; then 57 | echo_date 因为$MODULE_NAME安装失败!退出在线更新! 58 | clean 59 | dbus remove "softcenter_module_$MODULE_NAME$INSTALL_SUFFIX" 60 | echo jobdown 61 | exit 62 | fi 63 | echo_date ====================== step 3 =========================== 64 | dbus set "softcenter_module_$MODULE_NAME$NAME_SUFFIX=$MODULE_NAME" 65 | dbus set "softcenter_module_$MODULE_NAME$INSTALL_SUFFIX=1" 66 | #dbus set "softcenter_module_$name$VER_SUFFIX=$soft_install_version" 67 | if [ -n "$soft_install_version" ]; then 68 | dbus set "softcenter_module_$MODULE_NAME$VER_SUFFIX=$soft_install_version" 69 | echo_date "从插件文件名中获取到了版本号:$soft_install_version" 70 | else 71 | #已经在插件安装中设置了 72 | if [ -z "`dbus get softcenter_module_$MODULE_NAME$VER_SUFFIX`" ]; then 73 | dbus set "softcenter_module_$MODULE_NAME$VER_SUFFIX=0.1" 74 | echo_date "插件安装脚本里没有找到版本号,设置默认版本号为0.1" 75 | else 76 | echo_date "插件安装脚本已经设置了插件版本号为:`dbus get softcenter_module_$MODULE_NAME$VER_SUFFIX`" 77 | fi 78 | fi 79 | install_pid=`ps | grep -w install.sh | grep -v grep | awk '{print $1}'` 80 | i=120 81 | until [ -z "$install_pid" ] 82 | do 83 | install_pid=`ps | grep -w install.sh | grep -v grep | awk '{print $1}'` 84 | i=$(($i-1)) 85 | if [[ "$i" -lt 1 ]]; then 86 | echo_date "Could not load nat rules!" 87 | echo_date 安装似乎出了点问题,请手动重启路由器后重新尝试... 88 | echo_date 删除相关文件并退出... 89 | sleep 1 90 | clean 91 | dbus remove "softcenter_module_$MODULE_NAME$INSTALL_SUFFIX" 92 | echo jobdown 93 | exit 94 | fi 95 | sleep 1 96 | done 97 | echo_date 离线包安装完成! 98 | sleep 1 99 | echo_date 一点点清理工作... 100 | sleep 1 101 | clean 102 | echo_date 完成!在线更新插件成功,现在你可以退出本页面~ 103 | sleep 1 104 | else 105 | echo_date 没有找到安装脚本! 106 | echo_date 删除相关文件并退出... 107 | clean 108 | fi 109 | else 110 | echo_date 没有找到在线更新包! 111 | echo_date 删除相关文件并退出... 112 | clean 113 | fi 114 | sleep 1 115 | dbus remove soft_install_version 116 | dbus remove soft_name 117 | echo jobdown 118 | clean 119 | } 120 | 121 | # 将 install_tar 的第一个参数 echo_date 传入log 122 | install_tar "$1" > /tmp/upload/kpr_log.txt 123 | # 顺带给 网页反馈下 第一个参数 124 | http_response "$1" -------------------------------------------------------------------------------- /ks_tar_install.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | 3 | # for lede x64 by fw867 4 | 5 | export KSROOT=/koolshare 6 | source $KSROOT/scripts/base.sh 7 | alias echo_date='echo 【$(date +%Y年%m月%d日\ %X)】:' 8 | eval `dbus export soft` 9 | TARGET_DIR=/tmp/upload 10 | 11 | clean(){ 12 | rm -rf /tmp/$name >/dev/null 2>&1 13 | rm -rf /tmp/$MODULE_NAME >/dev/null 2>&1 14 | rm -rf /tmp/$soft_name >/dev/null 2>&1 15 | find /tmp -name "*.tar.gz"|xargs rm -rf >/dev/null 2>&1 16 | } 17 | 18 | install_tar(){ 19 | name=`echo "$soft_name"|sed 's/.tar.gz//g'|awk -F "_" '{print $1}'|awk -F "-" '{print $1}'` 20 | INSTALL_SUFFIX=_install 21 | VER_SUFFIX=_version 22 | NAME_SUFFIX=_name 23 | cd /tmp 24 | echo_date ====================== step 1 =========================== 25 | echo_date 开启软件离线安装! 26 | sleep 1 27 | if [ -f $TARGET_DIR/$soft_name ]; then 28 | echo_date $TARGET_DIR目录下检测到上传的离线安装包$soft_name 29 | mv /tmp/upload/$soft_name /tmp 30 | sleep 1 31 | echo_date 尝试解压离线安装包离线安装包 32 | sleep 1 33 | tar -zxvf $soft_name >/dev/null 2>&1 34 | echo_date 解压完成! 35 | sleep 1 36 | cd /tmp 37 | 38 | if [ -f /tmp/$name/install.sh ]; then 39 | INSTALL_SCRIPT=/tmp/$name/install.sh 40 | else 41 | INSTALL_SCRIPT_NU=`find /tmp -name "install.sh"|wc -l` 2>/dev/null 42 | [ "$INSTALL_SCRIPT_NU" == "1" ] && INSTALL_SCRIPT=`find /tmp -name "install.sh"` || INSTALL_SCRIPT="" 43 | fi 44 | 45 | if [ -n "$INSTALL_SCRIPT" -a -f "$INSTALL_SCRIPT" ]; then 46 | SCRIPT_AB_DIR=`dirname $INSTALL_SCRIPT` 47 | MODULE_NAME=${SCRIPT_AB_DIR##*/} 48 | echo_date 准备安装$MODULE_NAME插件! 49 | echo_date 找到安装脚本! 50 | chmod +x $INSTALL_SCRIPT >/dev/null 2>&1 51 | echo_date 运行安装脚本... 52 | echo_date ====================== step 2 =========================== 53 | sleep 1 54 | # start-stop-daemon -S -q -x $INSTALL_SCRIPT 2>&1 55 | sh /tmp/$name/install.sh 2>&1 56 | # if [[ "$?" != "0" ]]; then 57 | # echo_date 因为$MODULE_NAME插件安装失败!退出离线安装! 58 | # clean 59 | # dbus remove "softcenter_module_$MODULE_NAME$INSTALL_SUFFIX" 60 | # echo jobdown 61 | # exit 62 | # fi 63 | echo_date ====================== step 3 =========================== 64 | dbus set "softcenter_module_$MODULE_NAME$NAME_SUFFIX=$MODULE_NAME" 65 | dbus set "softcenter_module_$MODULE_NAME$INSTALL_SUFFIX=1" 66 | #dbus set "softcenter_module_$name$VER_SUFFIX=$soft_install_version" 67 | if [ -n "$soft_install_version" ]; then 68 | dbus set "softcenter_module_$MODULE_NAME$VER_SUFFIX=$soft_install_version" 69 | echo_date "从插件文件名中获取到了版本号:$soft_install_version" 70 | else 71 | #已经在插件安装中设置了 72 | if [ -z "`dbus get softcenter_module_$MODULE_NAME$VER_SUFFIX`" ]; then 73 | dbus set "softcenter_module_$MODULE_NAME$VER_SUFFIX=0.1" 74 | echo_date "插件安装脚本里没有找到版本号,设置默认版本号为0.1" 75 | else 76 | echo_date "插件安装脚本已经设置了插件版本号为:`dbus get softcenter_module_$MODULE_NAME$VER_SUFFIX`" 77 | fi 78 | fi 79 | install_pid=`ps | grep -w install.sh | grep -v grep | awk '{print $1}'` 80 | i=120 81 | until [ -z "$install_pid" ] 82 | do 83 | install_pid=`ps | grep -w install.sh | grep -v grep | awk '{print $1}'` 84 | i=$(($i-1)) 85 | if [[ "$i" -lt 1 ]]; then 86 | echo_date "Could not load nat rules!" 87 | echo_date 安装似乎出了点问题,请手动重启路由器后重新尝试... 88 | echo_date 删除相关文件并退出... 89 | sleep 1 90 | clean 91 | dbus remove "softcenter_module_$MODULE_NAME$INSTALL_SUFFIX" 92 | echo jobdown 93 | exit 94 | fi 95 | sleep 1 96 | done 97 | echo_date 离线包安装完成! 98 | sleep 1 99 | echo_date 一点点清理工作... 100 | sleep 1 101 | clean 102 | echo_date 完成!离线安装插件成功,现在你可以退出本页面~ 103 | sleep 1 104 | else 105 | echo_date 没有找到安装脚本! 106 | echo_date 删除相关文件并退出... 107 | clean 108 | fi 109 | else 110 | echo_date 没有找到离线安装包! 111 | echo_date 删除相关文件并退出... 112 | clean 113 | fi 114 | sleep 1 115 | dbus remove soft_install_version 116 | dbus remove soft_name 117 | echo jobdown 118 | clean 119 | } 120 | 121 | echo " " > /tmp/upload/soft_log.txt 122 | #http_response "$1" 123 | install_tar > /tmp/upload/soft_log.txt 124 | -------------------------------------------------------------------------------- /md5.txt: -------------------------------------------------------------------------------- 1 | 1015c072c72d49e247c8ce0d34ff428c ./koolproxyR/scripts/KoolProxyR_cert.sh 2 | 1067c565ad6fbcfc714f715a7351d04b ./koolproxyR/scripts/KoolProxyR_debug.sh 3 | 114d417614b329f7d0fe5ac21c16bf29 ./koolproxyR/koolproxyR/data/rules/easylistchina.txt 4 | 160940858e671141f9dc64a004921100 ./koolproxyR/variable/libhavege.ipk 5 | 17b4e1073061ed8b56af4a6ece33c37d ./koolproxyR/webs/Module_koolproxyR.asp 6 | 1c7cbb356ecce21fd7f1a5b9aeea371c ./koolproxyR/koolproxyR/data/gen_ca.sh 7 | 1e6f195b17438a8f4fcbedeb3f611cc1 ./koolproxyR/koolproxyR/data/koolproxyR_ipset.conf 8 | 1ecdb8171fd854b1db3d374e2b7ef0a5 ./koolproxyR/scripts/KoolProxyR_status.sh 9 | 205ecd57522e65a7a8b37b4f8ce93314 ./koolproxyR/koolproxyR/data/rules/fanboy-annoyance.txt.md5 10 | 25cfaf8b56552b9599a6f55f871dd96f ./koolproxyR/koolproxyR/data/source.list 11 | 455585ce97167804afe58d141448bcac ./koolproxyR/scripts/KoolProxyR_rules_status.sh 12 | 461fc90d2031d159bf341c474952d3a5 ./koolproxyR/koolproxyR/koolproxy 13 | 4abd4eb1ec1986817541c0fd8f5778cb ./koolproxyR/scripts/KoolProxyR_getarp.sh 14 | 4e385f50bdb65b2b4c0737c5ca8457e3 ./koolproxyR/webs/res/icon-koolproxyR-bg.png 15 | 543b7dcbe5a1b43e152db9dcc949a2c4 ./koolproxyR/scripts/KoolProxyR_update_now.sh 16 | 58b317ac23d53f09684875001dc614d4 ./koolproxyR/koolproxyR/data/rules/yhosts.txt.md5 17 | 5e90e878d8c400cd6b515e85ff3b9f6a ./koolproxyR/scripts/KoolProxyR_check_chain.sh 18 | 715d8d892a7323346cf42d8d66cc96b7 ./koolproxyR/koolproxyR/data/rules/user.txt 19 | 7cbd39af3bef575390ee687930bd8e4e ./koolproxyR/webs/res/icon_koolproxyR-v.png 20 | 84faf06c2ba563781cf51f9f1e874ca8 ./koolproxyR/uninstall.sh 21 | 87539babfae10ac3e760c4e288418582 ./koolproxyR/webs/res/icon-koolproxyR.png 22 | 96859a5f16051299937443532e42bd10 ./koolproxyR/koolproxyR/data/rules/kp.dat.md5 23 | a5e453330cf06e456a48d41d55228906 ./koolproxyR/install.sh 24 | ac12d0ad90d576433314c817e67bb49f ./koolproxyR/init.d/S93koolproxyR.sh 25 | ad1264f809bc7eb1aac0babf625afe0f ./koolproxyR/scripts/KoolProxyR_config.sh 26 | bd417430e1ac3984d91364eefb18061d ./koolproxyR/koolproxyR/data/rules/kp.dat 27 | c288ed0a039141881b6c11dca4242ea1 ./koolproxyR/variable/haveged.ipk 28 | d45e76dfd8ca50c4ede26cd4eeec3753 ./koolproxyR/koolproxyR/kpr_config.sh 29 | e3db0d6ce96c4f3f8a03101ddcb6cfad ./koolproxyR/koolproxyR/data/rules/easylistchina.txt.md5 30 | e93e64cf91f5ec9e38d1cd80226cd418 ./koolproxyR/koolproxyR/data/rules/user.txt.md5 31 | ee36732f967e4ce9ffae0b4e03fd7612 ./koolproxyR/koolproxyR/data/rules/fanboy-annoyance.txt 32 | f2dd2bc02c5c0a230ba58011c58415b8 ./koolproxyR/scripts/KoolProxyR_rule_update.sh 33 | fa2b9d98dd3affb0a727c64eae87a643 ./koolproxyR/koolproxyR/data/rules/yhosts.txt 34 | ff61df84fcdb61c1c8aa6f6ff9253512 ./koolproxyR/koolproxyR/data/openssl.cnf 35 | -------------------------------------------------------------------------------- /otabuild.sh: -------------------------------------------------------------------------------- 1 | #!/bin/sh 2 | find ./koolproxyR -type f -print0 | xargs -0 md5sum | sort |grep -v ".git" | grep -v "./history" > md5.txt 3 | -------------------------------------------------------------------------------- /version: -------------------------------------------------------------------------------- 1 | 2.2.3 2 | de55230acdf715f0987ff0be2eedeef4 3 | --------------------------------------------------------------------------------