Browse Source

Merge pull request #1415 from shenyunet/master

luci-app-ssr-plus: Enhance proxy port configuration with custom port support
coolsnowwolf 1 year ago
parent
commit
fd70a01640

+ 4 - 0
luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua

@@ -87,6 +87,10 @@ o.default = gfw
 o = s:option(ListValue, "dports", translate("Proxy Ports"))
 o:value("1", translate("All Ports"))
 o:value("2", translate("Only Common Ports"))
+o:value("3", translate("Custom Ports"))
+cp = s:option(Value, "custom_ports", translate("Enter Custom Ports"))
+cp:depends("dports", "3")  -- 仅当用户选择“Custom Ports”时显示
+cp.placeholder = "e.g., 80,443,8080"
 o.default = 1
 
 o = s:option(ListValue, "pdnsd_enable", translate("Resolve Dns Mode"))

+ 11 - 2
luci-app-ssr-plus/root/etc/init.d/shadowsocksr

@@ -1013,9 +1013,17 @@ start_rules() {
 		all) echo "-z" ;;
 		esac
 	}
-	if [ "$(uci_get_by_type global dports 1)" == "2" ]; then
-		local proxyport="-m multiport --dports 22,53,587,465,995,993,143,80,443,853,9418"
+	if [ "$(uci_get_by_type global dports)" == "3" ]; then
+		local custom_ports=$(uci_get_by_name $GLOBAL_SERVER custom_ports)  #  custom_ports 存储了用户自定义的端口
+		if [ -n "$custom_ports" ]; then
+			local proxyport="-m multiport --dports $custom_ports"
+		fi
+	else
+		if [ "$(uci_get_by_type global dports 1)" == "2" ]; then
+			local proxyport="-m multiport --dports 22,53,587,465,995,993,143,80,443,853,9418"
+		fi
 	fi
+
 	get_arg_out() {
 		case "$(uci_get_by_type access_control router_proxy 1)" in
 		1) echo "-o" ;;
@@ -1141,6 +1149,7 @@ reset() {
 		set shadowsocksr.@global[0].threads='0'
 		set shadowsocksr.@global[0].run_mode='router'
 		set shadowsocksr.@global[0].dports='2'
+		set shadowsocksr.@global[0].custom_ports='80,443'
 		set shadowsocksr.@global[0].pdnsd_enable='1'
 		set shadowsocksr.@global[0].tunnel_forward='8.8.4.4:53'
 		set shadowsocksr.@global[0].monitor_enable='1'