Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension


Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
4 changes: 2 additions & 2 deletions .github/workflows/multi-arch-test-build.yml
Original file line number Diff line number Diff line change
Expand Up @@ -126,7 +126,7 @@ jobs:
cat PKG-INFO

- name: Store packages
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v3
with:
name: ${{env.ARCHIVE_NAME}}-packages
path: |
Expand All @@ -136,7 +136,7 @@ jobs:
PKG-INFO

- name: Store logs
uses: actions/upload-artifact@v4
uses: actions/upload-artifact@v3
with:
name: ${{env.ARCHIVE_NAME}}-logs
path: |
Expand Down
4 changes: 2 additions & 2 deletions luci-app-ssr-plus/Makefile
Original file line number Diff line number Diff line change
Expand Up @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk

PKG_NAME:=luci-app-ssr-plus
PKG_VERSION:=189
PKG_RELEASE:=5
PKG_RELEASE:=3

PKG_CONFIG_DEPENDS:= \
CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NONE_V2RAY \
Expand Down Expand Up @@ -32,7 +32,7 @@ PKG_CONFIG_DEPENDS:= \
LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Tuic/ShadowTLS/Hysteria/Socks5/Tun LuCI interface
LUCI_PKGARCH:=all
LUCI_DEPENDS:= \
+coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +@PACKAGE_dnsmasq_full_ipset +ipset +kmod-ipt-nat +jq \
+coreutils +coreutils-base64 +dns2socks +dns2tcp +dnsmasq-full +@PACKAGE_dnsmasq_full_ipset +ipset +kmod-ipt-nat \
+ip-full +iptables +iptables-mod-tproxy +lua +lua-neturl +libuci-lua +microsocks \
+tcping +resolveip +shadowsocksr-libev-ssr-check +uclient-fetch \
+PACKAGE_$(PKG_NAME)_INCLUDE_libustream-mbedtls:libustream-mbedtls \
Expand Down
6 changes: 3 additions & 3 deletions luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua
Original file line number Diff line number Diff line change
Expand Up @@ -169,15 +169,15 @@ o.rmempty = false
o.cfgvalue = function(self, section)
local enabled = m:get(section, "enabled")
if enabled == "0" then
return m:get(section, "old_server")
return m:get(section, "old_server") or "same"
end
return Value.cfgvalue(self, section) -- Default to `same` when enabled
return Value.cfgvalue(self, section) or "same" -- Default to `same` when enabled
end

o.write = function(self, section, value)
local enabled = m:get(section, "enabled")
if enabled == "0" then
local old_server = Value.cfgvalue(self, section)
local old_server = Value.cfgvalue(self, section) or "same"
if old_server ~= "nil" then
m:set(section, "old_server", old_server)
end
Expand Down
70 changes: 11 additions & 59 deletions luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua
Original file line number Diff line number Diff line change
Expand Up @@ -434,7 +434,7 @@ o:depends("type", "shadowtls")
o.default = "1"
o.rmempty = false

o = s:option(Flag, "fastopen", translate("TCP Fast Open"), translate("Enabling TCP Fast Open Requires Server Support."))
o = s:option(Flag, "fastopen", translate("TCP Fast Open"))
o:depends("type", "shadowtls")
o.default = "0"
o.rmempty = false
Expand Down Expand Up @@ -735,8 +735,8 @@ o.rmempty = true

o = s:option(Flag, "enable_xhttp_extra", translate("XHTTP Extra"))
o.description = translate("Enable this option to configure XHTTP Extra (JSON format).")
o.rmempty = true
o.default = "0"
o.rmempty = false
o:depends("transport", "xhttp")

o = s:option(TextValue, "xhttp_extra", " ")
Expand Down Expand Up @@ -1008,19 +1008,6 @@ if is_finded("xray") then
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw", tls = true})
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw", reality = true})

o = s:option(ListValue, "xhttp_tls_flow", translate("Flow"))
for _, v in ipairs(tls_flows) do
if v == "none" then
o.default = "none"
o:value("none", translate("none"))
else
o:value("xtls-rprx-vision", translate("xtls-rprx-vision"))
end
end
o.rmempty = true
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "xhttp", tls = true})
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "xhttp", reality = true})

-- [[ uTLS ]]--
o = s:option(ListValue, "fingerprint", translate("Finger Print"))
o.default = ""
Expand Down Expand Up @@ -1064,82 +1051,47 @@ o:depends({type = "hysteria", insecure = true })
o.rmempty = true


-- [[ Mux.Cool ]] --
o = s:option(Flag, "mux", translate("Mux"), translate("Enable Mux.Cool"))
-- [[ Mux ]]--
o = s:option(Flag, "mux", translate("Mux"))
o.rmempty = false
o.default = false
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "raw"})
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "ws"})
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "kcp"})
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "httpupgrade"})
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "splithttp"})
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "h2"})
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "quic"})
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "grpc"})
o:depends({type = "v2ray", v2ray_protocol = "vless"})
o:depends({type = "v2ray", v2ray_protocol = "vmess"})
o:depends({type = "v2ray", v2ray_protocol = "trojan"})
o:depends({type = "v2ray", v2ray_protocol = "shadowsocks"})
o:depends({type = "v2ray", v2ray_protocol = "socks"})
o:depends({type = "v2ray", v2ray_protocol = "http"})

-- [[ XUDP Mux ]] --
o = s:option(Flag, "xmux", translate("Xudp Mux"), translate("Enable Xudp Mux"))
o.rmempty = false
o.default = false
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "xhttp"})

-- [[ TCP 最大并发连接数 ]]--
o = s:option(Value, "concurrency", translate("concurrency"))
o.description = translate(
"<ul>"
.. "<li>" .. translate("Default: disable. When entering a negative number, such as -1, The Mux module will not be used to carry TCP traffic.") .. "</li>"
.. "<li>" .. translate("Min value is 1, Max value is 128. When omitted or set to 0, it equals 8.") .. "</li>"
.. "</ul>")
o = s:option(ListValue, "concurrency", translate("concurrency"))
o.rmempty = true
o.default = "-1"
o:value("-1", translate("disable"))
o:value("8", translate("8"))
o:depends("mux", true)

-- [[ UDP 最大并发连接数 ]]--
o = s:option(Value, "xudpConcurrency", translate("xudpConcurrency"))
o.description = translate(
"<ul>"
.. "<li>" .. translate("Default:16. When entering a negative number, such as -1, The Mux module will not be used to carry UDP traffic, Use original UDP transmission method of proxy protocol.") .. "</li>"
.. "<li>" .. translate("Min value is 1, Max value is 1024. When omitted or set to 0, Will same path as TCP traffic.") .. "</li>"
.. "</ul>")
o = s:option(ListValue, "xudpConcurrency", translate("xudpConcurrency"))
o.rmempty = true
o.default = "16"
o:value("-1", translate("disable"))
o:value("16", translate("16"))
o:depends("mux", true)
o:depends("xmux", true)

-- [[ 对被代理的 UDP/443 流量处理方式 ]]--
o = s:option(ListValue, "xudpProxyUDP443", translate("xudpProxyUDP443"))
o.description = translate(
"<ul>"
.. "<li>" .. translate("Default reject rejects traffic.") .. "</li>"
.. "<li>" .. translate("allow: Allows use Mux connection.") .. "</li>"
.. "<li>" .. translate("skip: Not use Mux module to carry UDP 443 traffic, Use original UDP transmission method of proxy protocol.") .. "</li>"
.. "</ul>")
o.rmempty = true
o.default = "reject"
o:value("reject", translate("reject"))
o:value("allow", translate("allow"))
o:value("skip", translate("skip"))
o:depends("mux", true)

-- [[ XHTTP TCP Fast Open ]]--
o = s:option(Flag, "tcpfastopen", translate("TCP Fast Open"), translate("Enabling TCP Fast Open Requires Server Support."))
o.rmempty = true
o.default = "0"
o:depends({type = "v2ray", v2ray_protocol = "vless", transport = "xhttp"})

-- [[ MPTCP ]]--
o = s:option(Flag, "mptcp", translate("MPTCP"), translate("Enable Multipath TCP, need to be enabled in both server and client configuration."))
o.rmempty = true
o.default = "0"
o = s:option(Flag, "mptcp", translate("MPTCP"), translate("Enabling MPTCP Requires Server Support."))
o.rmempty = false
o.default = false
o:depends({type = "v2ray", v2ray_protocol = "vless"})
o:depends({type = "v2ray", v2ray_protocol = "vmess"})
o:depends({type = "v2ray", v2ray_protocol = "trojan"})
Expand Down Expand Up @@ -1214,7 +1166,7 @@ o:value("/etc/ssl/private/ca.pem")
o.description = translate("Please confirm the current certificate path")
o.default = "/etc/ssl/private/ca.pem"

o = s:option(Flag, "fast_open", translate("TCP Fast Open"), translate("Enabling TCP Fast Open Requires Server Support."))
o = s:option(Flag, "fast_open", translate("TCP Fast Open"))
o.rmempty = true
o.default = "0"
o:depends("type", "ssr")
Expand Down
5 changes: 0 additions & 5 deletions luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/servers.lua
Original file line number Diff line number Diff line change
Expand Up @@ -67,11 +67,6 @@ o.write = function()
luci.http.redirect(luci.dispatcher.build_url("admin", "services", "shadowsocksr", "servers"))
end

o = s:option(Flag, "allow_insecure", translate("Allow subscribe Insecure nodes By default"))
o.rmempty = false
o.description = translate("Subscribe nodes allows insecure connection as TLS client (insecure)")
o.default = "0"

o = s:option(Flag, "switch", translate("Subscribe Default Auto-Switch"))
o.rmempty = false
o.description = translate("Subscribe new add server default Auto-Switch on")
Expand Down
21 changes: 9 additions & 12 deletions luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm
Original file line number Diff line number Diff line change
Expand Up @@ -4,7 +4,7 @@
-%>
<script type="text/javascript">
//<![CDATA[
window.addEventListener('load', function () {
window.addEventListener('load',function(){
const doms = document.getElementsByClassName('pingtime');
const ports = document.getElementsByClassName("socket-connected");
const transports = document.getElementsByClassName("transport");
Expand All @@ -17,7 +17,7 @@
const transport = transports[index];
const wsPath = wsPaths[index];
const tls = tlss[index];
if (!dom) res();
if (!dom) res()
port.innerHTML = '<font style=\"color:#0072c3\">connect</font>';
XHR.get('<%=luci.dispatcher.build_url("admin/services/shadowsocksr/ping")%>', {
index,
Expand All @@ -34,27 +34,27 @@
if (result.ping < 200) col = '#ff7700';
if (result.ping < 100) col = '#249400';
}
dom.innerHTML = `<font style=\"color:${col}\">${(result.ping ? result.ping : "--") + " ms"}</font>`;
dom.innerHTML = `<font style=\"color:${col}\">${(result.ping ? result.ping : "--") + " ms"}</font>`
if (result.socket) {
port.innerHTML = '<font style=\"color:#249400\">ok</font>';
} else {
port.innerHTML = '<font style=\"color:#ff0000\">fail</font>';
}
res();
});
});
};
})
}
let task = -1;
const thread = () => {
task = task + 1;
task = task + 1
if (doms[task]) {
xhr(task).then(thread);
}
};
}
for (let i = 0; i < 20; i++) {
thread();
thread()
}
});
})

function cbi_row_drop(fromId, toId, store, isToBottom) {
var fromNode = document.getElementById(fromId);
Expand Down Expand Up @@ -85,7 +85,6 @@
if (input) input.value = ids.join(" ");
return false;
}

// set tr draggable
function enableDragForTable(table_selecter, store) {
var trs = document.querySelectorAll(table_selecter + " tr");
Expand Down Expand Up @@ -138,11 +137,9 @@
}
}
}

// enable
enableDragForTable(
"#cbi-shadowsocksr-servers table",
"cbi.sts.shadowsocksr.servers"
);
//]]>
</script>
13 changes: 3 additions & 10 deletions luci-app-ssr-plus/luasrc/view/shadowsocksr/ssrurl.htm
Original file line number Diff line number Diff line change
Expand Up @@ -374,19 +374,12 @@
if (ssm.tls == "tls") {
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].checked = true;
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls')[0].dispatchEvent(event);
document.getElementsByName('cbid.shadowsocksr.' + sid + '.fingerprint')[0].value = ssm.fp;
if (ssm.net == "xhttp") {
document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_alpn')[0].value = ssm.alpn;
}
document.getElementsByName('cbid.shadowsocksr.' + sid + '.xhttp_alpn')[0].value = ssm.alpn;
document.getElementsByName('cbid.shadowsocksr.' + sid + '.tls_host')[0].value = ssm.sni || ssm.host;
}
if (ssm.mux !== undefined) {
document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].checked = true;
document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].dispatchEvent(event);
}
if (ssm.xmux !== undefined) {
document.getElementsByName('cbid.shadowsocksr.' + sid + '.xmux')[0].checked = true;
document.getElementsByName('cbid.shadowsocksr.' + sid + '.xmux')[0].dispatchEvent(event);
document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].checked = true;
document.getElementsByName('cbid.shadowsocksr.' + sid + '.mux')[0].dispatchEvent(event);
}
s.innerHTML = "<font style=\'color:green\'><%:Import configuration information successfully.%></font>";
return false;
Expand Down
39 changes: 2 additions & 37 deletions luci-app-ssr-plus/po/zh_Hans/ssr-plus.po
Original file line number Diff line number Diff line change
Expand Up @@ -91,44 +91,18 @@ msgstr "TLS 主机名"
msgid "allowInsecure"
msgstr "允许不安全连接"

msgid "Enable Mux.Cool"
msgstr "启用 Mux.Cool"

msgid "Enable Xudp Mux"
msgstr "启用 Xudp Mux"

msgid "Enable Multipath TCP, need to be enabled in both server and client configuration."
msgstr "启用 Multipath TCP,需在服务端和客户端配置中同时启用。"
msgid "Enabling MPTCP Requires Server Support."
msgstr "启用 MPTCP 需服务端支持。"

msgid "concurrency"
msgstr "TCP 最大并发连接数"

msgid "Default: disable. When entering a negative number, such as -1, The Mux module will not be used to carry TCP traffic."
msgstr "默认:禁用。填负数时,如 -1,不使用 Mux 模块承载 TCP 流量。"

msgid "Min value is 1, Max value is 128. When omitted or set to 0, it equals 8."
msgstr "最小值 1,最大值 128。省略或者填 0 时都等于 8。"

msgid "xudpConcurrency"
msgstr "UDP 最大并发连接数"

msgid "Default:16. When entering a negative number, such as -1, The Mux module will not be used to carry UDP traffic, Use original UDP transmission method of proxy protocol."
msgstr "默认值:16。填负数时,如 -1,不使用 Mux 模块承载 UDP 流量。将使用代理协议原本的 UDP 传输方式。"

msgid "Min value is 1, Max value is 1024. When omitted or set to 0, Will same path as TCP traffic."
msgstr "最小值 1,最大值 1024。 省略或者填 0 时,将与 TCP 流量走同一条路,也就是传统的行为。"

msgid "xudpProxyUDP443"
msgstr "对被代理的 UDP/443 流量处理方式"

msgid "Default reject rejects traffic."
msgstr "默认 reject 拒绝流量。"

msgid "allow: Allows use Mux connection."
msgstr "allow:允许走 Mux 连接。"

msgid "skip: Not use Mux module to carry UDP 443 traffic, Use original UDP transmission method of proxy protocol."
msgstr "skip:不使用 Mux 模块承载 UDP 443 流量,将使用代理协议原本的 UDP 传输方式。"

msgid "custom_tcpcongestion"
msgstr "连接服务器节点的 TCP 拥塞控制算法"
Expand Down Expand Up @@ -333,9 +307,6 @@ msgstr "服务器"
msgid "TCP Fast Open"
msgstr "TCP 快速打开"

msgid "Enabling TCP Fast Open Requires Server Support."
msgstr "启用 TCP 快速打开需要服务端支持。"

msgid "Status"
msgstr "状态"

Expand Down Expand Up @@ -1296,12 +1267,6 @@ msgstr "是否要恢复客户端默认配置?"
msgid "Are you sure you want to restore the client to default settings?"
msgstr "是否真的要恢复客户端默认配置?"

msgid "Allow subscribe Insecure nodes By default"
msgstr "订阅节点允许不验证TLS证书"

msgid "Subscribe nodes allows insecure connection as TLS client (insecure)"
msgstr "订阅节点强制开启 不验证TLS客户端证书 (insecure)"

msgid "MosDNS GeoIP List Data"
msgstr "【MosDNS GeoIP】数据库"

Expand Down
Loading