Selaa lähdekoodia

Fix vmess subscribe and Fix xtls security configuration error

Mattraks 4 vuotta sitten
vanhempi
sitoutus
021fd8e6f8

+ 1 - 1
luci-app-ssr-plus/Makefile

@@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk
 
 
 PKG_NAME:=luci-app-ssr-plus
 PKG_NAME:=luci-app-ssr-plus
 PKG_VERSION:=181
 PKG_VERSION:=181
-PKG_RELEASE:=3
+PKG_RELEASE:=4
 
 
 include $(INCLUDE_DIR)/package.mk
 include $(INCLUDE_DIR)/package.mk
 
 

+ 23 - 30
luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua

@@ -4,7 +4,7 @@
 require "nixio.fs"
 require "nixio.fs"
 require "luci.sys"
 require "luci.sys"
 require "luci.http"
 require "luci.http"
-local m, s, o,kcp_enable
+local m, s, o, kcp_enable
 local shadowsocksr = "shadowsocksr"
 local shadowsocksr = "shadowsocksr"
 local sid = arg[1]
 local sid = arg[1]
 local uuid = luci.sys.exec("cat /proc/sys/kernel/random/uuid")
 local uuid = luci.sys.exec("cat /proc/sys/kernel/random/uuid")
@@ -120,10 +120,10 @@ s = m:section(NamedSection, sid, "servers")
 s.anonymous = true
 s.anonymous = true
 s.addremove = false
 s.addremove = false
 
 
-o = s:option(DummyValue,"ssr_url","SS/SSR/V2RAY/TROJAN URL")
+o = s:option(DummyValue, "ssr_url", "SS/SSR/V2RAY/TROJAN URL")
 o.rawhtml = true
 o.rawhtml = true
 o.template = "shadowsocksr/ssrurl"
 o.template = "shadowsocksr/ssrurl"
-o.value =sid
+o.value = sid
 
 
 o = s:option(ListValue, "type", translate("Server Node Type"))
 o = s:option(ListValue, "type", translate("Server Node Type"))
 o:value("ssr", translate("ShadowsocksR"))
 o:value("ssr", translate("ShadowsocksR"))
@@ -149,9 +149,7 @@ o.description = translate("Using incorrect encryption mothod may causes service
 o = s:option(Value, "alias", translate("Alias(optional)"))
 o = s:option(Value, "alias", translate("Alias(optional)"))
 
 
 o = s:option(ListValue, "iface", translate("Network interface to use"))
 o = s:option(ListValue, "iface", translate("Network interface to use"))
-for _, e in ipairs(luci.sys.net.devices()) do
-if e ~= "lo" then o:value(e) end
-end
+for _, e in ipairs(luci.sys.net.devices()) do if e ~= "lo" then o:value(e) end end
 o:depends("type", "tun")
 o:depends("type", "tun")
 o.description = translate("Redirect traffic to this network interface")
 o.description = translate("Redirect traffic to this network interface")
 
 
@@ -185,7 +183,7 @@ o:depends("type", "socks5")
 o = s:option(Value, "username", translate("Username"))
 o = s:option(Value, "username", translate("Username"))
 o.rmempty = true
 o.rmempty = true
 o:depends("type", "naiveproxy")
 o:depends("type", "naiveproxy")
-o:depends("type", "socks5")
+o:depends({type = "socks5", auth_enable = true})
 
 
 o = s:option(Value, "password", translate("Password"))
 o = s:option(Value, "password", translate("Password"))
 o.password = true
 o.password = true
@@ -194,7 +192,7 @@ o:depends("type", "ssr")
 o:depends("type", "ss")
 o:depends("type", "ss")
 o:depends("type", "trojan")
 o:depends("type", "trojan")
 o:depends("type", "naiveproxy")
 o:depends("type", "naiveproxy")
-o:depends("type", "socks5")
+o:depends({type = "socks5", auth_enable = true})
 
 
 o = s:option(ListValue, "encrypt_method", translate("Encrypt Method"))
 o = s:option(ListValue, "encrypt_method", translate("Encrypt Method"))
 for _, v in ipairs(encrypt_methods) do o:value(v) end
 for _, v in ipairs(encrypt_methods) do o:value(v) end
@@ -291,7 +289,7 @@ o.rmempty = true
 
 
 -- WS域名
 -- WS域名
 o = s:option(Value, "ws_host", translate("WebSocket Host"))
 o = s:option(Value, "ws_host", translate("WebSocket Host"))
-o:depends("transport", "ws")
+o:depends({transport = "ws", tls = false})
 o.rmempty = true
 o.rmempty = true
 
 
 -- WS路径
 -- WS路径
@@ -383,7 +381,7 @@ o.default = 2
 o.rmempty = true
 o.rmempty = true
 
 
 o = s:option(Value, "seed", translate("Obfuscate password (optional)"))
 o = s:option(Value, "seed", translate("Obfuscate password (optional)"))
-o:depends({type="vless",transport="kcp"})
+o:depends({type = "vless", transport = "kcp"})
 o.rmempty = true
 o.rmempty = true
 
 
 o = s:option(Flag, "congestion", translate("Congestion"))
 o = s:option(Flag, "congestion", translate("Congestion"))
@@ -395,20 +393,15 @@ o = s:option(Flag, "tls", translate("TLS"))
 o.rmempty = true
 o.rmempty = true
 o.default = "0"
 o.default = "0"
 o:depends("type", "vmess")
 o:depends("type", "vmess")
-o:depends({type="vless", xtls=false})
+o:depends({type = "vless", xtls = false})
 o:depends("type", "trojan")
 o:depends("type", "trojan")
 
 
-o = s:option(Value, "tls_host", translate("TLS Host"))
-o:depends("type", "trojan")
-o:depends("tls", "1")
-o.rmempty = true
-
 -- XTLS
 -- XTLS
 if nixio.fs.access("/usr/bin/xray") or nixio.fs.access("/usr/bin/xray/xray") then
 if nixio.fs.access("/usr/bin/xray") or nixio.fs.access("/usr/bin/xray/xray") then
 o = s:option(Flag, "xtls", translate("XTLS"))
 o = s:option(Flag, "xtls", translate("XTLS"))
 o.rmempty = true
 o.rmempty = true
 o.default = "0"
 o.default = "0"
-o:depends({type="vless",transport="tcp",tls=false})
+o:depends({type = "vless", transport = "tcp", tls = false})
 end
 end
 
 
 -- Flow
 -- Flow
@@ -418,18 +411,24 @@ o.rmempty = true
 o.default = "xtls-rprx-splice"
 o.default = "xtls-rprx-splice"
 o:depends("xtls", true)
 o:depends("xtls", true)
 
 
+o = s:option(Value, "tls_host", translate("TLS Host"))
+o:depends("type", "trojan")
+o:depends("tls", true)
+o:depends("xtls", true)
+o.rmempty = true
+
 -- [[ allowInsecure ]]--
 -- [[ allowInsecure ]]--
 o = s:option(Flag, "insecure", translate("allowInsecure"))
 o = s:option(Flag, "insecure", translate("allowInsecure"))
 o.rmempty = false
 o.rmempty = false
 o:depends("tls", true)
 o:depends("tls", true)
-o:depends("xtls",true)
+o:depends("xtls", true)
 o.description = translate("If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates.")
 o.description = translate("If true, allowss insecure connection at TLS client, e.g., TLS server uses unverifiable certificates.")
 
 
 -- [[ Mux ]]--
 -- [[ Mux ]]--
 o = s:option(Flag, "mux", translate("Mux"))
 o = s:option(Flag, "mux", translate("Mux"))
 o.rmempty = false
 o.rmempty = false
 o:depends("type", "vmess")
 o:depends("type", "vmess")
-o:depends({type="vless", xtls=false})
+o:depends({type = "vless", xtls = false})
 
 
 o = s:option(Value, "concurrency", translate("Concurrency"))
 o = s:option(Value, "concurrency", translate("Concurrency"))
 o.datatype = "uinteger"
 o.datatype = "uinteger"
@@ -453,8 +452,7 @@ o:depends("certificate", 1)
 cert_dir = "/etc/ssl/private/"
 cert_dir = "/etc/ssl/private/"
 local path
 local path
 
 
-luci.http.setfilehandler(
-function(meta, chunk, eof)
+luci.http.setfilehandler(function(meta, chunk, eof)
 if not fd then
 if not fd then
 if (not meta) or (not meta.name) or (not meta.file) then return end
 if (not meta) or (not meta.name) or (not meta.file) then return end
 fd = nixio.open(cert_dir .. meta.file, "w")
 fd = nixio.open(cert_dir .. meta.file, "w")
@@ -463,21 +461,16 @@ path = translate("Create upload file error.")
 return
 return
 end
 end
 end
 end
-if chunk and fd then
-fd:write(chunk)
-end
+if chunk and fd then fd:write(chunk) end
 if eof and fd then
 if eof and fd then
 fd:close()
 fd:close()
 fd = nil
 fd = nil
 path = '/etc/ssl/private/' .. meta.file .. ''
 path = '/etc/ssl/private/' .. meta.file .. ''
 end
 end
-end
-)
+end)
 if luci.http.formvalue("upload") then
 if luci.http.formvalue("upload") then
 local f = luci.http.formvalue("ulfile")
 local f = luci.http.formvalue("ulfile")
-if #f <= 0 then
-path = translate("No specify upload file.")
-end
+if #f <= 0 then path = translate("No specify upload file.") end
 end
 end
 
 
 o = s:option(Value, "certpath", translate("Current Certificate Path"))
 o = s:option(Value, "certpath", translate("Current Certificate Path"))
@@ -513,7 +506,7 @@ o = s:option(Value, "kcp_port", translate("KcpTun Port"))
 o.datatype = "port"
 o.datatype = "port"
 o.default = 4000
 o.default = 4000
 function o.validate(self, value, section)
 function o.validate(self, value, section)
-local kcp_file="/usr/bin/kcptun-client"
+local kcp_file = "/usr/bin/kcptun-client"
 local enable = kcp_enable:formvalue(section) or kcp_enable.disabled
 local enable = kcp_enable:formvalue(section) or kcp_enable.disabled
 if enable == kcp_enable.enabled then
 if enable == kcp_enable.enabled then
 if not nixio.fs.access(kcp_file) then
 if not nixio.fs.access(kcp_file) then

+ 1 - 1
luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm

@@ -246,7 +246,7 @@
 		} else if (ssu[0] == "vmess") {
 		} else if (ssu[0] == "vmess") {
 			var sstr = b64DecodeUnicode(ssu[1]);
 			var sstr = b64DecodeUnicode(ssu[1]);
 			var ploc = sstr.indexOf("/?");
 			var ploc = sstr.indexOf("/?");
-			document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "v2ray";
+			document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].value = "vmess";
 			document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event);
 			document.getElementsByName('cbid.shadowsocksr.' + sid + '.type')[0].dispatchEvent(event);
 			var url0, param = "";
 			var url0, param = "";
 			if (ploc > 0) {
 			if (ploc > 0) {

+ 7 - 3
luci-app-ssr-plus/root/etc/init.d/shadowsocksr

@@ -739,14 +739,18 @@ start() {
 			/usr/bin/ssr-rules -f
 			/usr/bin/ssr-rules -f
 		fi
 		fi
 	else
 	else
-		sed '/.*/s/.*/address=\/&\//' /etc/ssr/deny.list >/tmp/dnsmasq.ssr/denylist.conf
+		echo "$(date "+%Y-%m-%d %H:%M:%S") 未启动主节点,禁止连接的域名正在加载。" >>/tmp/ssrplus.log
+		sed "/.*/s/.*/address=\/&\//" /etc/ssr/deny.list >/tmp/dnsmasq.ssr/denylist.conf
+		echo "$(date "+%Y-%m-%d %H:%M:%S") 禁止连接的域名加载完毕。" >>/tmp/ssrplus.log
 		if [ "$(uci_get_by_type global adblock 0)" == "1" ]; then
 		if [ "$(uci_get_by_type global adblock 0)" == "1" ]; then
+			echo "$(date "+%Y-%m-%d %H:%M:%S") 未启动主节点,广告过滤正在加载。" >>/tmp/ssrplus.log
 			[ "$1" == "" ] && cp -f /etc/ssr/ad.conf /tmp/dnsmasq.ssr/
 			[ "$1" == "" ] && cp -f /etc/ssr/ad.conf /tmp/dnsmasq.ssr/
 			if [ -f "/tmp/dnsmasq.ssr/ad.conf" ]; then
 			if [ -f "/tmp/dnsmasq.ssr/ad.conf" ]; then
 				for line in $(cat /etc/ssr/black.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/ad.conf; done
 				for line in $(cat /etc/ssr/black.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/ad.conf; done
 				for line in $(cat /etc/ssr/white.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/ad.conf; done
 				for line in $(cat /etc/ssr/white.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/ad.conf; done
 				for line in $(cat /etc/ssr/deny.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/ad.conf; done
 				for line in $(cat /etc/ssr/deny.list); do sed -i "/$line/d" /tmp/dnsmasq.ssr/ad.conf; done
 			fi
 			fi
+			echo "$(date "+%Y-%m-%d %H:%M:%S") 广告过滤加载完毕。" >>/tmp/ssrplus.log
 		fi
 		fi
 	fi
 	fi
 	/etc/init.d/dnsmasq restart >/dev/null 2>&1
 	/etc/init.d/dnsmasq restart >/dev/null 2>&1
@@ -761,6 +765,7 @@ start() {
 
 
 boot() {
 boot() {
 	echo "$(date "+%Y-%m-%d %H:%M:%S") boot!" >/tmp/ssrplus.log
 	echo "$(date "+%Y-%m-%d %H:%M:%S") boot!" >/tmp/ssrplus.log
+	mkdir -p /var/lock /tmp/dnsmasq.d /tmp/dnsmasq.ssr /var/run /var/etc
 	ulimit -n 65535
 	ulimit -n 65535
 	start
 	start
 }
 }
@@ -780,8 +785,7 @@ stop() {
 		killall -q -9 kcptun-client
 		killall -q -9 kcptun-client
 	fi
 	fi
 	ps -w | grep -v "grep" | grep ssr-monitor | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
 	ps -w | grep -v "grep" | grep ssr-monitor | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
-	ps -w | grep -v "grep" | grep "sleep $(uci_get_by_type global switch_time)s" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
-	ps -w | grep -v "grep" | grep "sleep 30s" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
+	ps -w | grep -v "grep" | grep "sleep 0000" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
 	killall -q -9 ss-redir ss-local obfs-local ssr-redir ssr-local ssr-server v2ray v2ray-plugin xray trojan naive microsocks ipt2socks dns2socks redsocks2 pdnsd
 	killall -q -9 ss-redir ss-local obfs-local ssr-redir ssr-local ssr-server v2ray v2ray-plugin xray trojan naive microsocks ipt2socks dns2socks redsocks2 pdnsd
 	rm -f /var/lock/ssr-monitor.lock
 	rm -f /var/lock/ssr-monitor.lock
 	if [ -f "/tmp/dnsmasq.d/dnsmasq-ssr.conf" ]; then
 	if [ -f "/tmp/dnsmasq.d/dnsmasq-ssr.conf" ]; then

+ 2 - 0
luci-app-ssr-plus/root/etc/ssr/china_ssr.txt

@@ -4107,6 +4107,8 @@
 103.159.124.0/23
 103.159.124.0/23
 103.159.134.0/23
 103.159.134.0/23
 103.159.142.0/23
 103.159.142.0/23
+103.160.32.0/23
+103.160.34.0/23
 103.192.0.0/22
 103.192.0.0/22
 103.192.4.0/22
 103.192.4.0/22
 103.192.8.0/22
 103.192.8.0/22

+ 54 - 4
luci-app-ssr-plus/root/etc/ssr/gfw_list.conf

@@ -2034,6 +2034,8 @@ server=/bandwagonhost.com/127.0.0.1#5335
 ipset=/bandwagonhost.com/gfwlist
 ipset=/bandwagonhost.com/gfwlist
 server=/bangbros.com/127.0.0.1#5335
 server=/bangbros.com/127.0.0.1#5335
 ipset=/bangbros.com/gfwlist
 ipset=/bangbros.com/gfwlist
+server=/banned.video/127.0.0.1#5335
+ipset=/banned.video/gfwlist
 server=/barefootnetworks.com/127.0.0.1#5335
 server=/barefootnetworks.com/127.0.0.1#5335
 ipset=/barefootnetworks.com/gfwlist
 ipset=/barefootnetworks.com/gfwlist
 server=/barrons.com/127.0.0.1#5335
 server=/barrons.com/127.0.0.1#5335
@@ -2076,6 +2078,8 @@ server=/baxsound.com/127.0.0.1#5335
 ipset=/baxsound.com/gfwlist
 ipset=/baxsound.com/gfwlist
 server=/bayareabmw.com/127.0.0.1#5335
 server=/bayareabmw.com/127.0.0.1#5335
 ipset=/bayareabmw.com/gfwlist
 ipset=/bayareabmw.com/gfwlist
+server=/bayvoice.net/127.0.0.1#5335
+ipset=/bayvoice.net/gfwlist
 server=/bazel.build/127.0.0.1#5335
 server=/bazel.build/127.0.0.1#5335
 ipset=/bazel.build/gfwlist
 ipset=/bazel.build/gfwlist
 server=/bbc.co.uk/127.0.0.1#5335
 server=/bbc.co.uk/127.0.0.1#5335
@@ -5824,6 +5828,8 @@ server=/dleris.best/127.0.0.1#5335
 ipset=/dleris.best/gfwlist
 ipset=/dleris.best/gfwlist
 server=/dlfacebook.com/127.0.0.1#5335
 server=/dlfacebook.com/127.0.0.1#5335
 ipset=/dlfacebook.com/gfwlist
 ipset=/dlfacebook.com/gfwlist
+server=/dlgarenanow-a.akamaihd.net/127.0.0.1#5335
+ipset=/dlgarenanow-a.akamaihd.net/gfwlist
 server=/dlmobilegarena-a.akamaihd.net/127.0.0.1#5335
 server=/dlmobilegarena-a.akamaihd.net/127.0.0.1#5335
 ipset=/dlmobilegarena-a.akamaihd.net/gfwlist
 ipset=/dlmobilegarena-a.akamaihd.net/gfwlist
 server=/dmgmediaprivacy.co.uk/127.0.0.1#5335
 server=/dmgmediaprivacy.co.uk/127.0.0.1#5335
@@ -6674,6 +6680,8 @@ server=/edgefonts.net/127.0.0.1#5335
 ipset=/edgefonts.net/gfwlist
 ipset=/edgefonts.net/gfwlist
 server=/edisebay.com/127.0.0.1#5335
 server=/edisebay.com/127.0.0.1#5335
 ipset=/edisebay.com/gfwlist
 ipset=/edisebay.com/gfwlist
+server=/edninfo.com/127.0.0.1#5335
+ipset=/edninfo.com/gfwlist
 server=/edu-research.org/127.0.0.1#5335
 server=/edu-research.org/127.0.0.1#5335
 ipset=/edu-research.org/gfwlist
 ipset=/edu-research.org/gfwlist
 server=/edx-cdn.org/127.0.0.1#5335
 server=/edx-cdn.org/127.0.0.1#5335
@@ -6820,12 +6828,28 @@ server=/epinions.com/127.0.0.1#5335
 ipset=/epinions.com/gfwlist
 ipset=/epinions.com/gfwlist
 server=/episodic.com/127.0.0.1#5335
 server=/episodic.com/127.0.0.1#5335
 ipset=/episodic.com/gfwlist
 ipset=/episodic.com/gfwlist
+server=/epoch.cloud/127.0.0.1#5335
+ipset=/epoch.cloud/gfwlist
+server=/epoch.org.il/127.0.0.1#5335
+ipset=/epoch.org.il/gfwlist
+server=/epochbuy.com/127.0.0.1#5335
+ipset=/epochbuy.com/gfwlist
+server=/epochcar.com/127.0.0.1#5335
+ipset=/epochcar.com/gfwlist
+server=/epochhk.com/127.0.0.1#5335
+ipset=/epochhk.com/gfwlist
+server=/epochmall.com/127.0.0.1#5335
+ipset=/epochmall.com/gfwlist
 server=/epochmediagroup.com/127.0.0.1#5335
 server=/epochmediagroup.com/127.0.0.1#5335
 ipset=/epochmediagroup.com/gfwlist
 ipset=/epochmediagroup.com/gfwlist
+server=/epochshop.com/127.0.0.1#5335
+ipset=/epochshop.com/gfwlist
 server=/epochstories.com/127.0.0.1#5335
 server=/epochstories.com/127.0.0.1#5335
 ipset=/epochstories.com/gfwlist
 ipset=/epochstories.com/gfwlist
 server=/epochtime.com/127.0.0.1#5335
 server=/epochtime.com/127.0.0.1#5335
 ipset=/epochtime.com/gfwlist
 ipset=/epochtime.com/gfwlist
+server=/epochtimes-bg.com/127.0.0.1#5335
+ipset=/epochtimes-bg.com/gfwlist
 server=/epochtimes-romania.com/127.0.0.1#5335
 server=/epochtimes-romania.com/127.0.0.1#5335
 ipset=/epochtimes-romania.com/gfwlist
 ipset=/epochtimes-romania.com/gfwlist
 server=/epochtimes.co.il/127.0.0.1#5335
 server=/epochtimes.co.il/127.0.0.1#5335
@@ -6856,6 +6880,8 @@ server=/epochtimes.ru/127.0.0.1#5335
 ipset=/epochtimes.ru/gfwlist
 ipset=/epochtimes.ru/gfwlist
 server=/epochtimes.se/127.0.0.1#5335
 server=/epochtimes.se/127.0.0.1#5335
 ipset=/epochtimes.se/gfwlist
 ipset=/epochtimes.se/gfwlist
+server=/epochtimeshk.org/127.0.0.1#5335
+ipset=/epochtimeshk.org/gfwlist
 server=/epochtimestr.com/127.0.0.1#5335
 server=/epochtimestr.com/127.0.0.1#5335
 ipset=/epochtimestr.com/gfwlist
 ipset=/epochtimestr.com/gfwlist
 server=/epochweek.com/127.0.0.1#5335
 server=/epochweek.com/127.0.0.1#5335
@@ -6894,6 +6920,8 @@ server=/ethereum.foundation/127.0.0.1#5335
 ipset=/ethereum.foundation/gfwlist
 ipset=/ethereum.foundation/gfwlist
 server=/ethereum.org/127.0.0.1#5335
 server=/ethereum.org/127.0.0.1#5335
 ipset=/ethereum.org/gfwlist
 ipset=/ethereum.org/gfwlist
+server=/etviet.com/127.0.0.1#5335
+ipset=/etviet.com/gfwlist
 server=/etvonline.hk/127.0.0.1#5335
 server=/etvonline.hk/127.0.0.1#5335
 ipset=/etvonline.hk/gfwlist
 ipset=/etvonline.hk/gfwlist
 server=/eu-consumer-empowerment.com/127.0.0.1#5335
 server=/eu-consumer-empowerment.com/127.0.0.1#5335
@@ -8694,6 +8722,8 @@ server=/goldnikeclub.com/127.0.0.1#5335
 ipset=/goldnikeclub.com/gfwlist
 ipset=/goldnikeclub.com/gfwlist
 server=/golos-ameriki.ru/127.0.0.1#5335
 server=/golos-ameriki.ru/127.0.0.1#5335
 ipset=/golos-ameriki.ru/gfwlist
 ipset=/golos-ameriki.ru/gfwlist
+server=/golosameriki.com/127.0.0.1#5335
+ipset=/golosameriki.com/gfwlist
 server=/gonglchuangl.net/127.0.0.1#5335
 server=/gonglchuangl.net/127.0.0.1#5335
 ipset=/gonglchuangl.net/gfwlist
 ipset=/gonglchuangl.net/gfwlist
 server=/gonike.com/127.0.0.1#5335
 server=/gonike.com/127.0.0.1#5335
@@ -10160,6 +10190,10 @@ server=/industrialtoys.com/127.0.0.1#5335
 ipset=/industrialtoys.com/gfwlist
 ipset=/industrialtoys.com/gfwlist
 server=/informs.org/127.0.0.1#5335
 server=/informs.org/127.0.0.1#5335
 ipset=/informs.org/gfwlist
 ipset=/informs.org/gfwlist
+server=/infowars.com/127.0.0.1#5335
+ipset=/infowars.com/gfwlist
+server=/infowarsmedia.com/127.0.0.1#5335
+ipset=/infowarsmedia.com/gfwlist
 server=/infrapedia.com/127.0.0.1#5335
 server=/infrapedia.com/127.0.0.1#5335
 ipset=/infrapedia.com/gfwlist
 ipset=/infrapedia.com/gfwlist
 server=/ingads.com/127.0.0.1#5335
 server=/ingads.com/127.0.0.1#5335
@@ -13224,12 +13258,12 @@ server=/mzed.com/127.0.0.1#5335
 ipset=/mzed.com/gfwlist
 ipset=/mzed.com/gfwlist
 server=/mzstatic.com/127.0.0.1#5335
 server=/mzstatic.com/127.0.0.1#5335
 ipset=/mzstatic.com/gfwlist
 ipset=/mzstatic.com/gfwlist
-server=/n3ro.fun/127.0.0.1#5335
-ipset=/n3ro.fun/gfwlist
-server=/n3ro.live/127.0.0.1#5335
-ipset=/n3ro.live/gfwlist
+server=/n3ro.lol/127.0.0.1#5335
+ipset=/n3ro.lol/gfwlist
 server=/n3ro.net/127.0.0.1#5335
 server=/n3ro.net/127.0.0.1#5335
 ipset=/n3ro.net/gfwlist
 ipset=/n3ro.net/gfwlist
+server=/n3ro.wtf/127.0.0.1#5335
+ipset=/n3ro.wtf/gfwlist
 server=/na-att-idns.net/127.0.0.1#5335
 server=/na-att-idns.net/127.0.0.1#5335
 ipset=/na-att-idns.net/gfwlist
 ipset=/na-att-idns.net/gfwlist
 server=/nab.com.au/127.0.0.1#5335
 server=/nab.com.au/127.0.0.1#5335
@@ -13884,6 +13918,10 @@ server=/ntc.party/127.0.0.1#5335
 ipset=/ntc.party/gfwlist
 ipset=/ntc.party/gfwlist
 server=/ntd.com/127.0.0.1#5335
 server=/ntd.com/127.0.0.1#5335
 ipset=/ntd.com/gfwlist
 ipset=/ntd.com/gfwlist
+server=/ntdca.com/127.0.0.1#5335
+ipset=/ntdca.com/gfwlist
+server=/ntdimg.com/127.0.0.1#5335
+ipset=/ntdimg.com/gfwlist
 server=/ntdtv.ca/127.0.0.1#5335
 server=/ntdtv.ca/127.0.0.1#5335
 ipset=/ntdtv.ca/gfwlist
 ipset=/ntdtv.ca/gfwlist
 server=/ntdtv.co.kr/127.0.0.1#5335
 server=/ntdtv.co.kr/127.0.0.1#5335
@@ -14352,6 +14390,8 @@ server=/oxfordscholarship.com/127.0.0.1#5335
 ipset=/oxfordscholarship.com/gfwlist
 ipset=/oxfordscholarship.com/gfwlist
 server=/oxfordwesternmusic.com/127.0.0.1#5335
 server=/oxfordwesternmusic.com/127.0.0.1#5335
 ipset=/oxfordwesternmusic.com/gfwlist
 ipset=/oxfordwesternmusic.com/gfwlist
+server=/ozvoice.org/127.0.0.1#5335
+ipset=/ozvoice.org/gfwlist
 server=/p-events-delivery.akamaized.net/127.0.0.1#5335
 server=/p-events-delivery.akamaized.net/127.0.0.1#5335
 ipset=/p-events-delivery.akamaized.net/gfwlist
 ipset=/p-events-delivery.akamaized.net/gfwlist
 server=/p16-tiktokcdn-com.akamaized.net/127.0.0.1#5335
 server=/p16-tiktokcdn-com.akamaized.net/127.0.0.1#5335
@@ -14786,6 +14826,8 @@ server=/perl.org/127.0.0.1#5335
 ipset=/perl.org/gfwlist
 ipset=/perl.org/gfwlist
 server=/persagg.com/127.0.0.1#5335
 server=/persagg.com/127.0.0.1#5335
 ipset=/persagg.com/gfwlist
 ipset=/persagg.com/gfwlist
+server=/persianepochtimes.com/127.0.0.1#5335
+ipset=/persianepochtimes.com/gfwlist
 server=/personaltrainermath.com/127.0.0.1#5335
 server=/personaltrainermath.com/127.0.0.1#5335
 ipset=/personaltrainermath.com/gfwlist
 ipset=/personaltrainermath.com/gfwlist
 server=/personeelsland.com/127.0.0.1#5335
 server=/personeelsland.com/127.0.0.1#5335
@@ -16344,6 +16386,10 @@ server=/softether-download.com/127.0.0.1#5335
 ipset=/softether-download.com/gfwlist
 ipset=/softether-download.com/gfwlist
 server=/softether.org/127.0.0.1#5335
 server=/softether.org/127.0.0.1#5335
 ipset=/softether.org/gfwlist
 ipset=/softether.org/gfwlist
+server=/sohcradio.com/127.0.0.1#5335
+ipset=/sohcradio.com/gfwlist
+server=/sohfrance.org/127.0.0.1#5335
+ipset=/sohfrance.org/gfwlist
 server=/soirt4.fun/127.0.0.1#5335
 server=/soirt4.fun/127.0.0.1#5335
 ipset=/soirt4.fun/gfwlist
 ipset=/soirt4.fun/gfwlist
 server=/solarcity.com/127.0.0.1#5335
 server=/solarcity.com/127.0.0.1#5335
@@ -18822,6 +18868,8 @@ server=/walmart.pharmacy/127.0.0.1#5335
 ipset=/walmart.pharmacy/gfwlist
 ipset=/walmart.pharmacy/gfwlist
 server=/walmartimages.com/127.0.0.1#5335
 server=/walmartimages.com/127.0.0.1#5335
 ipset=/walmartimages.com/gfwlist
 ipset=/walmartimages.com/gfwlist
+server=/wanokokorosoh.com/127.0.0.1#5335
+ipset=/wanokokorosoh.com/gfwlist
 server=/wariolandshakeit.com/127.0.0.1#5335
 server=/wariolandshakeit.com/127.0.0.1#5335
 ipset=/wariolandshakeit.com/gfwlist
 ipset=/wariolandshakeit.com/gfwlist
 server=/wariowarediy.com/127.0.0.1#5335
 server=/wariowarediy.com/127.0.0.1#5335
@@ -19768,6 +19816,8 @@ server=/youav.com/127.0.0.1#5335
 ipset=/youav.com/gfwlist
 ipset=/youav.com/gfwlist
 server=/youjizz.com/127.0.0.1#5335
 server=/youjizz.com/127.0.0.1#5335
 ipset=/youjizz.com/gfwlist
 ipset=/youjizz.com/gfwlist
+server=/youlucky.com/127.0.0.1#5335
+ipset=/youlucky.com/gfwlist
 server=/youporn.com/127.0.0.1#5335
 server=/youporn.com/127.0.0.1#5335
 ipset=/youporn.com/gfwlist
 ipset=/youporn.com/gfwlist
 server=/yourfantasybeginsnow.com/127.0.0.1#5335
 server=/yourfantasybeginsnow.com/127.0.0.1#5335

+ 1 - 1
luci-app-ssr-plus/root/usr/bin/ssr-monitor

@@ -59,7 +59,7 @@ kcp_param=$(uci_get_by_name $GLOBAL_SERVER kcp_param)
 [ "$password" != "" ] && password="--key "${password}
 [ "$password" != "" ] && password="--key "${password}
 
 
 while [ "1" == "1" ]; do #死循环
 while [ "1" == "1" ]; do #死循环
-	sleep 30s
+	sleep 000030s
 	#redir tcp
 	#redir tcp
 	if [ "$redir_tcp_process" -gt 0 ]; then
 	if [ "$redir_tcp_process" -gt 0 ]; then
 		icount=$(busybox ps -w | grep ssr-retcp | grep -v grep | wc -l)
 		icount=$(busybox ps -w | grep ssr-retcp | grep -v grep | wc -l)

+ 1 - 1
luci-app-ssr-plus/root/usr/bin/ssr-switch

@@ -118,7 +118,7 @@ start() {
 	#不支持kcptun启用时的切换
 	#不支持kcptun启用时的切换
 	[ $(uci_get_by_name $DEFAULT_SERVER kcp_enable) = "1" ] && return 1
 	[ $(uci_get_by_name $DEFAULT_SERVER kcp_enable) = "1" ] && return 1
 	while [ "1" == "1" ]; do #死循环
 	while [ "1" == "1" ]; do #死循环
-		sleep $cycle_time
+		sleep 0000$cycle_time
 		LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
 		LOGTIME=$(date "+%Y-%m-%d %H:%M:%S")
 		#判断当前代理是否为缺省服务器
 		#判断当前代理是否为缺省服务器
 		if [ "$CURRENT_SERVER" != "$DEFAULT_SERVER" ]; then
 		if [ "$CURRENT_SERVER" != "$DEFAULT_SERVER" ]; then

+ 8 - 8
luci-app-ssr-plus/root/usr/share/shadowsocksr/genv2config.lua

@@ -11,8 +11,8 @@ log = {
 loglevel = "warning"
 loglevel = "warning"
 },
 },
 -- 传入连接
 -- 传入连接
-inbound = (local_port ~= "0") and {
-	port = local_port,
+inbound = (local_port ~= "0" or server.local_port) and {
+	port = tonumber(local_port) or tonumber(server.local_port),
 	protocol = "dokodemo-door",
 	protocol = "dokodemo-door",
 	settings = {
 	settings = {
 		network = proto,
 		network = proto,
@@ -57,8 +57,8 @@ outbound = {
 -- 底层传输配置
 -- 底层传输配置
 	streamSettings = {
 	streamSettings = {
 		network = server.transport,
 		network = server.transport,
-		security = (server.tls == '1') and ((server.xtls == '1') and "xtls" or "tls") or "none",
-		tlsSettings = (server.tls == '1' and server.xtls ~= '1' and (server.insecure == "1" or server.tls_host)) and {
+		security = (server.xtls == '1') and "xtls" or (server.tls == '1') and "tls" or "none",
+		tlsSettings = (server.tls == '1' and (server.insecure == "1" or server.tls_host)) and {
 			allowInsecure = (server.insecure == "1") and true or nil,
 			allowInsecure = (server.insecure == "1") and true or nil,
 			serverName=server.tls_host
 			serverName=server.tls_host
 		} or nil,
 		} or nil,
@@ -90,9 +90,9 @@ outbound = {
 			},
 			},
 			seed = server.seed or nil
 			seed = server.seed or nil
 		} or nil,
 		} or nil,
-		wsSettings = (server.transport == "ws") and (server.ws_path ~= nil or server.ws_host ~= nil) and {
+		wsSettings = (server.transport == "ws") and (server.ws_path or server.ws_host) and {
 			path = server.ws_path,
 			path = server.ws_path,
-			headers = (server.ws_host ~= nil) and {
+			headers = (server.ws_host) and {
 				Host = server.ws_host
 				Host = server.ws_host
 			} or nil,
 			} or nil,
 		} or nil,
 		} or nil,
@@ -108,8 +108,8 @@ outbound = {
 			}
 			}
 		} or nil
 		} or nil
 	},
 	},
-	mux = (server.xtls ~= "1") and {
-		enabled = (server.mux == "1") and true or false,
+	mux = (server.mux == "1" and server.xtls ~= "1") and {
+		enabled = true,
 		concurrency = tonumber(server.concurrency)
 		concurrency = tonumber(server.concurrency)
 	} or nil
 	} or nil
 } or nil
 } or nil

+ 1 - 1
luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua

@@ -122,7 +122,7 @@ local function processData(szType, content)
 		result.alias = result.alias .. base64Decode(params.remarks)
 		result.alias = result.alias .. base64Decode(params.remarks)
 	elseif szType == 'vmess' then
 	elseif szType == 'vmess' then
 		local info = jsonParse(content)
 		local info = jsonParse(content)
-		result.type = 'v2ray'
+		result.type = 'vmess'
 		result.server = info.add
 		result.server = info.add
 		result.server_port = info.port
 		result.server_port = info.port
 		result.transport = info.net
 		result.transport = info.net