设为首页收藏本站

恩山无线论坛

 找回密码
 立即注册

QQ登录

只需一步,快速开始

搜索
查看: 14913|回复: 173

[关贴][2017-04-21] Unofficial luci-app-koolproxy, 更新至3.4.1

    [复制链接]
发表于 2017-3-31 19:54 | 显示全部楼层
本帖最后由 jc天马行空 于 2017-3-31 21:28 编辑
  1. ifeq ($(ARCH),mipsel)
  2.         $(INSTALL_BIN) ./files/bin/mipsel $(1)/usr/share/koolproxy/koolproxy
  3. endif
  4. ifeq ($(ARCH),mips)
  5.         $(INSTALL_BIN) ./files/bin/mips $(1)/usr/share/koolproxy/koolproxy
  6. endif
  7. ifeq ($(ARCH),i386)
  8.         $(INSTALL_BIN) ./files/bin/i386 $(1)/usr/share/koolproxy/koolproxy
  9. endif
  10. ifeq ($(ARCH),x86_64)
  11.         $(INSTALL_BIN) ./files/bin/x86_64 $(1)/usr/share/koolproxy/koolproxy
  12. endif
  13. ifeq ($(ARCH),arm)
  14.         $(INSTALL_BIN) ./files/bin/arm $(1)/usr/share/koolproxy/koolproxy
  15. endif
复制代码
其实只需要一句话就行了
  1. $(INSTALL_DIR) $(1)/usr/share/koolproxy
  2. $(INSTALL_BIN) ./files/bin/$(ARCH) $(1)/usr/share/koolproxy/koolproxy
复制代码


点评

其实这样也行的。写的详细点  详情 回复 发表于 2017-3-31 20:59
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-1 00:49 来自手机 | 显示全部楼层
zshwq5 发表于 2017-3-31 18:21
请问:
如果安装的S  R    其中 类似 iptables -t nat -N shadows.ocksr_pre


明显得改,kp默认查找的是大写的shadowso~cks开头的防火墙规则,你那规则是小写的,自己修改成小写

评分

参与人数 1恩山币 +3 收起 理由
zshwq5 + 3 感谢提供帮助。

查看全部评分

我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-9 15:15 | 显示全部楼层
把mipsel_24kec_dsp补上吧,mipsel,潘多拉mt7620
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-9 17:01 | 显示全部楼层
owen5 发表于 2017-4-9 16:25
这里好像没有显示,

缺少依赖

点评

logread你就知道什么原因了  详情 回复 发表于 2017-4-10 09:35
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-10 21:48 | 显示全部楼层
paradislover 发表于 2017-4-10 09:35
logread你就知道什么原因了

没仔细看更新脚本,问题出在wget身上,他用的应该是busybox自带的wget命令,实际下载失败但是你这个log还是显示更新成功(有bug);解决方法是另外安装一下wget

点评

怎么可以这么下结论,wget有没有问题,需要先删除/usr/share/koolproxy/data目录的规则,然后点击手动更新规则,查看是否重新下载规则。 至于规则日期与版本没有显示,是luci里面的脚本, local s=luci.sys.exec("  详情 回复 发表于 2017-4-11 09:27
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-11 09:33 来自手机 | 显示全部楼层
本帖最后由 jc天马行空 于 2017-4-11 09:41 编辑
paradislover 发表于 2017-4-11 09:27
怎么可以这么下结论,wget有没有问题,需要先删除/usr/share/koolproxy/data目录的规则,然后点击手动更 ...

我要不是亲身遇到,我不会去说这个;用你分享的源码编译的,本来就不集成进规则文件。你不信让他把/usr/share/koolproxy/data目录截图给你看,日志里说是成功下载,实际并没有规则文件

点评

你用的是老版本,当然有问题,会下载到根目录下,你自己去翻翻github 我的意思是你不能想当然的把别人的问题推断成和你一样的问题  详情 回复 发表于 2017-4-11 09:49
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-11 09:50 | 显示全部楼层
paradislover 发表于 2017-4-11 09:27
怎么可以这么下结论,wget有没有问题,需要先删除/usr/share/koolproxy/data目录的规则,然后点击手动更 ...

针对这个问题,给你一个修复建议,才不采纳由你
你的原更新脚本
  1. update_exrule(){
  2.         local file
  3.         local exrule
  4.         local enable
  5.         config_get file $1 file
  6.         config_get exrule $1 url
  7.         config_get enable $1 load
  8.         if [ -n "$file" ] && [ -n "$exrule" ]; then
  9.                 if [ $enable -ne 1 ]; then
  10.                         return
  11.                 fi
  12.                 wget-ssl --quiet --timeout=5 --no-check-certificate $exrule -O $DATAPATH/$file
  13.                 echo $(date): ---------------------------------------------------- >>$LOGFILE
  14.                 if [ "$?" == "0" ]; then
  15.                         uci set koolproxy.$1.time="`date +%Y-%m-%d" "%H:%M`"
  16.                         uci commit koolproxy
  17.                         echo $(date): 更新成功! $nick: $exrule >>$LOGFILE
  18.                 else
  19.                         echo $(date): 更新失败! $nick: $exrule >>$LOGFILE
  20.                 fi
  21.                 echo >>$LOGFILE
  22.         fi
  23. }
复制代码
改成
  1. update_exrule(){
  2.         local file
  3.         local exrule
  4.         local enable
  5.         config_get file $1 file
  6.         config_get exrule $1 url
  7.         config_get enable $1 load
  8.         if [ -n "$file" ] && [ -n "$exrule" ]; then
  9.                 if [ $enable -ne 1 ]; then
  10.                         return
  11.                 fi
  12. echo $(date): ---------------------------------------------------- >>$LOGFILE
  13.                 wget-ssl --quiet --timeout=5 --no-check-certificate $exrule -O $DATAPATH/$file
  14.                 if [ "$?" == "0" ]; then
  15.                         uci set koolproxy.$1.time="`date +%Y-%m-%d" "%H:%M`"
  16.                         uci commit koolproxy
  17.                         echo $(date): 更新成功! $nick: $exrule >>$LOGFILE
  18.                 else
  19.                         echo $(date): 更新失败! $nick: $exrule >>$LOGFILE
  20.                 fi
  21.                 echo >>$LOGFILE
  22.         fi
  23. }
复制代码
你的问题就出在echo $(date): ---------------------------------------------------- >>$LOGFILE这句身上,应为就算wget失败,但是你在它下面放了句echo $(date),怎么着$?都是为0
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-11 09:53 | 显示全部楼层
paradislover 发表于 2017-4-11 09:49
你用的是老版本,当然有问题,会下载到根目录下,你自己去翻翻github

我的意思是你不能想当然的把别人 ...

修正建议已经给你,其他是你的事儿了 2017-04-11_095225.png

点评

所以说不是wget的问题,至于你反馈的问题,会在github上修复  详情 回复 发表于 2017-4-11 09:56
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-11 09:57 | 显示全部楼层
paradislover 发表于 2017-4-11 09:56
所以说不是wget的问题,至于你反馈的问题,会在github上修复

他用的wget不支持ssl所致

点评

应该是这个问题, 但是我编译时候选择了wget-default还是不行, 大神能指点下吗  详情 回复 发表于 2017-4-11 19:35
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-11 20:39 | 显示全部楼层
owen5 发表于 2017-4-11 19:35
应该是这个问题, 但是我编译时候选择了wget-default还是不行, 大神能指点下吗

我猜你编译的是石像鬼提供的wget-default

点评

是的, 指点下吧。 需要选择哪个  详情 回复 发表于 2017-4-11 20:46
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-12 14:16 | 显示全部楼层
owen5 发表于 2017-4-12 12:40
好的, 谢谢楼主。
  1. local a=require"nixio.fs"
  2. local e=require"luci.dispatcher"
  3. local e=require("luci.model.ipkg")
  4. local e=luci.model.uci.cursor()
  5. local n=require"luci.sys"
  6. local d=luci.http
  7. local e
  8. local e="1.7"
  9. local r="koolproxy"
  10. local o,t,e
  11. local v=luci.sys.exec("/usr/share/koolproxy/koolproxy -v")
  12. local s=luci.sys.exec("head -3 /usr/share/koolproxy/data/koolproxy.txt | grep rules | awk -F' ' '{print $3,$4}'")
  13. local u=luci.sys.exec("head -4 /usr/share/koolproxy/data/koolproxy.txt | grep video | awk -F' ' '{print $3,$4}'")
  14. local l=luci.sys.exec("grep -v !x /usr/share/koolproxy/data/koolproxy.txt | wc -l")
  15. local i=luci.sys.exec("cat /usr/share/koolproxy/dnsmasq.adblock | wc -l")
  16. local h=luci.sys.exec("grep -v '^!' /usr/share/koolproxy/data/user.txt | wc -l")

  17. local function is_running(name)
  18.         return luci.sys.call("pidof %s >/dev/null" %{name}) == 0
  19. end

  20. local function get_status(name)
  21.         return is_running(name) and translate("RUNNING") or translate("NOT RUNNING")
  22. end

  23. o=Map(r,translate("koolproxy"),translate("A powerful advertisement blocker. <br /><font color="red">Adblock Plus Host list + koolproxy Blacklist mode runs without loss of bandwidth due to performance issues.<br /></font>"))
  24. o.template="koolproxy/index"
  25. t=o:section(TypedSection,"global",translate("Running Status"))
  26. t.anonymous=true
  27. e=t:option(DummyValue,"_status",translate("Transparent Proxy"))
  28. e.value=get_status("koolproxy")
  29. t=o:section(TypedSection,"global",translate("Global Setting"))
  30. t.anonymous=true
  31. t.addremove=false
  32. t:tab("base",translate("Basic Settings"))
  33. t:tab("cert",translate("Certificate Management"))
  34. t:tab("weblist",translate("Set Backlist Of Websites"))
  35. t:tab("iplist",translate("Set Backlist Of IP"))
  36. t:tab("customlist",translate("Set Backlist Of custom"))
  37. t:tab("logs",translate("View the logs"))
  38. e=t:taboption("base",Flag,"enabled",translate("Enable"))
  39. e.default=0
  40. e.rmempty=false
  41. e=t:taboption("base",Value, "startup_delay", translate("启动延时"))
  42. e:value(0, translate("禁用"))
  43. for _, v in ipairs({5, 10, 15, 25, 40}) do
  44.         e:value(v, translate(v .. "秒"))
  45. end
  46. e.datatype = "uinteger"
  47. e.default = 0
  48. e.rmempty = false
  49. e=t:taboption("base",ListValue,"filter_mode",translate('Default')..translate("Filter Mode"))
  50. e.default="adblock"
  51. e.rmempty=false
  52. e:value("disable",translate("No Filter"))
  53. e:value("global",translate("Global Filter"))
  54. e:value("adblock",translate("AdBlock Filter"))
  55. e=t:taboption("base",Flag,"adblock",translate("Open adblock"))
  56. e.default=0
  57. e:depends("filter_mode","adblock")
  58. e=t:taboption("base",ListValue,"time_update",translate("Timing update rules"))
  59. for t=0,23 do
  60.         e:value(t,translate("每天"..t.."点"))
  61. end
  62. e.default=0
  63. e.rmempty=false
  64. restart=t:taboption("base",Button,"restart",translate("Manually update the koolproxy rule"))
  65. restart.inputtitle=translate("Update manually")
  66. restart.inputstyle="reload"
  67. restart.write=function()
  68.         luci.sys.call("/usr/share/koolproxy/koolproxyupdate rules 2>/dev/null")
  69.         luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy"))
  70. end
  71. update=t:taboption("base",Button,"update",translate("主程序更新"))
  72. update.inputtitle=translate("Update manually")
  73. update.inputstyle="reload"
  74. update.write=function()
  75.         luci.sys.call("/usr/share/koolproxy/koolproxyupdate binary 2>&1 >/dev/null")
  76.         luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy"))
  77. end

  78. e=t:taboption("base",DummyValue,"status0",translate("</label><div align="left">当前版本<strong>【<font color="#660099">"..v.."</font>】</strong></div>"))
  79. e=t:taboption("base",DummyValue,"status1",translate("</label><div align="left">静态规则<strong>【<font color="#660099">"..s.."共"..l.."条</font>】</strong></div>"))
  80. e=t:taboption("base",DummyValue,"status2",translate("</label><div align="left">视频规则<strong>【<font color="#660099">"..u.."</font>】</strong></div>"))
  81. e=t:taboption("base",DummyValue,"status3",translate("</label><div align="left">自定规则<strong>【<font color="#660099">"..h.."</font>】</strong></div>"))
  82. e=t:taboption("base",DummyValue,"status4",translate("</label><div align="left">Host规则<strong>【<font color="#660099">"..i.."</font>】</strong></div>"))

  83. e=t:taboption("cert",DummyValue,"c1status",translate("<div align="left">Certificate Restore</div>"))
  84. e=t:taboption("cert",FileUpload,"")
  85. e.template="koolproxy/caupload"
  86. e=t:taboption("cert",DummyValue,"",nil)
  87. e.template="koolproxy/cadvalue"
  88. if nixio.fs.access("/usr/share/koolproxy/data/certs/ca.crt")then
  89.         e=t:taboption("cert",DummyValue,"c2status",translate("<div align="left">Certificate Backup</div>"))
  90.         e=t:taboption("cert",Button,"certificate")
  91.         e.inputtitle=translate("Backup Download")
  92.         e.inputstyle="reload"
  93.         e.write=function()
  94.                 luci.sys.call("/usr/share/koolproxy/camanagement backup")
  95.                 Download()
  96.                 luci.http.redirect(luci.dispatcher.build_url("admin","services","koolproxy"))
  97.         end
  98. end
  99. local i="/etc/adblocklist/adblock"
  100. e=t:taboption("weblist",TextValue,"configfile")
  101. e.description=translate("These had been joined websites will use filter,but only blacklist model.Please input the domain names of websites,every line can input only one website domain.For example,google.com.")
  102. e.rows=28
  103. e.wrap="off"
  104. e.cfgvalue=function(t,t)
  105.         return a.readfile(i)or""
  106. end
  107. e.write=function(t,t,e)
  108.         a.writefile("/tmp/adblock",e:gsub("\r\n","\n"))
  109.         if(luci.sys.call("cmp -s /tmp/adblock /etc/adblocklist/adblock")==1)then
  110.                 a.writefile(i,e:gsub("\r\n","\n"))
  111.                 luci.sys.call("/usr/sbin/adblock >/dev/null")
  112.         end
  113.         a.remove("/tmp/adblock")
  114. end
  115. local i="/etc/adblocklist/adblockip"
  116. e=t:taboption("iplist",TextValue,"adconfigfile")
  117. e.description=translate("These had been joined ip addresses will use proxy,but only GFW model.Please input the ip address or ip address segment,every line can input only one ip address.For example,112.123.134.145/24 or 112.123.134.145.")
  118. e.rows=28
  119. e.wrap="off"
  120. e.cfgvalue=function(t,t)
  121.         return a.readfile(i)or""
  122. end
  123. e.write=function(t,t,e)
  124.         a.writefile(i,e:gsub("\r\n","\n"))
  125. end
  126. local i="/usr/share/koolproxy/data/user.txt"
  127. e=t:taboption("customlist",TextValue,"configfile1")
  128. e.description=translate("Enter your custom rules, each row.")
  129. e.rows=28
  130. e.wrap="off"
  131. e.cfgvalue=function(t,t)
  132.         return a.readfile(i)or""
  133. end
  134. e.write=function(t,t,e)
  135.         a.writefile(i,e:gsub("\r\n","\n"))
  136. end
  137. local i="/var/log/koolproxy.log"
  138. e=t:taboption("logs",TextValue,"configfile2")
  139. e.description=translate("Koolproxy Logs")
  140. e.rows=28
  141. e.wrap="off"
  142. e.cfgvalue=function(t,t)
  143.         return a.readfile(i)or""
  144. end
  145. e.write=function(e,e,e)
  146. end
  147. t=o:section(TypedSection,"acl_rule",translate("koolproxy ACLs"),
  148. translate("ACLs is a tools which used to designate specific IP filter mode,The MAC addresses added to the list will be filtered using https"))
  149. t.template="cbi/tblsection"
  150. t.sortable=true
  151. t.anonymous=true
  152. t.addremove=true
  153. e=t:option(Value,"remarks",translate("Client Remarks"))
  154. e.width="30%"
  155. e.rmempty=true
  156. e=t:option(Value,"ipaddr",translate("IP Address"))
  157. e.width="20%"
  158. e.datatype="ip4addr"
  159. n.net.arptable(function(t)
  160.         e:value(t["IP address"])
  161. end)
  162. e=t:option(Value,"mac",translate("MAC Address"))
  163. e.width="20%"
  164. e.rmempty=true
  165. n.net.mac_hints(function(t,a)
  166.         e:value(t,"%s (%s)"%{t,a})
  167. end)
  168. e=t:option(ListValue,"filter_mode",translate("Filter Mode"))
  169. e.width="20%"
  170. e.default="disable"
  171. e.rmempty=false
  172. e:value("disable",translate("No Filter"))
  173. e:value("global",translate("Global Filter"))
  174. e:value("adblock",translate("AdBlock Filter"))
  175. e:value("ghttps",translate("Global Https Filter"))
  176. e:value("ahttps",translate("AdBlock Https Filter"))

  177. t=o:section(TypedSection,"rss_rule",translate("订阅规则"),
  178. translate("请确保第三方规则兼容Koolproxy").."<br /> " ..
  179. translate("地址变动请关注官方群: ") .. "<a href="https://jq.qq.com/?_wv=1027&k=479s5t4">" ..
  180. "<b><font color="#660099">" .. translate("==点击链接加入群【koolproxy交流】==") .. "</font></b>" .. "</a>")
  181. t.template="cbi/tblsection"
  182. t.sortable=true
  183. t.anonymous=true
  184. t.addremove=true
  185. e=t:option(Value,"name",translate("规则名称"))
  186. e.width="10%"
  187. e.rmempty=false
  188. e=t:option(Value,"url",translate("订阅地址"))
  189. e.width="55%"
  190. e.rmempty=false
  191. e.placeholder="[https|http|ftp]://[Hostname]/[File]"
  192. function e.validate(self, value)
  193.         if not value then
  194.                 return nil
  195.         else
  196.                 return value
  197.         end
  198. end
  199. e=t:option(DummyValue,"time",translate("更新时间"))
  200. e.width="15%"
  201. e=t:option(Flag,"load",translate("启用"))
  202. e.width="10%"
  203. e.default=0
  204. e.rmempty=false

  205. function Download()
  206.         local t,e
  207.         t=nixio.open("/tmp/upload/koolproxyca.tar.gz","r")
  208.         luci.http.header('Content-Disposition','attachment; filename="koolproxyCA.tar.gz"')
  209.         luci.http.prepare_content("application/octet-stream")
  210.         while true do
  211.                 e=t:read(nixio.const.buffersize)
  212.                 if(not e)or(#e==0)then
  213.                         break
  214.                 else
  215.                         luci.http.write(e)
  216.                 end
  217.         end
  218.         t:close()
  219.         luci.http.close()
  220. end
  221. local t,e
  222. t="/tmp/upload/"
  223. nixio.fs.mkdir(t)
  224. d.setfilehandler(
  225. function(o,a,i)
  226.         if not e then
  227.                 if not o then return end
  228.                 e=nixio.open(t..o.file,"w")
  229.                 if not e then
  230.                         return
  231.                 end
  232.         end
  233.         if a and e then
  234.                 e:write(a)
  235.         end
  236.         if i and e then
  237.                 e:close()
  238.                 e=nil
  239.                 luci.sys.call("/usr/share/koolproxy/camanagement restore")
  240.         end
  241. end
  242. )
  243. return o
复制代码

点评

非常感觉。。。  详情 回复 发表于 2017-4-12 14:41
我的恩山、我的无线 The best wifi forum is right here.
发表于 2017-4-18 12:52 | 显示全部楼层
owen5 发表于 2017-4-18 12:13
谢谢解答, 明白了

更新脚本有bug,下载失败后还会删了原来的文件,换这个
koolproxyupdate.rar (2.4 KB, 下载次数: 28)

点评

感谢,改动情绪明了!  发表于 2017-4-18 21:42
感谢分享。收藏先。  详情 回复 发表于 2017-4-18 15:13
非常感谢。  详情 回复 发表于 2017-4-18 13:59
我的恩山、我的无线 The best wifi forum is right here.
您需要登录后才可以回帖 登录 | 立即注册

本版积分规则

QQ|手机版|小黑屋|Archiver|手机APP版|恩山无线论坛 ( 苏ICP备05084872号-1 )  

GMT+8, 2017-9-21 04:02

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

快速回复 返回顶部 返回列表