diff --git a/package/lean/luci-app-ssr-plus/Makefile b/package/lean/luci-app-ssr-plus/Makefile index f066ad702b..8e8deba73b 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:=180 -PKG_RELEASE:=6 +PKG_RELEASE:=7 include $(INCLUDE_DIR)/package.mk @@ -18,7 +18,11 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_V2ray config PACKAGE_$(PKG_NAME)_INCLUDE_Trojan bool "Include Trojan" default y if i386||x86_64||arm||aarch64 - + +config PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy + bool "Include NaiveProxy" + default y if i386||x86_64||arm||aarch64 + config PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 bool "Include Redsocks2" default y if i386||x86_64||arm||aarch64 @@ -36,11 +40,12 @@ PKG_CONFIG_DEPENDS:= \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_plugin \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_V2ray \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Trojan \ + CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2 \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun \ CONFIG_PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Server -LUCI_TITLE:=SS/SSR/V2Ray/Trojan/Socks5/Tun LuCI interface +LUCI_TITLE:=SS/SSR/V2Ray/Trojan/NaiveProxy/Socks5/Tun LuCI interface LUCI_PKGARCH:=all LUCI_DEPENDS:=+shadowsocksr-libev-alt +ipset +ip-full +iptables-mod-tproxy +dnsmasq-full +coreutils +coreutils-base64 +pdnsd-alt +wget +lua +libuci-lua \ +microsocks +dns2socks +shadowsocks-libev-ss-local +shadowsocksr-libev-ssr-local +shadowsocks-libev-ss-redir +simple-obfs +tcping +resolveip\ @@ -48,6 +53,7 @@ LUCI_DEPENDS:=+shadowsocksr-libev-alt +ipset +ip-full +iptables-mod-tproxy +dnsm +PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray \ +PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan \ +PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:ipt2socks \ + +PACKAGE_$(PKG_NAME)_INCLUDE_NaiveProxy:naiveproxy \ +PACKAGE_$(PKG_NAME)_INCLUDE_Redsocks2:redsocks2 \ +PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \ +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Server:shadowsocksr-libev-server diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua index 3bedd5bd30..694d57234d 100644 --- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua +++ b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/client-config.lua @@ -127,6 +127,9 @@ end if nixio.fs.access("/usr/sbin/trojan") then o:value("trojan", translate("Trojan")) end +if nixio.fs.access("/usr/bin/naive") then +o:value("naiveproxy", translate("NaiveProxy")) +end if nixio.fs.access("/usr/sbin/redsocks2") then o:value("socks5", translate("Socks5")) o:value("tun", translate("Network Tunnel")) @@ -149,6 +152,7 @@ o:depends("type", "ssr") o:depends("type", "ss") o:depends("type", "v2ray") o:depends("type", "trojan") +o:depends("type", "naiveproxy") o:depends("type", "socks5") o = s:option(Value, "server_port", translate("Server Port")) @@ -158,6 +162,7 @@ o:depends("type", "ssr") o:depends("type", "ss") o:depends("type", "v2ray") o:depends("type", "trojan") +o:depends("type", "naiveproxy") o:depends("type", "socks5") o = s:option(Flag, "auth_enable", translate("Enable Authentication")) @@ -167,6 +172,7 @@ o:depends("type", "socks5") o = s:option(Value, "username", translate("Username")) o.rmempty = true +o:depends("type", "naiveproxy") o:depends("type", "socks5") o = s:option(Value, "password", translate("Password")) @@ -175,6 +181,7 @@ o.rmempty = true o:depends("type", "ssr") o:depends("type", "ss") o:depends("type", "trojan") +o:depends("type", "naiveproxy") o:depends("type", "socks5") o = s:option(ListValue, "encrypt_method", translate("Encrypt Method")) 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 cab5a7f110..c4c5985461 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 @@ -116,6 +116,7 @@ find_bin() { ssr-server) ret="/usr/bin/ssr-server" ;; v2ray) ret="/usr/bin/v2ray/v2ray" && [ ! -f "$ret" ] && ret="/usr/bin/v2ray" ;; trojan) ret="/usr/sbin/trojan" ;; + naiveproxy) ret="/usr/bin/naive" ;; socks5 | tun) ret="/usr/sbin/redsocks2" ;; esac echo $ret @@ -193,6 +194,20 @@ gen_config_file() { lua /usr/share/shadowsocksr/gentrojanconfig.lua $GLOBAL_SERVER nat $(uci_get_by_name $1 local_port) >/var/etc/trojan-ssr-retcp.json sed -i 's/\\//g' /var/etc/trojan-ssr-retcp.json ;; + naiveproxy) + case "$2" in + 0) PROTO="redir"; FILE_NAME="retcp" ;; + 1) PROTO="redir"; FILE_NAME="netflix" ;; + 2) PROTO="socks"; FILE_NAME="socksdns" ;; + 3) PROTO="socks"; FILE_NAME="local" ;; + esac + cat <<-EOF >/var/etc/naive-ssr-$FILE_NAME.json + { + "listen": "$PROTO://0.0.0.0:$3", + "proxy": "https://$(uci_get_by_name $1 username):$(uci_get_by_name $1 password)@$(uci_get_by_name $1 server):$(uci_get_by_name $1 server_port)" + } + EOF + ;; esac } @@ -353,6 +368,10 @@ start_redir_tcp() { done echo "$(date "+%Y-%m-%d %H:%M:%S") Main node:$($bin --version 2>&1 | head -1) , $threads Threads Started!" >>/tmp/ssrplus.log ;; + naiveproxy) + $bin /var/etc/naive-ssr-retcp.json >/dev/null 2>&1 & + echo "$(date "+%Y-%m-%d %H:%M:%S") Main node:$($bin --version 2>&1 | head -1) Started!" >>/tmp/ssrplus.log + ;; socks5) /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-retcp.conf" socks5 tcp $(uci_get_by_name $GLOBAL_SERVER local_port) \ $(get_host_ip $(uci_get_by_name $GLOBAL_SERVER server)) $(uci_get_by_name $GLOBAL_SERVER server_port) \ @@ -375,7 +394,7 @@ start_redir_tcp() { start_redir_udp() { if [ -n "$UDP_RELAY_SERVER" ]; then - redir_udp=1 + redir_udp=1 local type=$(uci_get_by_name $UDP_RELAY_SERVER type) local bin=$(find_bin $type) [ ! -f "$bin" ] && echo "$(date "+%Y-%m-%d %H:%M:%S") UDP TPROXY Relay:Can't find $bin program, can't start!" >>/tmp/ssrplus.log && redir_udp=0 && return 1 @@ -405,6 +424,10 @@ start_redir_udp() { ipt2socks -U -b 0.0.0.0 -4 -s 127.0.0.1 -p 10801 -l $(uci_get_by_name $UDP_RELAY_SERVER local_port) >/dev/null 2>&1 & echo "$(date "+%Y-%m-%d %H:%M:%S") UDP TPROXY Relay:$($bin --version 2>&1 | head -1) Started!" >>/tmp/ssrplus.log ;; + naiveproxy) + redir_udp=0 + echo "$(date "+%Y-%m-%d %H:%M:%S") $($bin --version | head -1) UDP TPROXY Relay not supported!" >>/tmp/ssrplus.log + ;; socks5) /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-reudp.conf" socks5 udp $(uci_get_by_name $UDP_RELAY_SERVER local_port) \ $(get_host_ip $(uci_get_by_name $UDP_RELAY_SERVER server)) $(uci_get_by_name $UDP_RELAY_SERVER server_port) \ @@ -455,6 +478,14 @@ start_shunt() { dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & echo "$(date "+%Y-%m-%d %H:%M:%S") Netflix shunt:$($bin --version 2>&1 | head -1) Started!" >>/tmp/ssrplus.log ;; + naiveproxy) + gen_config_file $NETFLIX_SERVER 1 4321 + $bin /var/etc/naive-ssr-netflix.json >/dev/null 2>&1 & + gen_config_file $NETFLIX_SERVER 2 1088 + $bin /var/etc/naive-ssr-socksdns.json >/dev/null 2>&1 & + dns2socks 127.0.0.1:1088 8.8.8.8:53 127.0.0.1:5555 -q >/dev/null 2>&1 & + echo "$(date "+%Y-%m-%d %H:%M:%S") Netflix shunt:$($bin --version | head -1) Started!" >>/tmp/ssrplus.log + ;; socks5) /usr/share/shadowsocksr/genred2config.sh "/var/etc/redsocks-ssr-netflix.conf" socks5 tcp 4321 \ $(get_host_ip $(uci_get_by_name $NETFLIX_SERVER server)) $(uci_get_by_name $NETFLIX_SERVER server_port) \ @@ -505,6 +536,11 @@ start_local() { $bin --config /var/etc/trojan-ssr-local.json >/dev/null 2>&1 & echo "$(date "+%Y-%m-%d %H:%M:%S") Global_Socks5:$($bin --version 2>&1 | head -1) Started!" >>/tmp/ssrplus.log ;; + naiveproxy) + gen_config_file $local_server 3 $(uci_get_by_type socks5_proxy local_port 1080) + $bin /var/etc/naive-ssr-local.json >/dev/null 2>&1 & + echo "$(date "+%Y-%m-%d %H:%M:%S") Global_Socks5:$($bin --version | head -1) Started!" >>/tmp/ssrplus.log + ;; *) [ -e /proc/sys/net/ipv6 ] && local listenip='-i ::' microsocks $listenip -p $(uci_get_by_type socks5_proxy local_port 1080) ssr-local >/dev/null 2>&1 & @@ -750,7 +786,7 @@ stop() { ps -w | grep -v "grep" | grep ssr-monitor | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 & ps -w | grep -v "grep" | grep "sleep $(uci_get_by_type global switch_time)s" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 & ps -w | grep -v "grep" | grep "sleep 30s" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 & - killall -q -9 ss-redir ss-local obfs-local ssr-redir ssr-local ssr-server v2ray v2ray-plugin trojan microsocks ipt2socks dns2socks redsocks2 pdnsd + killall -q -9 ss-redir ss-local obfs-local ssr-redir ssr-local ssr-server v2ray v2ray-plugin trojan naive microsocks ipt2socks dns2socks redsocks2 pdnsd rm -f /var/lock/ssr-chinaipset.lock /var/lock/ssr-monitor.lock if [ -f "/tmp/dnsmasq.d/dnsmasq-ssr.conf" ]; then rm -rf /tmp/dnsmasq.d/dnsmasq-ssr.conf /tmp/dnsmasq.ssr /tmp/dnsmasq.oversea