From 3805105340ad0d4aa2ed7faf6cc2e0cb3ddf071b Mon Sep 17 00:00:00 2001 From: coolsnowwolf Date: Thu, 18 Apr 2019 14:45:51 +0800 Subject: [PATCH] luci ssr plus: add global proxy mode --- package/lean/luci-app-ssr-plus/Makefile | 2 +- .../luasrc/model/cbi/shadowsocksr/client.lua | 1 + .../lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po | 5 ++++- .../root/etc/init.d/shadowsocksr | 2 ++ .../lean/luci-app-ssr-plus/root/usr/bin/ssr-rules | 15 +++++++++++++-- 5 files changed, 21 insertions(+), 4 deletions(-) diff --git a/package/lean/luci-app-ssr-plus/Makefile b/package/lean/luci-app-ssr-plus/Makefile index 5fad9925f..06d730392 100644 --- a/package/lean/luci-app-ssr-plus/Makefile +++ b/package/lean/luci-app-ssr-plus/Makefile @@ -2,7 +2,7 @@ include $(TOPDIR)/rules.mk PKG_NAME:=luci-app-ssr-plus PKG_VERSION:=1 -PKG_RELEASE:=89 +PKG_RELEASE:=90 PKG_CONFIG_DEPENDS:= CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \ diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua index 02afa2729..f2f1b74d0 100644 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua +++ b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client.lua @@ -55,6 +55,7 @@ o.rmempty = false o = s:option(ListValue, "run_mode", translate("Running Mode")) o:value("gfw", translate("GFW List Mode")) o:value("router", translate("IP Route Mode")) +o:value("all", translate("Global Mode")) o:value("oversea", translate("Oversea Mode")) o.default = gfw diff --git a/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po b/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po index 17acd6550..e3b5c1056 100644 --- a/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po +++ b/package/lean/luci-app-ssr-plus/po/zh-cn/ssr-plus.po @@ -185,7 +185,7 @@ msgid "Running Status" msgstr "运行状态" msgid "Global Client" -msgstr "全局客户端" +msgstr "TCP透明代理" msgid "Global SSR Server" msgstr "SSR服务端" @@ -226,6 +226,9 @@ msgstr "绕过中国大陆IP模式" msgid "GFW List Mode" msgstr "GFW列表模式" +msgid "Global Mode" +msgstr "全局模式" + msgid "Oversea Mode" msgstr "海外用户回国模式" diff --git a/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr index abd44ab9b..5c373889a 100755 --- a/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr +++ b/package/lean/luci-app-ssr-plus/root/etc/init.d/shadowsocksr @@ -183,6 +183,8 @@ start_rules() { gfwmode="-r" elif [ "$run_mode" = "oversea" ]; then gfwmode="-c" + elif [ "$run_mode" = "all" ]; then + gfwmode="-z" fi diff --git a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules index 9e45f9dc1..b27c9d513 100755 --- a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules +++ b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-rules @@ -101,6 +101,11 @@ EOF $IPT -A SS_SPEC_WAN_AC -m set --match-set china dst -j SS_SPEC_WAN_FW $IPT -I SS_SPEC_WAN_AC -d $server -j RETURN + elif [ "$RUNMODE" = "all" ] ;then + $IPT -N SS_SPEC_WAN_AC + $IPT -A SS_SPEC_WAN_AC -j SS_SPEC_WAN_FW + $IPT -I SS_SPEC_WAN_AC -d $server -j RETURN + fi ipset -N fplan hash:net 2>/dev/null @@ -199,6 +204,9 @@ tp_rule() { elif [ "$RUNMODE" = "oversea" ] ;then $ipt -A SS_SPEC_TPROXY -p udp -m set --match-set china dst \ -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 + + elif [ "$RUNMODE" = "all" ] ;then + $ipt -A SS_SPEC_TPROXY -p udp -j TPROXY --on-port "$LOCAL_PORT" --tproxy-mark 0x01/0x01 fi $ipt -I PREROUTING 1 ${IFNAME:+-i $IFNAME} -p udp $EXT_ARGS $MATCH_SET \ @@ -278,7 +286,7 @@ EOF return 0 } -while getopts ":s:l:S:L:i:e:a:b:w:p:G:oOuUfgrch" arg; do +while getopts ":s:l:S:L:i:e:a:b:w:p:G:oOuUfgrczh" arg; do case "$arg" in s) server=$OPTARG @@ -333,7 +341,10 @@ while getopts ":s:l:S:L:i:e:a:b:w:p:G:oOuUfgrch" arg; do ;; c) RUNMODE=oversea - ;; + ;; + z) + RUNMODE=all + ;; f) flush_r exit 0 -- GitLab