Compare commits

...

2 Commits

Author SHA1 Message Date
action
b60e0b0460 update 2026-06-25 05:19:15 2026-06-25 05:19:15 +08:00
action
09e3feb5e7 update 2026-06-24 22:17:35 2026-06-24 22:17:35 +08:00
13 changed files with 336 additions and 168 deletions

View File

@ -49,6 +49,12 @@ o.rewrite_option = o.option
o = s:option(Value, _n("realm_url"), translate("Realm URL"), translate("Example:") .. "realm://public@realm.hy2.io/your-realm-name")
o.rewrite_option = o.option
o:depends({ [_n("realms")] = "1" })
o.validate = function(self, value)
value = api.trim(value)
local realm = api.parse_realm_uri(value)
if realm then return value end
return nil, translate("Invalid Realm URL.")
end
o = s:option(DynamicList, _n("realm_stun"), translate("Realm STUN"))
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }

View File

@ -351,6 +351,12 @@ end
o = s:option(Value, _n("hysteria2_realm_url"), translate("Realm URL"), translate("Example:") .. "realm://public@realm.hy2.io/your-realm-name")
o:depends({ [_n("hysteria2_realms")] = "1" })
o.validate = function(self, value)
value = api.trim(value)
local realm = api.parse_realm_uri(value)
if realm then return value end
return nil, translate("Invalid Realm URL.")
end
o = s:option(DynamicList, _n("hysteria2_realm_stun"), translate("Realm STUN"))
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }

View File

@ -375,6 +375,12 @@ if singbox_tags:find("with_quic") then
o = s:option(Value, _n("hysteria2_realm_url"), translate("Realm URL"), translate("Example:") .. "realm://public@realm.hy2.io/your-realm-name")
o:depends({ [_n("hysteria2_realms")] = "1" })
o.validate = function(self, value)
value = api.trim(value)
local realm = api.parse_realm_uri(value)
if realm then return value end
return nil, translate("Invalid Realm URL.")
end
o = s:option(DynamicList, _n("hysteria2_realm_stun"), translate("Realm STUN"))
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }

View File

@ -36,6 +36,12 @@ o:depends({ [_n("custom")] = false })
o = s:option(Value, _n("realm_url"), translate("Realm URL"), translate("Example:") .. "realm://public@realm.hy2.io/your-realm-name")
o.rewrite_option = o.option
o:depends({ [_n("realms")] = "1" })
o.validate = function(self, value)
value = api.trim(value)
local realm = api.parse_realm_uri(value)
if realm then return value end
return nil, translate("Invalid Realm URL.")
end
o = s:option(DynamicList, _n("realm_stun"), translate("Realm STUN"))
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }

View File

@ -130,6 +130,12 @@ o:depends({ [_n("protocol")] = "hysteria2"})
o = s:option(Value, _n("hysteria2_realm_url"), translate("Realm URL"), translate("Example:") .. "realm://public@realm.hy2.io/your-realm-name")
o:depends({ [_n("hysteria2_realms")] = "1" })
o.validate = function(self, value)
value = api.trim(value)
local realm = api.parse_realm_uri(value)
if realm then return value end
return nil, translate("Invalid Realm URL.")
end
o = s:option(DynamicList, _n("hysteria2_realm_stun"), translate("Realm STUN"))
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }

View File

@ -163,6 +163,12 @@ if singbox_tags:find("with_quic") then
o = s:option(Value, _n("hysteria2_realm_url"), translate("Realm URL"), translate("Example:") .. "realm://public@realm.hy2.io/your-realm-name")
o:depends({ [_n("hysteria2_realms")] = "1" })
o.validate = function(self, value)
value = api.trim(value)
local realm = api.parse_realm_uri(value)
if realm then return value end
return nil, translate("Invalid Realm URL.")
end
o = s:option(DynamicList, _n("hysteria2_realm_stun"), translate("Realm STUN"))
o.default = { "stun.sip.us:3478", "stun.nextcloud.com:3478", "global.stun.twilio.com:3478" }

View File

@ -1605,12 +1605,20 @@ function vps_domain_exclude(domain)
end
function parse_realm_uri(uri)
if type(uri) ~= "string" then return nil end
uri = trim(uri)
if uri == "" then return nil end
-- realm[+http]://token@server/realm_id?query
local scheme, token, server_url, realm_id, query = trim(uri):match("^(realm%+http|realm)://([^@]+)@([^/]+)/([^?]*)%??(.*)$")
if not scheme or not token or not server_url or not realm_id then return nil end
local scheme = (uri:match("^realm%+http://") and "realm+http") or (uri:match("^realm://") and "realm")
if not scheme then return nil end
uri = uri:gsub("^realm%+http://", ""):gsub("^realm://", "")
local token, server_url, realm_id, query = uri:match("^([^@]+)@([^/]+)/([^?]*)%??(.*)$")
if not token or not server_url or not realm_id then return nil end
realm_id = realm_id:gsub("/+$", "")
local address, port = server_url:match("^%[?([^%]]+)%]?:?(%d*)$")
local address, port = server_url:match("^%[([^%]]+)%]:(%d+)$") --ipv6:port
if not address then
address, port = server_url:match("^([^:]+):(%d+)$") --ipv4[domain]:port
end
address = address or server_url:match("^%[([^%]]+)%]$") or server_url
port = tonumber(port) or (scheme == "realm+http" and 80 or 443)
local realm = {
scheme = scheme,
@ -1622,9 +1630,9 @@ function parse_realm_uri(uri)
}
-- 解析 query 中的 stun=
local stun_servers
for value in (query or ""):gmatch("[?&]?[Ss][Tt][Uu][Nn]=([^&]+)") do
if not stun_servers then stun_servers = {} end
stun_servers[#stun_servers + 1] = value
for v in (query or ""):gmatch("[Ss][Tt][Uu][Nn]=([^&]+)") do
stun_servers = stun_servers or {}
stun_servers[#stun_servers + 1] = v
end
realm.stun_servers = stun_servers
return realm

View File

@ -2125,3 +2125,6 @@ msgstr "并发隧道连接数"
msgid "Processing, please wait…"
msgstr "正在处理,请稍候…"
msgid "Invalid Realm URL."
msgstr "Realm URL 不正确。"

View File

@ -68,6 +68,26 @@ end
table.sort(key_table)
-- 获取 Xray 版本号
if is_finded("xray") then
local version = luci.sys.exec("xray version 2>&1")
if version and version ~= "" then
xray_version = version:match("Xray%s+([%d%.]+)")
end
end
-- 将 Xray 版本号转换为数字
if xray_version and xray_version ~= "" then
local major, minor, patch =
xray_version:match("(%d+)%.?(%d*)%.?(%d*)")
major = tonumber(major) or 0
minor = tonumber(minor) or 0
patch = tonumber(patch) or 0
xray_version_val = major * 10000 + minor * 100 + patch
end
m = Map("shadowsocksr")
-- [[ global ]]--
s = m:section(TypedSection, "global", translate("Server failsafe auto swith and custom update settings"))
@ -237,15 +257,31 @@ if is_finded("xray") then
o:value("1-5", "1-5")
o:depends("fragment", true)
o = s:option(Value, "fragment_length", translate("Fragment Length"), translate("Fragmented packet length (byte)"))
o.datatype = "or(uinteger,portrange)"
o = s:option(Value, "fragment_length", translate("Fragment Length"))
if xray_version_val <= 260601 then
o.datatype = "or(uinteger,portrange)"
end
o.default = "100-200"
o:depends("fragment", true)
o.description = translate(
"<ul>" ..
"<li>" .. translate("Fragmented packet length (byte)") .. "</li>" ..
"<li>" .. translate("Note: When version is higher than 26.6.1, input multiple fragment lengths saperate with ','.") .. "</li>" ..
"</ul>"
)
o = s:option(Value, "fragment_delay", translate("Fragment Delay"), translate("Fragmentation interval (ms)"))
o.datatype = "or(uinteger,portrange)"
o = s:option(Value, "fragment_delay", translate("Fragment Delay"))
if xray_version_val <= 260601 then
o.datatype = "or(uinteger,portrange)"
end
o.default = "10-20"
o:depends("fragment", true)
o.description = translate(
"<ul>" ..
"<li>" .. translate("Fragmentation interval (ms)") .. "</li>" ..
"<li>" .. translate("Note: When version is higher than 26.6.1, input multiple fragment intervals saperate with ','.") .. "</li>" ..
"</ul>"
)
o = s:option(Value, "fragment_maxSplit", translate("Max Split"), translate("Limit the maximum number of splits."))
o.datatype = "or(uinteger,portrange)"

View File

@ -1,7 +1,7 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:231
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:251
msgid ""
"\"1-3\" is for segmentation at TCP layer, applying to the beginning 1 to 3 "
"data writes by the client. \"tlshello\" is for TLS client hello packet "
@ -64,7 +64,7 @@ msgstr ""
msgid "8 Threads"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:260
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:296
msgid "<font style='color:red'>"
msgstr ""
@ -80,6 +80,8 @@ msgid ""
"etc.</h3>"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:267
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:280
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1267
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1588
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1601
@ -206,7 +208,7 @@ msgstr ""
msgid "Anti-pollution DNS Server"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:128
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:148
msgid "Apple Domains DNS"
msgstr ""
@ -214,11 +216,11 @@ msgstr ""
msgid "Apple Domains Data"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:123
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:143
msgid "Apple Domains Update url"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:119
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:139
msgid "Apple domains optimization"
msgstr ""
@ -366,7 +368,7 @@ msgstr ""
msgid "Check Server Port"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:94
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:114
msgid "Check Try Count"
msgstr ""
@ -381,7 +383,7 @@ msgid ""
"release page."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:89
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:109
msgid "Check timout(second)"
msgstr ""
@ -403,15 +405,15 @@ msgstr ""
msgid "ChinaDNS-NG query protocol"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:113
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:133
msgid "Chnroute Update url"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:114
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:134
msgid "Clang.CN"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:115
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:135
msgid "Clang.CN.CIDR"
msgstr ""
@ -454,7 +456,7 @@ msgstr ""
msgid "Clear logs"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:264
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:300
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1097
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1452
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1479
@ -663,7 +665,7 @@ msgstr ""
msgid "Default"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:101
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:121
msgid "Default Node Local Port"
msgstr ""
@ -704,7 +706,7 @@ msgid ""
"entries before the original Clash rules."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:302
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:338
msgid "Delay (ms)"
msgstr ""
@ -766,7 +768,7 @@ msgstr ""
msgid "DoT upstream (Need use wolfssl version)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:289
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:325
msgid "Domain Strategy"
msgstr ""
@ -816,9 +818,9 @@ msgstr ""
msgid "Edit ShadowSocksR Server"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:157
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:198
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:278
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:177
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:218
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:314
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:54
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:101
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:581
@ -835,7 +837,7 @@ msgstr ""
msgid "Enable Authentication"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:80
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:100
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1739
msgid "Enable Auto Switch"
msgstr ""
@ -890,7 +892,7 @@ msgstr ""
msgid "Enable V3 protocol."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:134
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:154
msgid "Enable adblock"
msgstr ""
@ -906,7 +908,7 @@ msgstr ""
msgid "Enabled Kernel virtual NIC TUN(optional)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:181
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:201
msgid "Enabled Mixed"
msgstr ""
@ -1048,13 +1050,13 @@ msgstr ""
msgid "Flow"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:119
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:139
msgid ""
"For Apple domains equipped with Chinese mainland CDN, always responsive to "
"Chinese CDN IP addresses"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:262
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:298
msgid "For specific usage, see:"
msgstr ""
@ -1064,27 +1066,27 @@ msgid ""
"(,)."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:228
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:248
msgid "Fragment"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:245
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:273
msgid "Fragment Delay"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:240
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:260
msgid "Fragment Length"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:231
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:251
msgid "Fragment Packets"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:245
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:281
msgid "Fragmentation interval (ms)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:240
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:268
msgid "Fragmented packet length (byte)"
msgstr ""
@ -1134,7 +1136,7 @@ msgstr ""
msgid "Global Client"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:194
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:214
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:213
msgid "Global HTTP/HTTPS Proxy Server"
msgstr ""
@ -1143,7 +1145,7 @@ msgstr ""
msgid "Global Mode"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:152
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:172
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:204
msgid "Global SOCKS5 Proxy Server"
msgstr ""
@ -1195,7 +1197,7 @@ msgstr ""
msgid "HTTP"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:202
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:222
msgid "HTTP Auth Mode"
msgstr ""
@ -1204,7 +1206,7 @@ msgstr ""
msgid "HTTP Host"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:212
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:232
msgid "HTTP Password"
msgstr ""
@ -1213,11 +1215,11 @@ msgstr ""
msgid "HTTP Path"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:208
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:228
msgid "HTTP User"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:202
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:222
msgid "HTTP proxy auth method, default:none."
msgstr ""
@ -1280,7 +1282,7 @@ msgstr ""
msgid "IP Stack Preference"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:128
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:148
msgid "If empty, Not change Apple domains parsing DNS (Default is empty)"
msgstr ""
@ -1479,7 +1481,7 @@ msgstr ""
msgid "Level 3 Public DNS-3 (4.2.2.3-4)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:250
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:286
msgid "Limit the maximum number of splits."
msgstr ""
@ -1498,8 +1500,8 @@ msgstr ""
msgid "Loading..."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:187
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:217
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:207
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:237
msgid "Local Port"
msgstr ""
@ -1519,11 +1521,11 @@ msgstr ""
msgid "Loop Mode"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:109
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:129
msgid "Loukky/gfwlist-by-loukky"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:108
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:128
msgid "Loyalsoldier/v2ray-rules-dat"
msgstr ""
@ -1558,7 +1560,7 @@ msgstr ""
msgid "Max Early Data"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:250
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:286
msgid "Max Split"
msgstr ""
@ -1611,7 +1613,7 @@ msgstr ""
msgid "Missing xz support"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:181
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:201
msgid "Mixed as an alias of socks, default:Enabled."
msgstr ""
@ -1644,7 +1646,7 @@ msgstr ""
msgid "Mux"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:138
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:158
msgid "NEO DEV HOST"
msgstr ""
@ -1730,7 +1732,7 @@ msgid ""
"the table."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:255
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:291
msgid "Noise"
msgstr ""
@ -1768,6 +1770,18 @@ msgid ""
"compatibility issues."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:282
msgid ""
"Note: When version is higher than 26.6.1, input multiple fragment intervals "
"saperate with ','."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:269
msgid ""
"Note: When version is higher than 26.6.1, input multiple fragment lengths "
"saperate with ','."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1644
msgid "Number of early established connections to reduce latency."
msgstr ""
@ -1804,19 +1818,19 @@ msgstr ""
msgid "Only Common Ports"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:208
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:228
msgid "Only when HTTP Auth Mode is password valid, Mandatory."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:212
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:232
msgid "Only when HTTP Auth Mode is password valid, Not mandatory."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:170
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:190
msgid "Only when Socks5 Auth Mode is password valid, Mandatory."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:175
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:195
msgid "Only when Socks5 Auth Mode is password valid, Not mandatory."
msgstr ""
@ -1838,11 +1852,11 @@ msgstr ""
msgid "Package Name"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:261
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:297
msgid "Packet or Rand length as a string, e.g., 10-20."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:298
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:334
msgid "Packet | Rand Length"
msgstr ""
@ -2129,7 +2143,7 @@ msgstr ""
msgid "Reset saved Mihomo proxy-group selections and restore YAML defaults?"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:144
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:164
msgid "Reset to defaults"
msgstr ""
@ -2258,7 +2272,7 @@ msgstr ""
msgid "Server Type"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:73
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:93
msgid "Server failsafe auto swith and custom update settings"
msgstr ""
@ -2368,7 +2382,7 @@ msgstr ""
msgid "Socks Version"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:163
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:183
msgid "Socks protocol auth methods, default:noauth."
msgstr ""
@ -2377,15 +2391,15 @@ msgstr ""
msgid "Socks5"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:163
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:183
msgid "Socks5 Auth Mode"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:175
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:195
msgid "Socks5 Password"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:170
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:190
msgid "Socks5 User"
msgstr ""
@ -2466,7 +2480,7 @@ msgstr ""
msgid "Successfully retrieved certificate name:"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:142
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:162
msgid "Support AdGuardHome and DNSMASQ format list"
msgstr ""
@ -2480,7 +2494,7 @@ msgid ""
"a maximum length of 3 bytes."
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:84
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:104
msgid "Switch check cycly(second)"
msgstr ""
@ -2509,7 +2523,7 @@ msgstr ""
msgid "TCP Fast Open"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:228
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:248
msgid ""
"TCP fragments, which can deceive the censorship system in some cases, such "
"as bypassing SNI blacklists."
@ -2644,7 +2658,7 @@ msgstr ""
msgid "Timeout for establishing a connection to server(second)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:260
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:296
msgid "To send noise packets, select \"Noise\" in Xray Settings."
msgstr ""
@ -2675,7 +2689,7 @@ msgstr ""
msgid "Try Count"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:282
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:318
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:695
msgid "Type"
msgstr ""
@ -2684,7 +2698,7 @@ msgstr ""
msgid "UDP"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:255
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:291
msgid ""
"UDP noise, Under some circumstances it can bypass some UDP based protocol "
"restrictions."
@ -3009,11 +3023,11 @@ msgstr ""
msgid "Xray"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:225
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:245
msgid "Xray Fragment Settings"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:258
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:294
msgid "Xray Noise Packets"
msgstr ""
@ -3032,7 +3046,7 @@ msgstr ""
msgid "YAML Reloaded!"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:137
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:157
msgid "adblock_url"
msgstr ""
@ -3060,7 +3074,7 @@ msgstr ""
msgid "android"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:139
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:159
msgid "anti-AD"
msgstr ""
@ -3068,7 +3082,7 @@ msgstr ""
msgid "chacha20-poly1305"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:116
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:136
msgid "china-operator-ip"
msgstr ""
@ -3114,7 +3128,7 @@ msgstr ""
msgid "edge"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:124
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:144
msgid "felixonmars/dnsmasq-china-list"
msgstr ""
@ -3135,11 +3149,11 @@ msgstr ""
msgid "gRPC Service Name"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:106
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:126
msgid "gfwlist Update url"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:110
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:130
msgid "gfwlist/gfwlist"
msgstr ""
@ -3235,7 +3249,7 @@ msgstr ""
msgid "spiderX"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:107
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:127
msgid "v2fly/domain-list-community"
msgstr ""

View File

@ -1,7 +1,7 @@
msgid ""
msgstr "Content-Type: text/plain; charset=UTF-8\n"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:231
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:251
msgid ""
"\"1-3\" is for segmentation at TCP layer, applying to the beginning 1 to 3 "
"data writes by the client. \"tlshello\" is for TLS client hello packet "
@ -66,7 +66,7 @@ msgstr ""
msgid "8 Threads"
msgstr "8 线程"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:260
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:296
msgid "<font style='color:red'>"
msgstr ""
@ -84,6 +84,8 @@ msgstr ""
"<h3>支持 SS/SSR/V2RAY/XRAY/TROJAN/TUIC/HYSTERIA2/NAIVEPROXY/SOCKS5/CLASH 等协"
"议。</h3>"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:267
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:280
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1267
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1588
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1601
@ -210,7 +212,7 @@ msgstr "JSON 格式的 FinalMaskObject用来实现分享。"
msgid "Anti-pollution DNS Server"
msgstr "访问国外域名 DNS 服务器"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:128
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:148
msgid "Apple Domains DNS"
msgstr "Apple 域名 DNS"
@ -218,11 +220,11 @@ msgstr "Apple 域名 DNS"
msgid "Apple Domains Data"
msgstr "【Apple 域名】数据库"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:123
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:143
msgid "Apple Domains Update url"
msgstr "Apple 域名更新 URL"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:119
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:139
msgid "Apple domains optimization"
msgstr "Apple 域名解析优化"
@ -370,7 +372,7 @@ msgstr "检查服务器"
msgid "Check Server Port"
msgstr "【服务器端口】检查"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:94
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:114
msgid "Check Try Count"
msgstr "切换检查重试次数"
@ -385,7 +387,7 @@ msgid ""
"release page."
msgstr "检测已安装组件版本,并从上游发布页在线升级。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:89
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:109
msgid "Check timout(second)"
msgstr "切换检查超时时间(秒)"
@ -407,15 +409,15 @@ msgstr "【中国大陆 IP 段】数据库"
msgid "ChinaDNS-NG query protocol"
msgstr "ChinaDNS-NG 查询协议"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:113
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:133
msgid "Chnroute Update url"
msgstr "中国大陆 IP 段更新 URL"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:114
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:134
msgid "Clang.CN"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:115
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:135
msgid "Clang.CN.CIDR"
msgstr ""
@ -458,7 +460,7 @@ msgstr "清空所有自定义客户端代理规则,并恢复为空白状态吗
msgid "Clear logs"
msgstr "清空日志"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:264
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:300
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1097
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1452
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1479
@ -668,7 +670,7 @@ msgstr "解密"
msgid "Default"
msgstr "默认"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:101
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:121
msgid "Default Node Local Port"
msgstr "节点默认本地端口"
@ -713,7 +715,7 @@ msgstr ""
"为每个客户端指定 Mihomo 代理目标。规则会以 SRC-IP-CIDR 形式注入到原始 Clash "
"规则之前。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:302
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:338
msgid "Delay (ms)"
msgstr "延迟ms"
@ -775,7 +777,7 @@ msgstr "是否要恢复客户端默认配置?"
msgid "DoT upstream (Need use wolfssl version)"
msgstr "DoT 上游(需使用 wolfssl 版本)"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:289
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:325
msgid "Domain Strategy"
msgstr "域名解析策略"
@ -825,9 +827,9 @@ msgstr "编辑"
msgid "Edit ShadowSocksR Server"
msgstr "编辑服务器配置"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:157
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:198
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:278
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:177
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:218
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:314
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server-config.lua:54
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/server.lua:101
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:581
@ -844,7 +846,7 @@ msgstr "客户端启用 0-RTT QUIC 连接握手"
msgid "Enable Authentication"
msgstr "启用用户名/密码认证"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:80
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:100
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1739
msgid "Enable Auto Switch"
msgstr "启用自动切换"
@ -899,7 +901,7 @@ msgstr "开启 V2 协议。"
msgid "Enable V3 protocol."
msgstr "开启 V3 协议。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:134
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:154
msgid "Enable adblock"
msgstr "启用广告屏蔽"
@ -915,7 +917,7 @@ msgstr "启用此选项配置 XHTTP 附加项JSON 格式)。"
msgid "Enabled Kernel virtual NIC TUN(optional)"
msgstr "启用内核的虚拟网卡 TUN可选"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:181
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:201
msgid "Enabled Mixed"
msgstr "启用 Mixed"
@ -1057,13 +1059,13 @@ msgstr "指纹伪造"
msgid "Flow"
msgstr "流控Flow"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:119
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:139
msgid ""
"For Apple domains equipped with Chinese mainland CDN, always responsive to "
"Chinese CDN IP addresses"
msgstr "配备中国大陆 CDN 的 Apple 域名,始终应答中国大陆 CDN 地址"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:262
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:298
msgid "For specific usage, see:"
msgstr "具体使用方法,具体请参见:"
@ -1073,27 +1075,27 @@ msgid ""
"(,)."
msgstr "格式为10000:20000 或 10000-20000 多组时用逗号(,)隔开。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:228
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:248
msgid "Fragment"
msgstr "分片"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:245
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:273
msgid "Fragment Delay"
msgstr "分片延迟"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:240
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:260
msgid "Fragment Length"
msgstr "分片包长"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:231
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:251
msgid "Fragment Packets"
msgstr "分片方式"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:245
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:281
msgid "Fragmentation interval (ms)"
msgstr "分片间隔ms"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:240
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:268
msgid "Fragmented packet length (byte)"
msgstr "分片包长 (byte)"
@ -1143,7 +1145,7 @@ msgstr "GitHub 直连"
msgid "Global Client"
msgstr "TCP 透明代理"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:194
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:214
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:213
msgid "Global HTTP/HTTPS Proxy Server"
msgstr "HTTP/HTTPS 代理服务端(全局)"
@ -1152,7 +1154,7 @@ msgstr "HTTP/HTTPS 代理服务端(全局)"
msgid "Global Mode"
msgstr "全局模式"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:152
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:172
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua:204
msgid "Global SOCKS5 Proxy Server"
msgstr "SOCKS5 代理服务端(全局)"
@ -1204,7 +1206,7 @@ msgstr "H2/gRPC 健康检查"
msgid "HTTP"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:202
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:222
msgid "HTTP Auth Mode"
msgstr "HTTP 认证模式"
@ -1213,7 +1215,7 @@ msgstr "HTTP 认证模式"
msgid "HTTP Host"
msgstr "HTTP 主机名"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:212
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:232
msgid "HTTP Password"
msgstr "HTTP 密码"
@ -1222,11 +1224,11 @@ msgstr "HTTP 密码"
msgid "HTTP Path"
msgstr "HTTP 路径"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:208
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:228
msgid "HTTP User"
msgstr "HTTP 用户名"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:202
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:222
msgid "HTTP proxy auth method, default:none."
msgstr "HTTP 代理认证方式默认none。"
@ -1289,7 +1291,7 @@ msgstr "绕过中国大陆 IP 模式"
msgid "IP Stack Preference"
msgstr "IP 栈优先级"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:128
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:148
msgid "If empty, Not change Apple domains parsing DNS (Default is empty)"
msgstr "如果为空,则不更改 Apple 域名解析 DNS默认为空"
@ -1489,7 +1491,7 @@ msgstr ""
msgid "Level 3 Public DNS-3 (4.2.2.3-4)"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:250
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:286
msgid "Limit the maximum number of splits."
msgstr "限制分片的最大数量。"
@ -1508,8 +1510,8 @@ msgstr "仅监听指定的接口,未指定则监听全部。"
msgid "Loading..."
msgstr "加载中..."
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:187
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:217
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:207
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:237
msgid "Local Port"
msgstr "本地端口"
@ -1529,11 +1531,11 @@ msgstr "日志"
msgid "Loop Mode"
msgstr "循环模式"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:109
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:129
msgid "Loukky/gfwlist-by-loukky"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:108
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:128
msgid "Loyalsoldier/v2ray-rules-dat"
msgstr ""
@ -1570,7 +1572,7 @@ msgstr "未找到匹配的发布资产"
msgid "Max Early Data"
msgstr "最大前置数据"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:250
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:286
msgid "Max Split"
msgstr "最大分片数"
@ -1625,7 +1627,7 @@ msgstr "缺少 unzip 支持"
msgid "Missing xz support"
msgstr "缺少 xz 支持"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:181
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:201
msgid "Mixed as an alias of socks, default:Enabled."
msgstr "Mixed 作为 SOCKS 的别名,默认:启用。"
@ -1658,7 +1660,7 @@ msgstr "必须是 JSON 文本内容!"
msgid "Mux"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:138
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:158
msgid "NEO DEV HOST"
msgstr ""
@ -1745,7 +1747,7 @@ msgid ""
msgstr ""
"节点顺序可用鼠标拖拉后立即生效,服务器节点自动切换顺序和表中节点顺序一致。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:255
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:291
msgid "Noise"
msgstr "噪声"
@ -1783,6 +1785,18 @@ msgid ""
"compatibility issues."
msgstr "注意:不同版本间的配置恢复可能会导致兼容性问题。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:282
msgid ""
"Note: When version is higher than 26.6.1, input multiple fragment intervals "
"saperate with ','."
msgstr "注意:当版本高于 26.6.1 时,可以输入多个分片间隔,并用英文 ',' 分隔。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:269
msgid ""
"Note: When version is higher than 26.6.1, input multiple fragment lengths "
"saperate with ','."
msgstr "注意:当版本高于 26.6.1 时,可以输入多个分片长度,并用英文 ',' 分隔。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua:1644
msgid "Number of early established connections to reduce latency."
msgstr "预连接的数量,用于降低延迟。"
@ -1819,19 +1833,19 @@ msgstr "设置后,仅在服务器证书链指纹匹配时连接。"
msgid "Only Common Ports"
msgstr "仅常用端口(不走 P2P 流量到代理)"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:208
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:228
msgid "Only when HTTP Auth Mode is password valid, Mandatory."
msgstr "仅当 HTTP 认证模式为 password 时有效,必填。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:212
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:232
msgid "Only when HTTP Auth Mode is password valid, Not mandatory."
msgstr "仅当 HTTP 认证模式为 password 时有效,非必填。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:170
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:190
msgid "Only when Socks5 Auth Mode is password valid, Mandatory."
msgstr "仅当 Socks5 认证方式为 Password 时有效,必填。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:175
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:195
msgid "Only when Socks5 Auth Mode is password valid, Not mandatory."
msgstr "仅当 Socks5 认证方式为 Password 时有效,非必填。"
@ -1853,11 +1867,11 @@ msgstr ""
msgid "Package Name"
msgstr "组件包名称"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:261
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:297
msgid "Packet or Rand length as a string, e.g., 10-20."
msgstr "数据包或 Rand 长度以字符串形式输入例如10-20。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:298
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:334
msgid "Packet | Rand Length"
msgstr "数据包 | Rand 长度"
@ -2144,7 +2158,7 @@ msgstr "重置完成"
msgid "Reset saved Mihomo proxy-group selections and restore YAML defaults?"
msgstr "要清空已保存的 Mihomo 分组选择,并恢复为 YAML 默认值吗?"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:144
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:164
msgid "Reset to defaults"
msgstr "恢复出厂设置"
@ -2274,7 +2288,7 @@ msgstr "服务端配置"
msgid "Server Type"
msgstr "服务端类型"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:73
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:93
msgid "Server failsafe auto swith and custom update settings"
msgstr "服务器节点故障自动切换/广告屏蔽/中国大陆 IP 段数据库更新设置"
@ -2384,7 +2398,7 @@ msgstr ""
msgid "Socks Version"
msgstr "Socks 版本"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:163
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:183
msgid "Socks protocol auth methods, default:noauth."
msgstr "Socks 协议的认证方式默认值noauth。"
@ -2393,15 +2407,15 @@ msgstr "Socks 协议的认证方式默认值noauth。"
msgid "Socks5"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:163
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:183
msgid "Socks5 Auth Mode"
msgstr "Socks5 认证方式"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:175
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:195
msgid "Socks5 Password"
msgstr "Socks5 密码"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:170
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:190
msgid "Socks5 User"
msgstr "Socks5 用户名"
@ -2482,7 +2496,7 @@ msgstr "已成功获取证书指纹:"
msgid "Successfully retrieved certificate name:"
msgstr "已成功获取证书名称:"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:142
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:162
msgid "Support AdGuardHome and DNSMASQ format list"
msgstr "同时支持 AdGuard Home 和 DNSMASQ 格式的过滤列表"
@ -2498,7 +2512,7 @@ msgstr ""
"支持以“,”分隔的十进制数字,或者经过 Base64 编码的字符串,其最大长度为 3 个字"
"节。"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:84
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:104
msgid "Switch check cycly(second)"
msgstr "自动切换检查周期(秒)"
@ -2527,7 +2541,7 @@ msgstr "TCP 伪装类型"
msgid "TCP Fast Open"
msgstr "TCP 快速打开"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:228
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:248
msgid ""
"TCP fragments, which can deceive the censorship system in some cases, such "
"as bypassing SNI blacklists."
@ -2670,7 +2684,7 @@ msgstr "超时"
msgid "Timeout for establishing a connection to server(second)"
msgstr "连接超时时间(单位:秒)"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:260
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:296
msgid "To send noise packets, select \"Noise\" in Xray Settings."
msgstr "在 Xray 设置中勾选 “噪声” 以发送噪声包。"
@ -2701,7 +2715,7 @@ msgstr "Trojan 密码"
msgid "Try Count"
msgstr "重试次数"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:282
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:318
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua:695
msgid "Type"
msgstr "类型"
@ -2710,7 +2724,7 @@ msgstr "类型"
msgid "UDP"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:255
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:291
msgid ""
"UDP noise, Under some circumstances it can bypass some UDP based protocol "
"restrictions."
@ -3037,11 +3051,11 @@ msgstr ""
msgid "Xray"
msgstr "Xray"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:225
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:245
msgid "Xray Fragment Settings"
msgstr "Xray 分片设置"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:258
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:294
msgid "Xray Noise Packets"
msgstr "Xray 噪声数据包"
@ -3060,7 +3074,7 @@ msgstr "YAML 重载失败!"
msgid "YAML Reloaded!"
msgstr "YAML 已重载!"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:137
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:157
msgid "adblock_url"
msgstr "广告屏蔽更新 URL"
@ -3088,7 +3102,7 @@ msgstr "allowedIPs可选"
msgid "android"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:139
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:159
msgid "anti-AD"
msgstr ""
@ -3096,7 +3110,7 @@ msgstr ""
msgid "chacha20-poly1305"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:116
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:136
msgid "china-operator-ip"
msgstr ""
@ -3142,7 +3156,7 @@ msgstr "例如:/etc/ssl/private.key"
msgid "edge"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:124
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:144
msgid "felixonmars/dnsmasq-china-list"
msgstr ""
@ -3163,11 +3177,11 @@ msgstr "gRPC 模式"
msgid "gRPC Service Name"
msgstr "gRPC 服务名称"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:106
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:126
msgid "gfwlist Update url"
msgstr "GFW 列表更新 URL"
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:110
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:130
msgid "gfwlist/gfwlist"
msgstr ""
@ -3264,7 +3278,7 @@ msgstr ""
msgid "spiderX"
msgstr ""
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:107
#: applications/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua:127
msgid "v2fly/domain-list-community"
msgstr ""

View File

@ -2589,14 +2589,17 @@ stop() {
uci -q del "dhcp.@dnsmasq[0]._unused_ssrp_changed"
uci -q commit "dhcp"
fi
if [ -f "$DNSMASQ_CONF_DIR/dnsmasq-ssrplus.conf" ]; then
rm -rf $DNSMASQ_CONF_DIR/dnsmasq-ssrplus.conf \
$TMP_DNSMASQ_PATH \
$TMP_PATH/*-ssr-*.json \
$TMP_PATH/3proxy* \
$TMP_PATH/clash-* \
$TMP_PATH/ssr-server*.json \
$TMP_PATH/*-config-*.json
if [ -f "$DNSMASQ_CONF_DIR/dnsmasq-ssrplus.conf" ]; then
rm -rf $DNSMASQ_CONF_DIR/dnsmasq-ssrplus.conf \
$TMP_DNSMASQ_PATH \
$TMP_PATH/*-ssr-*.json \
$TMP_PATH/3proxy* \
$TMP_PATH/clash-* \
$TMP_PATH/v2ray-* \
$TMP_PATH/tuic-* \
$TMP_PATH/ss-* \
$TMP_PATH/ssr-server*.json \
$TMP_PATH/*-config-*.json
/etc/init.d/dnsmasq restart >/dev/null 2>&1
fi

View File

@ -59,10 +59,14 @@ local function parse_realm_uri(uri)
local scheme, token, server_url, realm_id, query = trim(uri):match("^(realm%+http|realm)://([^@]+)@([^/]+)/([^?]*)%??(.*)$")
if not scheme or not token or not server_url or not realm_id then return nil end
realm_id = realm_id:gsub("/+$", "")
local address, port = server_url:match("^%[?([^%]]+)%]?:?(%d*)$")
port = tonumber(port) or (scheme == "realm+http" and 80 or 443)
local realm = {
scheme = scheme,
token = token,
server_url = server_url,
address = address,
port = port,
realm_id = realm_id
}
-- 解析 query 中的 stun=
@ -292,6 +296,15 @@ function xray_hysteria2()
address = server.server,
port = tonumber(server.server_port)
}
-- Realm 支持:使用 Realm 服务器地址覆盖默认地址
if server.v2ray_protocol == "hysteria2" and server.hysteria2_realms then
local realm = parse_realm_uri(server.hysteria2_realm_url)
if realm then
outbound_settings.address = realm.address
outbound_settings.port = realm.port
end
end
end
local outbound = {}
function outbound:new(o)
@ -703,15 +716,56 @@ Xray.outbounds = {
local n_maxsplit = xray_fragment.fragment_maxSplit
--local domainstr = xray_noise.domainStrategy
finalmask.tcp = finalmask.tcp or {}
-- 辅助函数:将逗号分隔的字符串拆分为数组
local function split_to_array(str)
if not str or str == "" then return nil end
local result = {}
for value in string.gmatch(str, "[^,]+") do
value = value:gsub("^%s*(.-)%s*$", "%1") -- 去除首尾空格
if value ~= "" then
table.insert(result, value)
end
end
return #result > 0 and result or nil
end
-- 构建 fragment settings
local fragment_settings = {
packets = (n_packets and n_packets ~= "") and n_packets or nil,
maxSplit = (n_maxsplit and n_maxsplit ~= "") and n_maxsplit or nil
}
-- 根据 Xray 版本决定使用旧格式还是新格式
if xray_version_val <= 260601 then
-- 旧版本:使用 length 和 delay单个值
if n_length and n_length ~= "" then
fragment_settings.length = n_length
end
if n_delay and n_delay ~= "" then
if type(n_delay) == "string" and n_delay:find("-", 1, true) then
fragment_settings.delay = n_delay
else
fragment_settings.delay = tonumber(n_delay)
end
end
else
-- 新版本:使用 lengths 和 delays数组
-- 拆分逗号分隔的字符串
local lengths_array = split_to_array(n_length)
if lengths_array then
fragment_settings.lengths = lengths_array
end
local delays_array = split_to_array(n_delay)
if delays_array then
fragment_settings.delays = delays_array
end
end
finalmask.tcp[#finalmask.tcp + 1] = {
type = "fragment",
settings = {
--domainStrategy = (xray_fragment.noise == "1" and xray_noise.enabled == "1") and domainstr or nil,
packets = (n_packets and n_packets ~= "") and n_packets or nil,
length = (n_length and n_length ~= "") and n_length or nil,
delay = (type(n_delay) == "string" and string.find(n_delay, "-")) and n_delay or (n_delay and tonumber(n_delay)),
maxSplit = (n_maxsplit and n_maxsplit ~= "") and n_maxsplit or nil
}
settings = fragment_settings
}
end
if xray_fragment.noise == "1" and (TP == "kcp" or (TP == "xhttp" and (server.tls_alpn == "h3" or server.tls_alpn == "h3,h2"))) then