فهرست منبع

Merge pull request #1706 from zxlhhyccc/custom

luci-app-ssr-plus: Add 'hy2 port hopping' Configure imports and subscribe.
zxl hhyccc 6 ماه پیش
والد
کامیت
305a5a7cd0

+ 3 - 2
luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua

@@ -392,9 +392,10 @@ o:depends("type", "hysteria2")
 o.rmempty = true
 o.default = "0"
 
-o = s:option(Value, "port_range", translate("Port Range"))
+o = s:option(Value, "port_range", translate("Port hopping range"))
+o.description = translate("Format as 10000:20000 or 10000-20000 Multiple groups are separated by commas (,).")
 o:depends({type = "hysteria2", flag_port_hopping = true})
-o.datatype = "portrange"
+--o.datatype = "portrange"
 o.rmempty = true
 
 o = s:option(Flag, "flag_transport", translate("Enable Transport Protocol Settings"))

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

@@ -117,6 +117,12 @@ function import_ssr_url(btn, urlname, sid) {
 				document.getElementsByName('cbid.shadowsocksr.' + sid + '.lazy_mode')[0].checked = true;
 				document.getElementsByName('cbid.shadowsocksr.' + sid + '.lazy_mode')[0].dispatchEvent(event);
 			}
+			if (params.get("mport")) {
+				document.getElementsByName('cbid.shadowsocksr.' + sid + '.flag_port_hopping')[0].checked = true; // 设置 flag_transport 为 true
+				document.getElementsByName('cbid.shadowsocksr.' + sid + '.flag_port_hopping')[0].dispatchEvent(event); // 触发事件
+
+			document.getElementsByName('cbid.shadowsocksr.' + sid + '.port_range')[0].value = params.get("mport") || "";
+			}
 			if (params.get("protocol")) {
 				document.getElementsByName('cbid.shadowsocksr.' + sid + '.flag_transport')[0].checked = true; // 设置 flag_transport 为 true
 				document.getElementsByName('cbid.shadowsocksr.' + sid + '.flag_transport')[0].dispatchEvent(event); // 触发事件

+ 7 - 4
luci-app-ssr-plus/po/zh_Hans/ssr-plus.po

@@ -159,16 +159,19 @@ msgid "NOTE: If the server uses the userpass authentication, the format must be
 msgstr "注意: 如果服务器使用 userpass 验证,格式必须是 username:password。"
 
 msgid "Enable Port Hopping"
-msgstr "启用端口跃"
+msgstr "启用端口跃"
 
 msgid "Enable Transport Protocol Settings"
 msgstr "启用传输协议设置"
 
-msgid "Port Range"
-msgstr "端口范围值"
+msgid "Port hopping range"
+msgstr "端口跳跃范围"
+
+msgid "Format as 10000:20000 or 10000-20000 Multiple groups are separated by commas (,)."
+msgstr "格式为:10000:20000 或 10000-20000 多组时用逗号(,)隔开。"
 
 msgid "Port Hopping Interval(Unit:Second)"
-msgstr "端口跃迁间隔(单位:秒)"
+msgstr "端口跃间隔(单位:秒)"
 
 msgid "Enable Lazy Mode"
 msgstr "启用懒狗模式"

+ 13 - 12
luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua

@@ -412,35 +412,35 @@ local ss = {
 	reuse_port = true
 }
 local hysteria2 = {
-	server = (server.server_port and (server.port_range and (server.server .. ":" .. server.server_port .. "," .. server.port_range) or (server.server .. ":" .. server.server_port) or (server.port_range and server.server .. ":" .. server.port_range or server.server .. ":443"))),
+	server = (server.server_port and (server.port_range and (server.server .. ":" .. server.server_port .. "," .. string.gsub(server.port_range, ":", "-")) or (server.server .. ":" .. server.server_port) or (server.port_range and server.server .. ":" .. string.gsub(server.port_range, ":", "-") or server.server .. ":443"))),
 	bandwidth = (server.uplink_capacity or server.downlink_capacity) and {
 	up = tonumber(server.uplink_capacity) and tonumber(server.uplink_capacity) .. " mbps" or nil,
 	down = tonumber(server.downlink_capacity) and tonumber(server.downlink_capacity) .. " mbps" or nil 
-	},
+	} or nil,
 	socks5 = (proto:find("tcp") and tonumber(socks_port) and tonumber(socks_port) ~= 0) and {
 		listen = "0.0.0.0:" .. tonumber(socks_port),
 		disable_udp = false
 	} or nil,
-	transport = (server.transport_protocol) and {
-		type = (server.transport_protocol) or udp,
+	transport = server.transport_protocol and {
+		type = server.transport_protocol or "udp",
 		udp = (server.port_range and (server.hopinterval) and {
-                        hopInterval = (server.port_range and (tonumber(server.hopinterval) .. "s") or nil)
-                } or nil)
-        } or nil,
+			hopInterval = (server.port_range and (tonumber(server.hopinterval) .. "s") or nil)
+		} or nil)
+	} or nil,
 --[[
 	tcpTProxy = (proto:find("tcp") and local_port ~= "0") and {
-					listen = "0.0.0.0:" .. tonumber(local_port)
+		listen = "0.0.0.0:" .. tonumber(local_port)
 	} or nil,
 ]]--
 	tcpRedirect = (proto:find("tcp") and local_port ~= "0") and {
-					listen = "0.0.0.0:" .. tonumber(local_port)
+		listen = "0.0.0.0:" .. tonumber(local_port)
 	} or nil,
 	udpTProxy = (proto:find("udp") and local_port ~= "0") and {
-					listen = "0.0.0.0:" .. tonumber(local_port)
+		listen = "0.0.0.0:" .. tonumber(local_port)
 	} or nil,
 	obfs = (server.flag_obfs == "1") and {
-				type = server.obfs_type,
-				salamander = { password = server.salamander }
+		type = server.obfs_type,
+		salamander = { password = server.salamander }
 	} or nil,
 	quic = (server.flag_quicparam == "1" ) and {
 		initStreamReceiveWindow = (server.initstreamreceivewindow and server.initstreamreceivewindow or nil),
@@ -641,3 +641,4 @@ function config:handleIndex(index)
 end
 local f = config:new()
 f:handleIndex(server.type)
+

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

@@ -217,6 +217,10 @@ local function processData(szType, content)
 				result.pinsha256 = params.pinSHA256
 			end
 		end
+		if params.mport then
+			result.flag_port_hopping = "1"
+			result.port_range = params.mport
+		end
 	elseif szType == 'ssr' then
 		local dat = split(content, "/%?")
 		local hostInfo = split(dat[1], ':')