diff --git a/package/ctcgfw/luci-app-vssr/Makefile b/package/ctcgfw/luci-app-vssr/Makefile index b41cfe4803..4d04169f0e 100644 --- a/package/ctcgfw/luci-app-vssr/Makefile +++ b/package/ctcgfw/luci-app-vssr/Makefile @@ -1,8 +1,8 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-vssr -PKG_VERSION:=1.23 -PKG_RELEASE:=20200314-4 +PKG_VERSION:=1.24 +PKG_RELEASE:=20200315-4 PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \ diff --git a/package/ctcgfw/luci-app-vssr/luasrc/controller/vssr.lua b/package/ctcgfw/luci-app-vssr/luasrc/controller/vssr.lua index 8ceed8e69c..976b77b13a 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/controller/vssr.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/controller/vssr.lua @@ -148,6 +148,10 @@ function act_status() -- 全局服务器 e.global=luci.sys.call("ps -w | grep ssr-retcp | grep -v grep >/dev/null") == 0 +--检测负载均衡状态 + if tonumber(luci.sys.exec("ps -w | grep haproxy |grep -v grep| wc -l"))>0 then + e.haproxy= true + end --检测kcptun状态 if tonumber(luci.sys.exec("ps -w | grep kcptun-client |grep -v grep| wc -l"))>0 then e.kcptun= true @@ -183,7 +187,7 @@ function act_status() --检测UDP2RAW状态 if tonumber(luci.sys.exec("ps -w | grep udp2raw |grep -v grep| wc -l"))>0 then e.udp2raw= true - end +end --检测UDPspeeder状态 if tonumber(luci.sys.exec("ps -w | grep udpspeeder |grep -v grep| wc -l"))>0 then e.udpspeeder= true @@ -192,16 +196,18 @@ function act_status() if tonumber(luci.sys.exec("ps -w | grep ssr-server |grep -v grep| wc -l"))>0 then e.server= true end - if luci.sys.call("pidof ssr-server >/dev/null") == 0 then e.ssr_server= true - end if luci.sys.call("pidof ss-server >/dev/null") == 0 then e.ss_server= true end +if luci.sys.call("ps -w | grep trojan-server | grep -v grep >/dev/null") == 0 then + e.trojan_server= true + + end if luci.sys.call("ps -w | grep v2ray-server | grep -v grep >/dev/null") == 0 then e.v2_server= true @@ -250,6 +256,18 @@ function act_status() end + -- 检测Socks5 + + if tonumber(luci.sys.exec("ps -w | grep ssr-local |grep -v grep| wc -l"))>0 then + e.socks5 = true + elseif tonumber(luci.sys.exec("ps -w | grep ss-local |grep -v grep| wc -l"))>0 then + e.socks5 = true + elseif tonumber(luci.sys.exec("ps -w | grep v2-ssr-local |grep -v grep| wc -l"))>0 then + e.socks5 = true + elseif tonumber(luci.sys.exec("ps -w | grep trojan-ssr-local |grep -v grep| wc -l"))>0 then + e.socks5 = true + end + luci.http.prepare_content("application/json") luci.http.write_json(e) end diff --git a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/client.lua b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/client.lua index 93127b7a25..789aad0cb7 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/client.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/client.lua @@ -84,44 +84,6 @@ o:value("same", translate("Same as Global Server")) for _,key in pairs(key_table) do o:value(key,server_table[key]) end -o = s:option(Flag, "v2ray_flow", translate("Open v2ray split-flow")) -o.rmempty = false -o.description = translate("When open v2ray split-flow,your main server must be a v2ray server") - -o = s:option(ListValue, "youtube_server", translate("Youtube Proxy")) -o:value("nil", translate("Same as Global Server")) -for _,key in pairs(key_table_v2) do o:value(key,v2ray_table[key]) end -o:depends("v2ray_flow", "1") -o.default = "nil" - - - -o = s:option(ListValue, "tw_video_server", translate("TaiWan Video Proxy")) -o:value("nil", translate("Same as Global Server")) -for _,key in pairs(key_table_v2) do o:value(key,v2ray_table[key]) end -o:depends("v2ray_flow", "1") -o.default = "nil" - - -o = s:option(ListValue, "netflix_server", translate("Netflix Proxy")) -o:value("nil", translate("Same as Global Server")) -for _,key in pairs(key_table_v2) do o:value(key,v2ray_table[key]) end -o:depends("v2ray_flow", "1") -o.default = "nil" - - -o = s:option(ListValue, "disney_server", translate("Diseny+ Proxy")) -o:value("nil", translate("Same as Global Server")) -for _,key in pairs(key_table_v2) do o:value(key,v2ray_table[key]) end -o:depends("v2ray_flow", "1") -o.default = "nil" - - -o = s:option(ListValue, "prime_server", translate("Prime Video Proxy")) -o:value("nil", translate("Same as Global Server")) -for _,key in pairs(key_table_v2) do o:value(key,v2ray_table[key]) end -o:depends("v2ray_flow", "1") -o.default = "nil" o = s:option(ListValue, "threads", translate("Multi Threads Option")) o:value("0", translate("Auto Threads")) @@ -211,6 +173,72 @@ o:depends("pdnsd_enable", "6") o.default = "8.8.4.4:53" +-- [[ SOCKS5 Proxy ]]-- +if nixio.fs.access("/usr/bin/ssr-local") then + +s = m:section(TypedSection, "socks5_proxy", translate("SOCKS5 Proxy")) +s.anonymous = true +o = s:option(ListValue, "server", translate("Server")) +o:value("nil", translate("Disable")) +for _,key in pairs(key_table) do o:value(key,server_table[key]) end +o.default = "nil" +o.rmempty = false + +o = s:option(Value, "local_port", translate("Local Port")) +o.datatype = "port" +o.default = 1080 +o.rmempty = false + +-- [[ HTTP Proxy ]]-- +if nixio.fs.access("/usr/sbin/privoxy") then +o = s:option(Flag, "http_enable", translate("Enable HTTP Proxy")) +o.rmempty = false + +o = s:option(Value, "http_port", translate("HTTP Port")) +o.datatype = "port" +o.default = 1081 +o.rmempty = false +end +end +o = s:option(Flag, "v2ray_flow", translate("Open v2ray split-flow") .."") +o.rmempty = false +o.description = ("" ..translate("When open v2ray split-flow,your main server must be a v2ray server").."") + +o = s:option(ListValue, "youtube_server", translate("Youtube Proxy")) +o:value("nil", translate("Same as Global Server")) +for _,key in pairs(key_table_v2) do o:value(key,v2ray_table[key]) end +o:depends("v2ray_flow", "1") +o.default = "nil" + + + +o = s:option(ListValue, "tw_video_server", translate("TaiWan Video Proxy")) +o:value("nil", translate("Same as Global Server")) +for _,key in pairs(key_table_v2) do o:value(key,v2ray_table[key]) end +o:depends("v2ray_flow", "1") +o.default = "nil" + + +o = s:option(ListValue, "netflix_server", translate("Netflix Proxy")) +o:value("nil", translate("Same as Global Server")) +for _,key in pairs(key_table_v2) do o:value(key,v2ray_table[key]) end +o:depends("v2ray_flow", "1") +o.default = "nil" + + +o = s:option(ListValue, "disney_server", translate("Diseny+ Proxy")) +o:value("nil", translate("Same as Global Server")) +for _,key in pairs(key_table_v2) do o:value(key,v2ray_table[key]) end +o:depends("v2ray_flow", "1") +o.default = "nil" + + +o = s:option(ListValue, "prime_server", translate("Prime Video Proxy")) +o:value("nil", translate("Same as Global Server")) +for _,key in pairs(key_table_v2) do o:value(key,v2ray_table[key]) end +o:depends("v2ray_flow", "1") +o.default = "nil" + o = s:option(Button,"gfw_data",translate("GFW List Data")) o.rawhtml = true o.template = "vssr/refresh" @@ -229,7 +257,6 @@ o.value =ip_count .. " " .. translate("Records") o = s:option(Button,"check_port",translate("Check Server Port")) o.template = "vssr/checkport" o.value =translate("No Check") - m:section(SimpleSection).template = "vssr/status2" return m diff --git a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/control.lua b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/control.lua index a6df92f69e..67d326ee6c 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/control.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/control.lua @@ -66,7 +66,9 @@ end) -- o:value("2", translatef("Forwarded Proxy")) -- o.rmempty = false -s:tab("esc", translate("Bypass Domain List")) +s:tab("esc", translate("Bypass Domain List"), "" .. + translate("Join the white list of domain names will not go agent.") .. + "") local escconf = "/etc/config/white.list" o = s:taboption("esc", TextValue, "escconf") @@ -84,7 +86,10 @@ o.remove = function(self, section, value) end -s:tab("block", translate("Black Domain List")) +s:tab("block", translate("Black Domain List"), + "" .. translate( + "These had been joined websites will use proxy.Please input the domain names of websites,every line can input only one website domain.For example,google.com.") .. + "") local blockconf = "/etc/config/black.list" o = s:taboption("block", TextValue, "blockconf") diff --git a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/status.lua b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/status.lua index c36f9cd9d8..47a5ec218d 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/status.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/status.lua @@ -1,7 +1,7 @@ -- Copyright (C) 2017 yushi studio -- Licensed to the public under the GNU General Public License v3. -local IPK_Version="20200310.1.22" +local IPK_Version="20200315.1.24" local m, s, o local redir_run=0 local reudp_run=0 @@ -272,8 +272,8 @@ t = m:section(Table, procs, translate("Running Details: ") .. "(/var/etc)") t:option(DummyValue, "PID", translate("PID")) t:option(DummyValue, "COMMAND", translate("CMD")) t:option(DummyValue, "LISTEN", translate("LISTEN")) -t:option(DummyValue, "%CPU", translate("CPU")) -t:option(DummyValue, "%MEM", translate("MEM")) +t:option(DummyValue, "%CPU", translate("CPU usage (%)")) +t:option(DummyValue, "%MEM", translate("Memory usage (%)")) s=m:field(DummyValue,"redir_run",translate("Global Client")) s.rawhtml = true diff --git a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/subscription.lua b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/subscription.lua index 8f10af47db..49a957ab87 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/subscription.lua +++ b/package/ctcgfw/luci-app-vssr/luasrc/model/cbi/vssr/subscription.lua @@ -53,6 +53,10 @@ o = s:option(Flag, "proxy", translate("Through proxy update")) o.rmempty = false o.description = translate("Through proxy update list, Not Recommended ") +o = s:option(Flag, "switch", translate("Subscribe Default Auto-Switch")) +o.rmempty = false +o.description = translate("Subscribe new add server default Auto-Switch on") +o.default="1" o = s:option(DummyValue, "", "") o.rawhtml = true diff --git a/package/ctcgfw/luci-app-vssr/luasrc/view/vssr/status.htm b/package/ctcgfw/luci-app-vssr/luasrc/view/vssr/status.htm index 0b2110b178..b46b4d48aa 100644 --- a/package/ctcgfw/luci-app-vssr/luasrc/view/vssr/status.htm +++ b/package/ctcgfw/luci-app-vssr/luasrc/view/vssr/status.htm @@ -24,6 +24,18 @@ math.randomseed(os.time()) + +
+
+
+

<%:domestic website%>
<%:Problem detected%>✘

+
+
+
+ +
+
+
@@ -39,20 +51,6 @@ math.randomseed(os.time())
-
-
-
-

<%:domestic website%>
<%:Problem detected%>✘

-
-
-
- -
-
-
-
- -
diff --git a/package/ctcgfw/luci-app-vssr/po/zh_Hans/vssr.po b/package/ctcgfw/luci-app-vssr/po/zh_Hans/vssr.po index 1841d1222f..c0e904ef6a 100644 --- a/package/ctcgfw/luci-app-vssr/po/zh_Hans/vssr.po +++ b/package/ctcgfw/luci-app-vssr/po/zh_Hans/vssr.po @@ -800,7 +800,7 @@ msgid "Plugin Opts" msgstr "插件参数" msgid "Before subscribing please click below to delete all servers in the subscription" -msgstr "使用此订阅前请删除所有服务器在订阅" +msgstr "使用此订阅前请先删除所有服务器在订阅" msgid "Chnroute Setting" msgstr "国内IP段数据库更新设置" @@ -872,4 +872,16 @@ msgid "File Viewer" msgstr "文件查看器" msgid "Enable Authentication" -msgstr "启用 用户名/密码 认证" \ No newline at end of file +msgstr "启用 用户名/密码 认证" + +msgid "Subscribe Default Auto-Switch" +msgstr "订阅新节点自动切换设置" + +msgid "Subscribe new add server default Auto-Switch on" +msgstr "订阅加入的新节点默认开启自动切换" + +msgid "Join the white list of domain names will not go agent." +msgstr "加入的域名不走代理通道,对所有模式有效。且优先于黑名单。" + +msgid "These had been joined websites will use proxy.Please input the domain names of websites,every line can input only one website domain.For example,google.com." +msgstr "加入的域名将走代理,对所有模式有效。输入网站域名,如:google.com,每个地址段一行。" \ No newline at end of file diff --git a/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/subscribe.sh b/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/subscribe.sh index 318bfbfc0c..b6825c6a66 100644 --- a/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/subscribe.sh +++ b/package/ctcgfw/luci-app-vssr/root/usr/share/vssr/subscribe.sh @@ -208,6 +208,8 @@ for ((o = 0; o < ${#subscribe_url[@]}; o++)); do ssr_tcp_guise="none" json_get_var ssr_ws_host host json_get_var ssr_ws_path path + json_get_var ssr_h2_host host + json_get_var ssr_h2_path path json_get_var ssr_tls tls if [ "$ssr_tls" == "tls" -o "$ssr_tls" == "1" ]; then ssr_tls="1" @@ -220,7 +222,11 @@ for ((o = 0; o < ${#subscribe_url[@]}; o++)); do if [ -z "ssr_remarks" ]; then # 没有备注的话则生成一个 ssr_remarks="$ssr_host:$ssr_port" fi - + # 丢弃没有host的无效服务器信息,例如:剩余流量xxx + if [[ "$ssr_remarks" =~ "过期时间" ]] || [[ "$ssr_remarks" =~ "剩余流量" ]] || [[ "$ssr_remarks" =~ "最新域名" ]] || [[ "$ssr_remarks" =~ "防失联QQ群" ]] || [ -z "$ssr_host" ];then + echo_date "丢弃无效节点:【$ssr_remarks】" + continue + fi uci_name_tmp=$(uci show $name | grep -w "$ssr_hashkey" | awk -F . '{print $2}') if [ -z "$uci_name_tmp" ]; then # 判断当前服务器信息是否存在 uci_name_tmp=$(uci add $name servers) diff --git a/package/ctcgfw/luci-app-vssr/root/www/luci-static/vssr/css/vssr.css b/package/ctcgfw/luci-app-vssr/root/www/luci-static/vssr/css/vssr.css index 8ebe02d021..7ec27bf899 100644 --- a/package/ctcgfw/luci-app-vssr/root/www/luci-static/vssr/css/vssr.css +++ b/package/ctcgfw/luci-app-vssr/root/www/luci-static/vssr/css/vssr.css @@ -375,7 +375,7 @@ https://github.com/pure-css/pure/blob/master/LICENSE.md position: relative; background: #f4; margin: 10px !important; - padding: 18px 18px 18px 110px; + padding: 18px 18px 18px 104px; box-shadow: 0 0 5px 0 rgba(136, 152, 170, .75); border-radius: .5rem; border: 0;