From 1d53c795671ea5a5532b2493501935be554efe6c Mon Sep 17 00:00:00 2001 From: sbwml Date: Sat, 15 Jul 2023 02:39:30 +0800 Subject: [PATCH] luci-app-ssr-plus: sync upstream * https://github.com/fw876/helloworld/commit/67dff7a46448647c2765f17a71c0bb0f232841cb --- luci-app-ssr-plus/Makefile | 13 +++- .../model/cbi/shadowsocksr/client-config.lua | 77 ++++++++++++++----- luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 38 +++++++-- .../root/etc/init.d/shadowsocksr | 1 - .../root/etc/ssrplus/china_ssr.txt | 2 +- .../usr/share/shadowsocksr/gen_config.lua | 40 ++++++---- 6 files changed, 127 insertions(+), 44 deletions(-) diff --git a/luci-app-ssr-plus/Makefile b/luci-app-ssr-plus/Makefile index 133313f0a..fd60097e0 100644 --- a/luci-app-ssr-plus/Makefile +++ b/luci-app-ssr-plus/Makefile @@ -10,6 +10,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Xray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Tuic-Client \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ @@ -27,7 +28,7 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Libev_Server \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Trojan -LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Socks5/Tun LuCI interface +LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/TUIC/Hysteria/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:= \ @(PACKAGE_libustream-mbedtls||PACKAGE_libustream-openssl||PACKAGE_libustream-wolfssl) \ @@ -40,6 +41,7 @@ LUCI_DEPENDS:= \ +PACKAGE_$(PKG_NAME)_INCLUDE_Xray:xray-core \ +PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG:chinadns-ng \ +PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria:hysteria \ + +PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client:tuic-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks:ipt2socks \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ @@ -115,6 +117,15 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG config PACKAGE_$(PKG_NAME)_INCLUDE_Hysteria bool "Include Hysteria" + select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG + default n + +config PACKAGE_$(PKG_NAME)_INCLUDE_TUIC-Client + bool "Include tuic-client" + select PACKAGE_$(PKG_NAME)_INCLUDE_ChinaDNS_NG + select PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks + depends on aarch64||i686||x86_64 + depends on !(TARGET_x86_geode||TARGET_x86_legacy) default n config PACKAGE_$(PKG_NAME)_INCLUDE_IPT2Socks diff --git a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 0a278e4f4..e39088b12 100644 --- a/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -225,7 +225,6 @@ o:depends({type = "v2ray", v2ray_protocol = "socks"}) o = s:option(Value, "username", translate("Username")) o.rmempty = true o:depends("type", "naiveproxy") ---o:depends("type", "tuic") o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", auth_enable = true}) @@ -237,7 +236,6 @@ o:depends("type", "ssr") o:depends("type", "ss") o:depends("type", "trojan") o:depends("type", "naiveproxy") -o:depends("type", "tuic") o:depends({type = "socks5", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "http", auth_enable = true}) o:depends({type = "v2ray", v2ray_protocol = "socks", socks_ver = "5", auth_enable = true}) @@ -351,15 +349,29 @@ o.default = "0" -- [[ TUIC ]] -- TuicNameId -o = s:option(Value, "tuic_uuid", translate("TUIC user UUID")) +o = s:option(Value, "tuic_uuid", translate("TUIC User UUID")) o.rmempty = true o.default = uuid o:depends("type", "tuic") +--Tuic IP +o = s:option(Value, "tuic_ip", translate("TUIC Server IP Address")) +o.rmempty = true +o.datatype = "ip4addr" +o.default = "" +o:depends("type", "tuic") + +-- Tuic Password +o = s:option(Value, "tuic_passwd", translate("TUIC User Password")) +o.rmempty = true +o.default = "" +o:depends("type", "tuic") + + o = s:option(ListValue, "udp_relay_mode", translate("UDP relay mode")) o:depends("type", "tuic") -o:value("native", translate("native")) -o:value("quic", translate("QUIC")) +o:value("native", translate("native UDP characteristics")) +o:value("quic", translate("lossless UDP relay using QUIC streams")) o.default = "native" o.rmempty = true @@ -371,10 +383,40 @@ o:value("new_reno", translate("New Reno")) o.default = "cubic" o.rmempty = true -o = s:option(Value, "heartbeat", translate("Heartbeat interval")) +o = s:option(Value, "heartbeat", translate("Heartbeat interval(second)")) o:depends("type", "tuic") ---o.datatype = "uinteger" -o.default = "3s" +o.datatype = "uinteger" +o.default = "3" +o.rmempty = true + +o = s:option(Value, "timeout", translate("Timeout for establishing a connection to server(second)")) +o:depends("type", "tuic") +o.datatype = "uinteger" +o.default = "8" +o.rmempty = true + +o = s:option(Value, "gc_interval", translate("Garbage collection interval(second)")) +o:depends("type", "tuic") +o.datatype = "uinteger" +o.default = "3" +o.rmempty = true + +o = s:option(Value, "gc_lifetime", translate("Garbage collection lifetime(second)")) +o:depends("type", "tuic") +o.datatype = "uinteger" +o.default = "15" +o.rmempty = true + +o = s:option(Value, "send_window", translate("TUIC send window")) +o:depends("type", "tuic") +o.datatype = "uinteger" +o.default = 16777216 +o.rmempty = true + +o = s:option(Value, "receive_window", translate("TUIC receive window")) +o:depends("type", "tuic") +o.datatype = "uinteger" +o.default = 8388608 o.rmempty = true o = s:option(Flag, "disable_sni", translate("Disable SNI")) @@ -385,18 +427,18 @@ o.rmempty = true o = s:option(Flag, "zero_rtt_handshake", translate("Enable 0-RTT QUIC handshake")) o:depends("type", "tuic") o.default = 0 -o.rmempty = false - -o = s:option(Value, "send_window", translate("TUIC send window")) -o.datatype = "uinteger" -o:depends("type", "tuic") -o.default = 16777216 o.rmempty = true -o = s:option(Value, "receive_window", translate("TUIC receive window")) -o.datatype = "uinteger" +--Tuic settings for the local inbound socks5 server +o = s:option(Flag, "tuic_dual_stack", translate("Set if the listening socket should be dual-stack")) o:depends("type", "tuic") -o.default = 8388608 +o.default = 0 +o.rmempty = true + +o = s:option(Value, "tuic_max_package_size", translate("Maximum packet size the socks5 server can receive from external")) +o:depends("type", "tuic") +o.datatype = "uinteger" +o.default = 1500 o.rmempty = true -- VmessId @@ -702,7 +744,6 @@ if is_finded("xray") then -- [[ uTLS ]]-- o = s:option(Value, "fingerprint", translate("Finger Print")) o:value("", translate("disable")) - o:value("firefox", translate("firefox")) o:value("chrome", translate("chrome")) o:value("firefox", translate("firefox")) o:value("safari", translate("safari")) diff --git a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 9dcf21a40..a2917b29a 100644 --- a/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -853,17 +853,38 @@ msgstr "应用" msgid "Enable Netflix Mode" msgstr "启用 Netflix 分流模式" -msgid "TUIC user UUID" +msgid "TUIC User UUID" msgstr "TUIC用户uuid" +msgid "TUIC Server IP Address" +msgstr "TUIC 服务器IP地址" + +msgid "TUIC User Password" +msgstr "TUIC用户密钥" + msgid "UDP relay mode" -msgstr "tuic UDP中继模式" +msgstr "UDP中继模式" + +msgid "native UDP characteristics" +msgstr "原生UDP特性" + +msgid "lossless UDP relay using QUIC streams" +msgstr "使用 QUIC 流的无损 UDP 中继" msgid "Congestion control algorithm" msgstr "拥塞控制算法" -msgid "Heartbeat interval" -msgstr "连接保活间隔" +msgid "Heartbeat interval(second)" +msgstr "保活心跳包发送间隔(单位:秒)" + +msgid "Timeout for establishing a connection to server(second)" +msgstr "连接超时时间(单位:秒)" + +msgid "Garbage collection interval(second)" +msgstr "UDP数据包片残片清理间隔(单位:秒)" + +msgid "Garbage collection lifetime(second)" +msgstr "UDP数据包残片在服务器的保留时间(单位:秒)" msgid "Disable SNI" msgstr "关闭SNI服务器名称指示" @@ -872,8 +893,13 @@ msgid "Enable 0-RTT QUIC handshake" msgstr "客户端启用 0-RTT QUIC 连接握手" msgid "TUIC send window" -msgstr "发送窗口(无需确认即可发送的最大字节数)" +msgstr "发送窗口(无需确认即可发送的最大字节数:默认8Mb*2)" msgid "TUIC receive window" -msgstr "接收窗口(无需确认即可接收的最大字节数)" +msgstr "接收窗口(无需确认即可接收的最大字节数:默认8Mb)" +msgid "Set if the listening socket should be dual-stack" +msgstr "设置监听套接字为双栈" + +msgid "Maximum packet size the socks5 server can receive from external" +msgstr "socks5服务器可以从外部接收的最大数据包大小(单位:字节)" diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index a869e4068..b459d8712 100755 --- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -994,7 +994,6 @@ reset() { add shadowsocksr access_control set shadowsocksr.@access_control[0].lan_ac_mode='0' set shadowsocksr.@access_control[0].router_proxy='1' - add_list shadowsocksr.@access_control[0].wan_bp_ips=34.149.0.0/16 add_list shadowsocksr.@access_control[0].wan_fw_ips=149.154.160.0/20 add_list shadowsocksr.@access_control[0].wan_fw_ips=67.198.55.0/24 add_list shadowsocksr.@access_control[0].wan_fw_ips=91.108.4.0/22 diff --git a/luci-app-ssr-plus/root/etc/ssrplus/china_ssr.txt b/luci-app-ssr-plus/root/etc/ssrplus/china_ssr.txt index 3775a098e..d35488334 100644 --- a/luci-app-ssr-plus/root/etc/ssrplus/china_ssr.txt +++ b/luci-app-ssr-plus/root/etc/ssrplus/china_ssr.txt @@ -8609,4 +8609,4 @@ 223.254.0.0/16 223.255.0.0/17 223.255.236.0/22 -223.255.252.0/23 \ No newline at end of file +223.255.252.0/23 diff --git a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua index a9bf4ae64..97361d04a 100755 --- a/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua +++ b/luci-app-ssr-plus/root/usr/share/shadowsocksr/gen_config.lua @@ -306,23 +306,29 @@ local hysteria = { lazy_start = (server.lazy_start == "1") and true or false } local tuic = { - relay = { - server = server.server .. ":" .. server.server_port, - uuid = server.tuic_uuid, - password = server.password, - certificates = server.certificate and { server.certpath } or nil, - udp_relay_mode = server.udp_relay_mode, - congestion_control = server.congestion_control, - heartbeat = server.heartbeat_interval, - alpn = server.tls_alpn, - disable_sni = (server.disable_sni == "1"), - zero_rtt_handshake = (server.zero_rtt_handshake == "1"), - send_window = tonumber(server.send_window), - receive_window = tonumber(server.receive_window) - }, - ["local"] = { - server = "0.0.0.0:" .. tonumber(local_port) - } + relay = { + server = server.server .. ":" .. server.server_port, + ip = server.tuic_ip, + uuid = server.tuic_uuid, + password = server.tuic_passwd, + certificates = server.certificate and { server.certpath } or nil, + udp_relay_mode = server.udp_relay_mode, + congestion_control = server.congestion_control, + heartbeat = server.heartbeat, + timeout = server.timeout, + gc_interval = server.gc_interval, + gc_lifetime = server.gc_lifetime, + alpn = server.tls_alpn, + disable_sni = (server.disable_sni == "1"), + zero_rtt_handshake = (server.zero_rtt_handshake == "1"), + send_window = tonumber(server.send_window), + receive_window = tonumber(server.receive_window) + }, + ["local"] = { + server = "[::]:" .. tonumber(local_port), + dual_stack = (server.tuic_dual_stack == "1") and true or false, + max_packet_size = server.tuic_max_package_size + } } local config = {} function config:new(o)