diff --git a/package/lean/luci-app-ssr-plus/Makefile b/package/lean/luci-app-ssr-plus/Makefile
index c19a75dd5..3c26b58db 100644
--- a/package/lean/luci-app-ssr-plus/Makefile
+++ b/package/lean/luci-app-ssr-plus/Makefile
@@ -1,8 +1,8 @@
include $(TOPDIR)/rules.mk
PKG_NAME:=luci-app-ssr-plus
-PKG_VERSION:=157
-PKG_RELEASE:=2
+PKG_VERSION:=158
+PKG_RELEASE:=1
PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_NAME)
@@ -36,10 +36,6 @@ config PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun
config PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Server
bool "Include ShadowsocksR Server"
default y if x86_64
-
-config PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Socks
- bool "Include Socks Sever"
- default y if x86_64
endef
define Package/$(PKG_NAME)
@@ -48,15 +44,14 @@ define Package/$(PKG_NAME)
SUBMENU:=3. Applications
TITLE:=SS/SSR/V2Ray/Trojan LuCI interface
PKGARCH:=all
- DEPENDS:=+shadowsocksr-libev-alt +ipset +ip-full +iptables-mod-tproxy +dnsmasq-full +coreutils +coreutils-base64 +pdnsd-alt +wget +lua +ipt2socks \
+ DEPENDS:=+shadowsocksr-libev-alt +ipset +ip-full +iptables-mod-tproxy +dnsmasq-full +coreutils +coreutils-base64 +pdnsd-alt +wget +lua +ipt2socks +microsocks \
+PACKAGE_$(PKG_NAME)_INCLUDE_Shadowsocks:shadowsocks-libev-ss-redir \
+PACKAGE_$(PKG_NAME)_INCLUDE_Simple_obfs:simple-obfs \
+PACKAGE_$(PKG_NAME)_INCLUDE_V2ray_plugin:v2ray-plugin \
+PACKAGE_$(PKG_NAME)_INCLUDE_V2ray:v2ray \
+PACKAGE_$(PKG_NAME)_INCLUDE_Trojan:trojan \
+PACKAGE_$(PKG_NAME)_INCLUDE_Kcptun:kcptun-client \
- +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Server:shadowsocksr-libev-server \
- +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Socks:srelay
+ +PACKAGE_$(PKG_NAME)_INCLUDE_ShadowsocksR_Server:shadowsocksr-libev-server
endef
define Build/Prepare
diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua
index 7e1070cb1..3c550e084 100644
--- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua
+++ b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/advanced.lua
@@ -1,22 +1,5 @@
-local shadowsocksr = "shadowsocksr"
-local uci = luci.model.uci.cursor()
-local server_table = {}
-uci:foreach(shadowsocksr, "servers", function(s)
- if s.alias then
- server_table[s[".name"]] = "[%s]:%s" %{string.upper(s.type), s.alias}
- elseif s.server and s.server_port then
- server_table[s[".name"]] = "[%s]:%s:%s" %{string.upper(s.type), s.server, s.server_port}
- end
-end)
-
-local key_table = {}
-for key,_ in pairs(server_table) do
- table.insert(key_table,key)
-end
-
-table.sort(key_table)
-m = Map(shadowsocksr)
+m = Map("shadowsocksr")
-- [[ global ]]--
s = m:section(TypedSection, "global", translate("Server failsafe auto swith settings"))
s.anonymous = true
@@ -65,11 +48,11 @@ o = s:option(Value, "chnroute_url", translate("Update url"))
o.default = "https://cdn.jsdelivr.net/gh/17mon/china_ip_list/china_ip_list.txt"
-- [[ SOCKS Proxy ]]--
-if nixio.fs.access("/usr/bin/srelay") then
-s = m:section(TypedSection, "socks5_proxy", translate("SOCKS Proxy"))
+if nixio.fs.access("/usr/bin/microsocks") then
+s = m:section(TypedSection, "socks5_proxy", translate("SOCKS5 Proxy Server Settings"))
s.anonymous = true
-o = s:option(Flag, "socks", translate("Enable SOCKS Proxy"))
+o = s:option(Flag, "socks", translate("Enable SOCKS5 Proxy Server"))
o.rmempty = false
o = s:option(Value, "local_port", translate("Local Port"))
@@ -77,5 +60,18 @@ o.datatype = "port"
o.default = 1080
o.rmempty = false
+o = s:option(Flag, "auth_enable", translate("Enable Authentication"))
+o.rmempty = false
+o.default = "0"
+
+o = s:option(Value, "username", translate("Username"))
+o.rmempty = false
+o:depends("auth_enable", "1")
+
+o = s:option(Value, "password", translate("Password"))
+o.password = true
+o.rmempty = false
+o:depends("auth_enable", "1")
+
end
return m
diff --git a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua
index 614a362bf..bb10379f3 100644
--- a/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua
+++ b/package/lean/luci-app-ssr-plus/luasrc/model/cbi/shadowsocksr/status.lua
@@ -65,7 +65,7 @@ if luci.sys.call("busybox ps -w | grep ssr-retcp | grep -v grep >/dev/null") ==
redir_run=1
end
-if luci.sys.call("pidof srelay >/dev/null") == 0 then
+if luci.sys.call("pidof microsocks >/dev/null") == 0 then
sock5_run=1
end
@@ -113,8 +113,8 @@ else
s.value = translate("Not Running")
end
-if nixio.fs.access("/usr/bin/srelay") then
-s=m:field(DummyValue,"sock5_run",translate("SOCKS Proxy"))
+if nixio.fs.access("/usr/bin/microsocks") then
+s=m:field(DummyValue,"sock5_run",translate("SOCKS5 Proxy Server"))
s.rawhtml = true
if sock5_run == 1 then
s.value =font_blue .. bold_on .. translate("Running") .. bold_off .. font_off
diff --git a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm
index be523e600..ca9b70db8 100644
--- a/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm
+++ b/package/lean/luci-app-ssr-plus/luasrc/view/shadowsocksr/server_list.htm
@@ -14,7 +14,7 @@ local dsp = require "luci.dispatcher"
const dom = doms[index];
const port = ports[index];
if (!dom) res()
- port.innerHTML = 'connecting...';
+ port.innerHTML = 'connect';
XHR.get('<%=dsp.build_url("admin/services/shadowsocksr/ping")%>', {
index,
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 da1bbec08..c590f7fdb 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
@@ -422,7 +422,7 @@ msgid "Auto Update Server subscription, GFW list and CHN route"
msgstr "自动更新服务器订阅、GFW列表和 CHN路由表"
msgid "Subscribe URL"
-msgstr "SS/SSR/V2RAY/Trojan订阅URL地址"
+msgstr "SS/SSR/V2/TROJAN订阅URL"
msgid "Update"
msgstr "更新"
@@ -603,3 +603,15 @@ msgstr "订阅新节点自动切换设置"
msgid "Subscribe new add server default Auto-Switch on"
msgstr "订阅加入的新节点默认开启自动切换"
+
+msgid "SOCKS5 Proxy Server Settings"
+msgstr "SOCKS5 代理服务端设置"
+
+msgid "Enable SOCKS5 Proxy Server"
+msgstr "启用 SOCKS5 代理服务"
+
+msgid "Enable Authentication"
+msgstr "启用 用户名/密码 认证"
+
+msgid "SOCKS5 Proxy Server"
+msgstr "SOCKS5 代理服务端"
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 4a247925e..aea402a42 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
@@ -452,10 +452,12 @@ start_server() {
start_local() {
local local_server=$(uci_get_by_type socks5_proxy socks 0)
[ "$local_server" == "0" ] && return 0
- mkdir -p /var/run /var/etc
- echo '0.0.0.0 any' >/var/etc/srelay.conf
- /usr/bin/srelay -q -c /var/etc/srelay.conf \
- -i:$(uci_get_by_type socks5_proxy local_port 1080) >/dev/null 2>&1
+ local auth_enable=$(uci_get_by_type socks5_proxy auth_enable 0)
+ if [ "$auth_enable" == "1" ]; then
+ microsocks -i 0.0.0.0 -p $(uci_get_by_type socks5_proxy local_port 1080) -1 -u $(uci_get_by_type socks5_proxy username) -P $(uci_get_by_type socks5_proxy password) >/dev/null 2>&1 &
+ else
+ microsocks -i 0.0.0.0 -p $(uci_get_by_type socks5_proxy local_port 1080) >/dev/null 2>&1 &
+ fi
local_enable=1
}
@@ -538,6 +540,7 @@ stop() {
killall -q -9 ssr-server
killall -q -9 kcptun-client
killall -q -9 srelay
+ killall -q -9 microsocks
if [ -f /var/run/pdnsd.pid ]; then
kill $(cat /var/run/pdnsd.pid) >/dev/null 2>&1
else
diff --git a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-monitor b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-monitor
index 678846d79..a6d581aa6 100755
--- a/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-monitor
+++ b/package/lean/luci-app-ssr-plus/root/usr/bin/ssr-monitor
@@ -40,8 +40,6 @@ password=$(uci_get_by_name $GLOBAL_SERVER kcp_password)
kcp_param=$(uci_get_by_name $GLOBAL_SERVER kcp_param)
[ "$password" != "" ] && password="--key "${password}
-sock5_port=$(uci_get_by_type socks5_proxy local_port 1080)
-
if echo "$server" | grep -E "^[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}\.[0-9]{1,3}$" >/dev/null; then
server=${server}
else
@@ -97,13 +95,18 @@ while [ "1" == "1" ]; do #死循环
(/usr/bin/kcptun-client -r $server:$kcp_port -l :$server_port $password $kcp_param &)
fi
fi
- #srelay
+ #microsocks
if [ "$local_process" -gt 0 ]; then
- icount=$(busybox ps -w | grep srelay | grep -v grep | wc -l)
+ icount=$(busybox ps -w | grep microsocks | grep -v grep | wc -l)
if [ "$icount" -lt "$local_process" ]; then #如果进程挂掉就重启它
- logger -t "$NAME" "srelay error.restart!"
- killall -q -9 srelay
- (/usr/bin/srelay -q -c /etc/srelay.conf -i:$sock5_port -p /var/run/srelay.pid >/dev/null 2>&1)
+ logger -t "$NAME" "microsocks error.restart!"
+ killall -q -9 microsocks
+ local auth_enable=$(uci_get_by_type socks5_proxy auth_enable 0)
+ if [ "$auth_enable" == "1" ]; then
+ microsocks -i 0.0.0.0 -p $(uci_get_by_type socks5_proxy local_port 1080) -1 -u $(uci_get_by_type socks5_proxy username) -P $(uci_get_by_type socks5_proxy password) >/dev/null 2>&1 &
+ else
+ microsocks -i 0.0.0.0 -p $(uci_get_by_type socks5_proxy local_port 1080) >/dev/null 2>&1 &
+ fi
fi
fi
#pdnsd
diff --git a/package/lean/microsocks/Makefile b/package/lean/microsocks/Makefile
new file mode 100644
index 000000000..3153b7922
--- /dev/null
+++ b/package/lean/microsocks/Makefile
@@ -0,0 +1,38 @@
+include $(TOPDIR)/rules.mk
+
+PKG_NAME:=microsocks
+PKG_VERSION=1.0
+PKG_RELEASE:=1
+
+PKG_MAINTAINER:=lean
+PKG_LICENSE:=MIT
+PKG_LICENSE_FILES:=LICENSE
+
+PKG_SOURCE_PROTO:=git
+PKG_SOURCE_URL:=https://github.com/rofl0r/microsocks.git
+PKG_SOURCE_VERSION:=be545814aeca1158ae38e2d6c66b1197679dab63
+
+PKG_SOURCE_SUBDIR:=$(PKG_NAME)
+PKG_SOURCE:=$(PKG_NAME).$(PKG_VERSION).$(PKG_RELEASE).tar.gz
+PKG_BUILD_DIR:=$(BUILD_DIR)/$(PKG_SOURCE_SUBDIR)
+PKG_BUILD_PARALLEL:=1
+
+include $(INCLUDE_DIR)/package.mk
+
+define Package/microsocks
+ SECTION:=net
+ CATEGORY:=Network
+ TITLE:=microsocks for OpenWRT
+ DEPENDS:=
+endef
+
+define Package/microsocks/description
+ microsocks is a Tiny Proxy in C.
+endef
+
+define Package/microsocks/install
+ $(INSTALL_DIR) $(1)/usr/bin
+ $(INSTALL_BIN) $(PKG_BUILD_DIR)/microsocks $(1)/usr/bin/microsocks
+endef
+
+$(eval $(call BuildPackage,microsocks))