parent
5a4461e545
commit
be16cc31db
@ -18,16 +18,18 @@ LOG_FILE=/var/log/ssrplus.log
|
|||||||
TMP_PATH=/var/etc/ssrplus
|
TMP_PATH=/var/etc/ssrplus
|
||||||
TMP_BIN_PATH=$TMP_PATH/bin
|
TMP_BIN_PATH=$TMP_PATH/bin
|
||||||
# 设置 DNSMASQ_CONF_DIR 和 TMP_DNSMASQ_PATH
|
# 设置 DNSMASQ_CONF_DIR 和 TMP_DNSMASQ_PATH
|
||||||
[ -f /etc/openwrt_release ] && {
|
if [ -f /etc/openwrt_release ]; then
|
||||||
# 获取默认的 DNSMasq 配置 ID
|
# 获取默认的 DNSMASQ 配置 ID
|
||||||
DEFAULT_DNSMASQ_CFGID=$(uci show dhcp.@dnsmasq[0] | awk -F '.' '{print $2}' | awk -F '=' '{print $1}' | head -n 1)
|
DEFAULT_DNSMASQ_CFGID="$(uci -q show "dhcp.@dnsmasq[0]" | awk 'NR==1 {split($0, conf, /[.=]/); print conf[2]}')"
|
||||||
# 查找包含 conf-dir 选项的 dnsmasq.conf 文件路径
|
# 从 conf-dir 行中提取配置目录路径
|
||||||
DNSMASQ_CONF_PATH=$(grep -l "^conf-dir=" "/tmp/etc/dnsmasq.conf.${DEFAULT_DNSMASQ_CFGID}")
|
if [ -f "/tmp/etc/dnsmasq.conf.$DEFAULT_DNSMASQ_CFGID" ]; then
|
||||||
# 从 conf-dir 行中提取目录路径
|
DNSMASQ_CONF_DIR="$(awk -F '=' '/^conf-dir=/ {print $2}' "/tmp/etc/dnsmasq.conf.$DEFAULT_DNSMASQ_CFGID")"
|
||||||
DNSMASQ_CONF_DIR=$(grep '^conf-dir=' "$DNSMASQ_CONF_PATH" | cut -d'=' -f2 | head -n 1)
|
else
|
||||||
# 设置 TMP_DNSMASQ_PATH,并去除路径末尾的斜杠
|
DNSMASQ_CONF_DIR="/tmp/dnsmasq.d"
|
||||||
TMP_DNSMASQ_PATH="${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d"
|
fi
|
||||||
}
|
# 设置 TMP_DNSMASQ_PATH,并去除路径末尾的斜杠
|
||||||
|
TMP_DNSMASQ_PATH="${DNSMASQ_CONF_DIR%*/}/dnsmasq-ssrplus.d"
|
||||||
|
fi
|
||||||
|
|
||||||
chain_config_file= #generate shadowtls chain proxy config file
|
chain_config_file= #generate shadowtls chain proxy config file
|
||||||
tcp_config_file=
|
tcp_config_file=
|
||||||
|
@ -11,40 +11,24 @@ local args = arg[1]
|
|||||||
local uci = luci.model.uci.cursor()
|
local uci = luci.model.uci.cursor()
|
||||||
|
|
||||||
-- 以下设置更新数据库至 DNSMASQ 配置路径
|
-- 以下设置更新数据库至 DNSMASQ 配置路径
|
||||||
-- 获取 DNSMasq 配置 ID
|
-- 获取 DNSMASQ 配置 ID
|
||||||
local DEFAULT_DNSMASQ_CFGID = uci:get_first("dhcp", "dnsmasq", ".name")
|
local DNSMASQ_UCI_CONFIG = uci:get_first("dhcp", "dnsmasq", ".name")
|
||||||
|
|
||||||
if not DEFAULT_DNSMASQ_CFGID then
|
-- 获取 DNSMASQ 默认配置文件
|
||||||
error("未找到默认的 DNSMasq 配置 ID")
|
local DNSMASQ_CONF_PATH = "/tmp/etc/dnsmasq.conf." .. DNSMASQ_UCI_CONFIG
|
||||||
|
|
||||||
|
-- 检查 DNSMASQ 配置文件是否存在,如果存在则提取 conf-dir
|
||||||
|
for line in io.lines(DNSMASQ_CONF_PATH) do
|
||||||
|
local conf_dir = line:match("^conf%-dir=(.+)")
|
||||||
|
if conf_dir then
|
||||||
|
DNSMASQ_CONF_DIR = conf_dir:gsub("%s+", "") -- 去除空白字符
|
||||||
|
break
|
||||||
|
end
|
||||||
end
|
end
|
||||||
|
|
||||||
-- 查找包含 conf-dir 选项的 dnsmasq.conf 文件路径
|
|
||||||
local DNSMASQ_CONF_PATH_CMD = string.format("grep -l '^conf-dir=' /tmp/etc/dnsmasq.conf.%s*", DEFAULT_DNSMASQ_CFGID)
|
|
||||||
local DNSMASQ_CONF_PATH = io.popen(DNSMASQ_CONF_PATH_CMD):read("*l")
|
|
||||||
|
|
||||||
if not DNSMASQ_CONF_PATH or DNSMASQ_CONF_PATH:match("^%s*$") then
|
|
||||||
error("无法找到包含 conf-dir 选项的 dnsmasq.conf 文件路径")
|
|
||||||
end
|
|
||||||
|
|
||||||
DNSMASQ_CONF_PATH = DNSMASQ_CONF_PATH:gsub("%s+", "") -- 去除空白字符
|
|
||||||
|
|
||||||
-- 获取 DNSMASQ 配置路径
|
|
||||||
local DNSMASQ_CONF_DIR_CMD = string.format("grep '^conf-dir=' %s | cut -d'=' -f2 | head -n 1", DNSMASQ_CONF_PATH)
|
|
||||||
local DNSMASQ_CONF_DIR = io.popen(DNSMASQ_CONF_DIR_CMD):read("*l")
|
|
||||||
|
|
||||||
if not DNSMASQ_CONF_DIR or DNSMASQ_CONF_DIR:match("^%s*$") then
|
|
||||||
error("无法提取 conf-dir 配置,请检查 dnsmasq.conf 文件内容")
|
|
||||||
end
|
|
||||||
|
|
||||||
DNSMASQ_CONF_DIR = DNSMASQ_CONF_DIR:gsub("%s+", "") -- 去除空白字符
|
|
||||||
|
|
||||||
-- 设置 dnsmasq-ssrplus.d 目录路径,并去除路径末尾的斜杠
|
-- 设置 dnsmasq-ssrplus.d 目录路径,并去除路径末尾的斜杠
|
||||||
local TMP_DNSMASQ_PATH = DNSMASQ_CONF_DIR:match("^(.-)/?$") .. "/dnsmasq-ssrplus.d"
|
local TMP_DNSMASQ_PATH = DNSMASQ_CONF_DIR:match("^(.-)/?$") .. "/dnsmasq-ssrplus.d"
|
||||||
|
|
||||||
if not TMP_DNSMASQ_PATH or TMP_DNSMASQ_PATH:match("^%s*$") then
|
|
||||||
error("无法找到包含 dnsmasq 选项的 dnsmasq-ssrplus.d 目录路径")
|
|
||||||
end
|
|
||||||
|
|
||||||
local TMP_PATH = "/var/etc/ssrplus"
|
local TMP_PATH = "/var/etc/ssrplus"
|
||||||
-- match comments/title/whitelist/ip address/excluded_domain
|
-- match comments/title/whitelist/ip address/excluded_domain
|
||||||
local comment_pattern = "^[!\\[@]+"
|
local comment_pattern = "^[!\\[@]+"
|
||||||
|
@ -462,10 +462,10 @@ index 69dae19..7621a51 100644
|
|||||||
msgstr "DNS 服务器 IP:Port"
|
msgstr "DNS 服务器 IP:Port"
|
||||||
|
|
||||||
diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr
|
diff --git a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr
|
||||||
index 13266dc..88f26b2 100755
|
index 537baf1..83807d1 100755
|
||||||
--- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr
|
--- a/luci-app-ssr-plus/root/etc/init.d/shadowsocksr
|
||||||
+++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr
|
+++ b/luci-app-ssr-plus/root/etc/init.d/shadowsocksr
|
||||||
@@ -188,23 +188,17 @@ ln_start_bin() {
|
@@ -190,23 +190,17 @@ ln_start_bin() {
|
||||||
${file_func:-echolog " - ${ln_name}"} "$@" >/dev/null 2>&1 &
|
${file_func:-echolog " - ${ln_name}"} "$@" >/dev/null 2>&1 &
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -494,7 +494,7 @@ index 13266dc..88f26b2 100755
|
|||||||
case "$ssrplus_dns" in
|
case "$ssrplus_dns" in
|
||||||
1)
|
1)
|
||||||
ln_start_bin $(first_type dns2tcp) dns2tcp -L 127.0.0.1#$dns_port -R ${dnsserver/:/#}
|
ln_start_bin $(first_type dns2tcp) dns2tcp -L 127.0.0.1#$dns_port -R ${dnsserver/:/#}
|
||||||
@@ -215,26 +209,6 @@ start_dns() {
|
@@ -217,26 +211,6 @@ start_dns() {
|
||||||
ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver 127.0.0.1:$dns_port -q
|
ln_start_bin $(first_type dns2socks) dns2socks 127.0.0.1:$tmp_dns_port $dnsserver 127.0.0.1:$dns_port -q
|
||||||
pdnsd_enable_flag=2
|
pdnsd_enable_flag=2
|
||||||
;;
|
;;
|
||||||
@ -521,7 +521,7 @@ index 13266dc..88f26b2 100755
|
|||||||
esac
|
esac
|
||||||
|
|
||||||
if [ "$run_mode" = "router" ]; then
|
if [ "$run_mode" = "router" ]; then
|
||||||
@@ -503,33 +477,6 @@ start_udp() {
|
@@ -505,33 +479,6 @@ start_udp() {
|
||||||
esac
|
esac
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -555,7 +555,7 @@ index 13266dc..88f26b2 100755
|
|||||||
start_shunt() {
|
start_shunt() {
|
||||||
local type=$(uci_get_by_name $SHUNT_SERVER type)
|
local type=$(uci_get_by_name $SHUNT_SERVER type)
|
||||||
case "$type" in
|
case "$type" in
|
||||||
@@ -543,14 +490,14 @@ start_shunt() {
|
@@ -545,14 +492,14 @@ start_shunt() {
|
||||||
local tmp_port=$tmp_shunt_local_port
|
local tmp_port=$tmp_shunt_local_port
|
||||||
ln_start_bin $(first_type ${type}local ${type}-local) ${type}-local -c $shunt_dns_config_file
|
ln_start_bin $(first_type ${type}local ${type}-local) ${type}-local -c $shunt_dns_config_file
|
||||||
fi
|
fi
|
||||||
@ -572,7 +572,7 @@ index 13266dc..88f26b2 100755
|
|||||||
echolog "shunt:$($(first_type xray v2ray) version | head -1) Started!"
|
echolog "shunt:$($(first_type xray v2ray) version | head -1) Started!"
|
||||||
;;
|
;;
|
||||||
trojan)
|
trojan)
|
||||||
@@ -562,7 +509,7 @@ start_shunt() {
|
@@ -564,7 +511,7 @@ start_shunt() {
|
||||||
local tmp_port=$tmp_shunt_local_port
|
local tmp_port=$tmp_shunt_local_port
|
||||||
ln_start_bin $(first_type trojan) $type --config $shunt_dns_config_file
|
ln_start_bin $(first_type trojan) $type --config $shunt_dns_config_file
|
||||||
fi
|
fi
|
||||||
@ -581,7 +581,7 @@ index 13266dc..88f26b2 100755
|
|||||||
echolog "shunt:$($(first_type trojan) --version 2>&1 | head -1) Started!"
|
echolog "shunt:$($(first_type trojan) --version 2>&1 | head -1) Started!"
|
||||||
;;
|
;;
|
||||||
naiveproxy)
|
naiveproxy)
|
||||||
@@ -574,7 +521,7 @@ start_shunt() {
|
@@ -576,7 +523,7 @@ start_shunt() {
|
||||||
local tmp_port=$tmp_shunt_local_port
|
local tmp_port=$tmp_shunt_local_port
|
||||||
ln_start_bin $(first_type naive) naive --config $shunt_dns_config_file
|
ln_start_bin $(first_type naive) naive --config $shunt_dns_config_file
|
||||||
fi
|
fi
|
||||||
@ -590,7 +590,7 @@ index 13266dc..88f26b2 100755
|
|||||||
echolog "shunt:$($(first_type "naive") --version 2>&1 | head -1) Started!"
|
echolog "shunt:$($(first_type "naive") --version 2>&1 | head -1) Started!"
|
||||||
redir_udp=0
|
redir_udp=0
|
||||||
;;
|
;;
|
||||||
@@ -587,7 +534,7 @@ start_shunt() {
|
@@ -589,7 +536,7 @@ start_shunt() {
|
||||||
gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port
|
gen_config_file $SHUNT_SERVER $type 3 $tmp_shunt_port $tmp_port
|
||||||
fi
|
fi
|
||||||
ln_start_bin $(first_type hysteria) hysteria client --config $shunt_config_file
|
ln_start_bin $(first_type hysteria) hysteria client --config $shunt_config_file
|
||||||
@ -599,7 +599,7 @@ index 13266dc..88f26b2 100755
|
|||||||
echolog "shunt:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2: " $2}') Started!"
|
echolog "shunt:$($(first_type hysteria) version | grep Version | awk '{print "Hysteria2: " $2}') Started!"
|
||||||
;;
|
;;
|
||||||
tuic)
|
tuic)
|
||||||
@@ -599,7 +546,7 @@ start_shunt() {
|
@@ -601,7 +548,7 @@ start_shunt() {
|
||||||
[ -n "$tmp_local_port" ] && tmp_port=$tmp_local_port || tmp_port=$tmp_shunt_local_port
|
[ -n "$tmp_local_port" ] && tmp_port=$tmp_local_port || tmp_port=$tmp_shunt_local_port
|
||||||
gen_config_file $SHUNT_SERVER $type 3 $tmp_port # make a tuic socks :304
|
gen_config_file $SHUNT_SERVER $type 3 $tmp_port # make a tuic socks :304
|
||||||
ln_start_bin $(first_type tuic-client) tuic-client --config $shunt_dns_config_file
|
ln_start_bin $(first_type tuic-client) tuic-client --config $shunt_dns_config_file
|
||||||
@ -608,7 +608,7 @@ index 13266dc..88f26b2 100755
|
|||||||
echolog "Netflix Separated Shunt Server:tuic-client $($(first_type tuic-client) --version) Started!"
|
echolog "Netflix Separated Shunt Server:tuic-client $($(first_type tuic-client) --version) Started!"
|
||||||
# FIXME: ipt2socks cannot handle udp reply from tuic
|
# FIXME: ipt2socks cannot handle udp reply from tuic
|
||||||
#redir_udp=0
|
#redir_udp=0
|
||||||
@@ -609,7 +556,7 @@ start_shunt() {
|
@@ -611,7 +558,7 @@ start_shunt() {
|
||||||
gen_config_file $SHUNT_SERVER $type 3 "10${tmp_shunt_port}" $tmp_port chain/$tmp_shunt_port #make a redir:303 and a socks:304
|
gen_config_file $SHUNT_SERVER $type 3 "10${tmp_shunt_port}" $tmp_port chain/$tmp_shunt_port #make a redir:303 and a socks:304
|
||||||
#echo "debug \$tmp_port=$tmp_port, \$tmp_shunt_port=${tmp_shunt_port}, \$tmp_shunt_local_port=$tmp_shunt_local_port"
|
#echo "debug \$tmp_port=$tmp_port, \$tmp_shunt_port=${tmp_shunt_port}, \$tmp_shunt_local_port=$tmp_shunt_local_port"
|
||||||
ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_config_file
|
ln_start_bin $(first_type shadow-tls) shadow-tls config --config $chain_config_file
|
||||||
@ -617,7 +617,7 @@ index 13266dc..88f26b2 100755
|
|||||||
local chain_type=$(uci_get_by_name $SHUNT_SERVER chain_type)
|
local chain_type=$(uci_get_by_name $SHUNT_SERVER chain_type)
|
||||||
case ${chain_type} in
|
case ${chain_type} in
|
||||||
vmess)
|
vmess)
|
||||||
@@ -635,7 +582,7 @@ start_shunt() {
|
@@ -637,7 +584,7 @@ start_shunt() {
|
||||||
# local tmp_port=$tmp_shunt_local_port
|
# local tmp_port=$tmp_shunt_local_port
|
||||||
# ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_port shunt-dns-ssr-plus
|
# ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_port shunt-dns-ssr-plus
|
||||||
# fi
|
# fi
|
||||||
@ -626,7 +626,7 @@ index 13266dc..88f26b2 100755
|
|||||||
# echolog "shunt:$type REDIRECT/TPROXY Started!"
|
# echolog "shunt:$type REDIRECT/TPROXY Started!"
|
||||||
# ;;
|
# ;;
|
||||||
*)
|
*)
|
||||||
@@ -647,7 +594,7 @@ start_shunt() {
|
@@ -649,7 +596,7 @@ start_shunt() {
|
||||||
local tmp_port=$tmp_shunt_local_port
|
local tmp_port=$tmp_shunt_local_port
|
||||||
ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_port shunt-dns-ssr-plus
|
ln_start_bin $(first_type microsocks) microsocks -i 127.0.0.1 -p $tmp_port shunt-dns-ssr-plus
|
||||||
fi
|
fi
|
||||||
@ -635,7 +635,7 @@ index 13266dc..88f26b2 100755
|
|||||||
echolog "shunt:$type REDIRECT/TPROXY Started!"
|
echolog "shunt:$type REDIRECT/TPROXY Started!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@@ -946,11 +893,6 @@ start_server() {
|
@@ -948,11 +895,6 @@ start_server() {
|
||||||
server_service() {
|
server_service() {
|
||||||
[ "$(uci_get_by_name $1 enable 0)" == "0" ] && return 1
|
[ "$(uci_get_by_name $1 enable 0)" == "0" ] && return 1
|
||||||
let server_count=server_count+1
|
let server_count=server_count+1
|
||||||
@ -647,7 +647,7 @@ index 13266dc..88f26b2 100755
|
|||||||
local type=$(uci_get_by_name $1 type)
|
local type=$(uci_get_by_name $1 type)
|
||||||
case "$type" in
|
case "$type" in
|
||||||
ss | ssr)
|
ss | ssr)
|
||||||
@@ -964,32 +906,23 @@ start_server() {
|
@@ -966,32 +908,23 @@ start_server() {
|
||||||
echolog "Server:Socks5 Server$server_count Started!"
|
echolog "Server:Socks5 Server$server_count Started!"
|
||||||
;;
|
;;
|
||||||
esac
|
esac
|
||||||
@ -692,7 +692,7 @@ index 13266dc..88f26b2 100755
|
|||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -1122,12 +1055,6 @@ stop() {
|
@@ -1124,12 +1057,6 @@ stop() {
|
||||||
unlock
|
unlock
|
||||||
set_lock
|
set_lock
|
||||||
/usr/bin/ssr-rules -f
|
/usr/bin/ssr-rules -f
|
||||||
@ -705,7 +705,7 @@ index 13266dc..88f26b2 100755
|
|||||||
if [ -z "$switch_server" ]; then
|
if [ -z "$switch_server" ]; then
|
||||||
$PS -w | grep -v "grep" | grep ssr-switch | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
|
$PS -w | grep -v "grep" | grep ssr-switch | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 &
|
||||||
rm -f /var/lock/ssr-switch.lock
|
rm -f /var/lock/ssr-switch.lock
|
||||||
@@ -1138,7 +1065,7 @@ stop() {
|
@@ -1140,7 +1067,7 @@ stop() {
|
||||||
( \
|
( \
|
||||||
# Graceful kill first, so programs have the chance to stop its subprocesses
|
# Graceful kill first, so programs have the chance to stop its subprocesses
|
||||||
$PS -w | grep -v "grep" | grep "$TMP_PATH" | awk '{print $1}' | xargs kill >/dev/null 2>&1 ; \
|
$PS -w | grep -v "grep" | grep "$TMP_PATH" | awk '{print $1}' | xargs kill >/dev/null 2>&1 ; \
|
||||||
@ -714,7 +714,7 @@ index 13266dc..88f26b2 100755
|
|||||||
# Force kill hanged programs
|
# Force kill hanged programs
|
||||||
$PS -w | grep -v "grep" | grep "$TMP_PATH" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 ; \
|
$PS -w | grep -v "grep" | grep "$TMP_PATH" | awk '{print $1}' | xargs kill -9 >/dev/null 2>&1 ; \
|
||||||
)
|
)
|
||||||
@@ -1156,6 +1083,9 @@ stop() {
|
@@ -1158,6 +1085,9 @@ stop() {
|
||||||
rm -rf $DNSMASQ_CONF_DIR/dnsmasq-ssrplus.conf $TMP_DNSMASQ_PATH $TMP_PATH/*-ssr-*.json $TMP_PATH/ssr-server*.json
|
rm -rf $DNSMASQ_CONF_DIR/dnsmasq-ssrplus.conf $TMP_DNSMASQ_PATH $TMP_PATH/*-ssr-*.json $TMP_PATH/ssr-server*.json
|
||||||
/etc/init.d/dnsmasq restart >/dev/null 2>&1
|
/etc/init.d/dnsmasq restart >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
|
Loading…
Reference in New Issue
Block a user