2
0
Эх сурвалжийг харах

Fix openwrt-master cannot start

Mattraks 5 жил өмнө
parent
commit
749b44eee2

+ 3 - 3
luci-app-ssr-plus/luasrc/controller/shadowsocksr.lua

@@ -47,10 +47,10 @@ function act_ping()
 	socket:setopt("socket", "sndtimeo", 3)
 	socket:setopt("socket", "sndtimeo", 3)
 	e.socket = socket:connect(domain, port)
 	e.socket = socket:connect(domain, port)
 	socket:close()
 	socket:close()
-	e.ping = luci.sys.exec("ping -c 1 -W 1 %q 2>&1 | grep -o 'time=[0-9]*.[0-9]' | awk -F '=' '{print$2}'" % domain)
-	if (e.ping == "") then
+-- 	e.ping = luci.sys.exec("ping -c 1 -W 1 %q 2>&1 | grep -o 'time=[0-9]*.[0-9]' | awk -F '=' '{print$2}'" % domain)
+-- 	if (e.ping == "") then
 		e.ping = luci.sys.exec(string.format("echo -n $(tcping -q -c 1 -i 1 -t 2 -p %s %s 2>&1 | grep -o 'time=[0-9]*' | awk -F '=' '{print $2}') 2>/dev/null",port, domain))
 		e.ping = luci.sys.exec(string.format("echo -n $(tcping -q -c 1 -i 1 -t 2 -p %s %s 2>&1 | grep -o 'time=[0-9]*' | awk -F '=' '{print $2}') 2>/dev/null",port, domain))
-	end
+-- 	end
 	if (iret == 0) then
 	if (iret == 0) then
 		luci.sys.call(" ipset del ss_spec_wan_ac " .. domain)
 		luci.sys.call(" ipset del ss_spec_wan_ac " .. domain)
 	end
 	end

+ 29 - 51
luci-app-ssr-plus/root/etc/init.d/shadowsocksr

@@ -11,7 +11,6 @@
 START=95
 START=95
 STOP=15
 STOP=15
 SERVICE_DAEMONIZE=1
 SERVICE_DAEMONIZE=1
-EXTRA_COMMANDS=rules
 MAXFD=32768
 MAXFD=32768
 NAME=shadowsocksr
 NAME=shadowsocksr
 LOCK_FILE=/var/lock/${NAME}.lock
 LOCK_FILE=/var/lock/${NAME}.lock
@@ -59,14 +58,10 @@ uci_get_by_cfgid() {
 
 
 get_host_ip() {
 get_host_ip() {
 	local host=$1
 	local host=$1
-	local isip=""
-	local ip=$host
-	isip=$(echo $host | grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}")
-	if [ -z "$isip" ]; then
-		if [ "$host" != "${host#*:[0-9a-fA-F]}" ]; then
-			ip=$host
-		else
-			local ip=$(resolveip -4 -t 3 $host | awk 'NR==1{print}')
+	local ip=$1
+	if [ -z "$(echo $1 | grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}")" ]; then
+		if [ "$1" == "${1#*:[0-9a-fA-F]}" ]; then
+			ip=$(resolveip -4 -t 3 $1 | awk 'NR==1{print}')
 			[ -z "$ip" ] && ip=$(wget -q -O- http://119.29.29.29/d?dn=$1 | awk -F ';' '{print $1}')
 			[ -z "$ip" ] && ip=$(wget -q -O- http://119.29.29.29/d?dn=$1 | awk -F ';' '{print $1}')
 		fi
 		fi
 	fi
 	fi
@@ -134,9 +129,8 @@ gen_config_file() {
 	else
 	else
 		uci_set_by_name $1 ip $hostip
 		uci_set_by_name $1 ip $hostip
 	fi
 	fi
-	[ "$2" == "0" -a "$kcp_flag" == "1" ] && hostip="127.0.0.1"
 	case "$2" in
 	case "$2" in
-	0) config_file=$CONFIG_FILE ;;
+	0) config_file=$CONFIG_FILE && [ "$kcp_flag" == "1" ] && hostip="127.0.0.1" ;;
 	1) config_file=$CONFIG_UDP_FILE ;;
 	1) config_file=$CONFIG_UDP_FILE ;;
 	2) config_file=$CONFIG_NETFLIX_FILE ;;
 	2) config_file=$CONFIG_NETFLIX_FILE ;;
 	*) config_file=$CONFIG_SOCK5_FILE ;;
 	*) config_file=$CONFIG_SOCK5_FILE ;;
@@ -266,9 +260,6 @@ start_dns() {
 	start_pdnsd() {
 	start_pdnsd() {
 		local usr_dns="$1"
 		local usr_dns="$1"
 		local usr_port="$2"
 		local usr_port="$2"
-		[ -z "$usr_dns" ] && usr_dns="8.8.8.8"
-		[ -z "$usr_port" ] && usr_port="53"
-		[ -d /var/etc ] || mkdir -p /var/etc
 		if [ ! -f "/var/pdnsd/pdnsd.cache" ]; then
 		if [ ! -f "/var/pdnsd/pdnsd.cache" ]; then
 			mkdir -p /var/pdnsd
 			mkdir -p /var/pdnsd
 			touch /var/pdnsd/pdnsd.cache
 			touch /var/pdnsd/pdnsd.cache
@@ -585,7 +576,6 @@ start_server() {
 		iptables -t filter -A SSR-SERVER-RULE -p udp --dport $(uci_get_by_name $1 server_port) -j ACCEPT
 		iptables -t filter -A SSR-SERVER-RULE -p udp --dport $(uci_get_by_name $1 server_port) -j ACCEPT
 		return 0
 		return 0
 	}
 	}
-	mkdir -p /var/run /var/etc
 	config_load $NAME
 	config_load $NAME
 	config_foreach server_service server_config
 	config_foreach server_service server_config
 	gen_serv_include
 	gen_serv_include
@@ -631,6 +621,24 @@ check_server() {
 }
 }
 
 
 start_rules() {
 start_rules() {
+	if [ -z "$switch_server" ]; then
+		GLOBAL_SERVER=$(uci_get_by_type global global_server nil)
+	else
+		GLOBAL_SERVER=$switch_server
+		switch_enable=1
+	fi
+	if [ "$GLOBAL_SERVER" == "nil" ]; then
+		return 1
+	fi
+	NETFLIX_SERVER=$(uci_get_by_type global netflix_server nil)
+	if [ "$NETFLIX_SERVER" == "same" ]; then
+		NETFLIX_SERVER=$GLOBAL_SERVER
+	fi
+	run_mode=$(uci_get_by_type global run_mode)
+	UDP_RELAY_SERVER=$(uci_get_by_type global udp_relay_server)
+	if [ "$UDP_RELAY_SERVER" == "same" ] ; then
+		UDP_RELAY_SERVER=$GLOBAL_SERVER
+	fi
 	local server=$(get_host_ip $(uci_get_by_name $GLOBAL_SERVER server))
 	local server=$(get_host_ip $(uci_get_by_name $GLOBAL_SERVER server))
 	if [ "$server" == "ERROR" ]; then
 	if [ "$server" == "ERROR" ]; then
 		server=$(uci_get_by_name $GLOBAL_SERVER ip)
 		server=$(uci_get_by_name $GLOBAL_SERVER ip)
@@ -711,52 +719,21 @@ start_rules() {
 	return $?
 	return $?
 }
 }
 
 
-rules() {
-	if [ "$GLOBAL_SERVER" == "nil" ]; then
-		return 1
-	fi
-	mkdir -p /var/run /var/etc
-	run_mode=$(uci_get_by_type global run_mode)
-	UDP_RELAY_SERVER=$(uci_get_by_type global udp_relay_server)
-	[ "$UDP_RELAY_SERVER" == "same" ] && UDP_RELAY_SERVER=$GLOBAL_SERVER
-	if start_rules; then
-		return 0
-	else
-		return 1
-	fi
-}
-
 start() {
 start() {
 	[ -f "$LOCK_FILE" ] && exit 2
 	[ -f "$LOCK_FILE" ] && exit 2
 	touch "$LOCK_FILE"
 	touch "$LOCK_FILE"
-	echo "-----------start-----------" >>/tmp/ssrplus.log
-	if [ -z "$switch_server" ]; then
-		GLOBAL_SERVER=$(uci_get_by_type global global_server nil)
-	else
-		GLOBAL_SERVER=$switch_server
-		switch_enable=1
-	fi
-	NETFLIX_SERVER=$(uci_get_by_type global netflix_server nil)
-	if [ "$NETFLIX_SERVER" == "same" ]; then
-		NETFLIX_SERVER=$GLOBAL_SERVER
-	fi
-	mkdir -p /tmp/dnsmasq.d /tmp/dnsmasq.ssr
+	echo "----------start------------" >>/tmp/ssrplus.log
+	mkdir -p /tmp/dnsmasq.d /tmp/dnsmasq.ssr /var/run /var/etc
 	cat <<-EOF >/tmp/dnsmasq.d/dnsmasq-ssr.conf
 	cat <<-EOF >/tmp/dnsmasq.d/dnsmasq-ssr.conf
 		conf-dir=/tmp/dnsmasq.ssr
 		conf-dir=/tmp/dnsmasq.ssr
 	EOF
 	EOF
-	if rules; then
+	if start_rules; then
 		if start_redir_tcp; then
 		if start_redir_tcp; then
 			start_redir_udp
 			start_redir_udp
 			start_shunt
 			start_shunt
 			start_switch
 			start_switch
 			start_dns
 			start_dns
 			add_cron
 			add_cron
-			if [ "$run_mode" == "oversea" ]; then
-				cp -rf /etc/ssr/oversea_list.conf /tmp/dnsmasq.ssr/
-			else
-				cp -rf /etc/ssr/gfw_list.conf /tmp/dnsmasq.ssr/
-				cp -rf /etc/ssr/gfw_base.conf /tmp/dnsmasq.ssr/
-			fi
 			/usr/share/shadowsocksr/gfw2ipset.sh $switch_server
 			/usr/share/shadowsocksr/gfw2ipset.sh $switch_server
 		else
 		else
 			/usr/bin/ssr-rules -f
 			/usr/bin/ssr-rules -f
@@ -778,13 +755,14 @@ start() {
 	start_monitor
 	start_monitor
 	check_server
 	check_server
 	clean_log
 	clean_log
-	echo "------------end------------" >>/tmp/ssrplus.log
+	echo "-----------end------------" >>/tmp/ssrplus.log
 	rm -f $LOCK_FILE
 	rm -f $LOCK_FILE
 }
 }
 
 
 boot() {
 boot() {
+	echo "$(date "+%Y-%m-%d %H:%M:%S") boot!" >/tmp/ssrplus.log
 	ulimit -n 65535
 	ulimit -n 65535
-	(/usr/share/shadowsocksr/chinaipset.sh && sleep 3 && start >/dev/null 2>&1) &
+	start
 }
 }
 
 
 stop() {
 stop() {

+ 11 - 30
luci-app-ssr-plus/root/usr/bin/ssr-switch

@@ -35,23 +35,6 @@ uci_get_by_type() {
 DEFAULT_SERVER=$(uci_get_by_type global global_server)
 DEFAULT_SERVER=$(uci_get_by_type global global_server)
 CURRENT_SERVER=$DEFAULT_SERVER
 CURRENT_SERVER=$DEFAULT_SERVER
 
 
-#解析ip
-get_host_ip() {
-	local host=$1
-	local isip=""
-	local ip=$host
-	isip=$(echo $host | grep -E "([0-9]{1,3}[\.]){3}[0-9]{1,3}")
-	if [ -z "$isip" ]; then
-		if [ "$host" != "${host#*:[0-9a-fA-F]}" ]; then
-			ip=$host
-		else
-			local ip=$(resolveip -4 -t 3 $host | awk 'NR==1{print}')
-			[ -z "$ip" ] && ip=$(wget -q -O- http://119.29.29.29/d?dn=$1 | awk -F ';' '{print $1}')
-		fi
-	fi
-	echo ${ip:="ERROR"}
-}
-
 #判断代理是否正常
 #判断代理是否正常
 check_proxy() {
 check_proxy() {
 	local result=0
 	local result=0
@@ -77,19 +60,18 @@ check_proxy() {
 }
 }
 
 
 test_proxy() {
 test_proxy() {
-	local servername=$(get_host_ip $(uci_get_by_name $1 server))
+	local servername=$(uci_get_by_name $1 server)
 	local serverport=$(uci_get_by_name $1 server_port)
 	local serverport=$(uci_get_by_name $1 server_port)
-	ipset add ss_spec_wan_ac $servername 2>/dev/null
-	ret1=$?
+	ipset add whitelist $servername 2>/dev/null
 	tcping -q -c 3 -i 1 -t 2 -p $serverport $servername
 	tcping -q -c 3 -i 1 -t 2 -p $serverport $servername
 	if [ "$?" -gt "0" ]; then
 	if [ "$?" -gt "0" ]; then
-		[ "$ret1" == "0" ] && ipset del ss_spec_wan_ac $servername 2>/dev/null
+		ipset del whitelist $servername 2>/dev/null
 		return 1
 		return 1
 	fi
 	fi
 	/usr/bin/ssr-check $servername $serverport $switch_time
 	/usr/bin/ssr-check $servername $serverport $switch_time
-	local ret2=$?
-	[ "$ret1" == "0" ] && ipset del ss_spec_wan_ac $servername 2>/dev/null
-	if [ "$ret2" == "0" ]; then
+	local ret=$?
+	ipset del whitelist $servername 2>/dev/null
+	if [ "$ret" == "0" ]; then
 		return 0
 		return 0
 	else
 	else
 		return 1
 		return 1
@@ -102,14 +84,13 @@ search_proxy() {
 	[ "$(uci_get_by_name $1 switch_enable 0)" != "1" ] && return 1
 	[ "$(uci_get_by_name $1 switch_enable 0)" != "1" ] && return 1
 	[ $ENABLE_SERVER != nil ] && return 0
 	[ $ENABLE_SERVER != nil ] && return 0
 	[ "$1" == "$CURRENT_SERVER" ] && return 0
 	[ "$1" == "$CURRENT_SERVER" ] && return 0
-	local servername=$(get_host_ip $(uci_get_by_name $1 server))
+	local servername=$(uci_get_by_name $1 server)
 	local serverport=$(uci_get_by_name $1 server_port)
 	local serverport=$(uci_get_by_name $1 server_port)
-	ipset add ss_spec_wan_ac $servername 2>/dev/null
-	ret=$?
+	ipset add whitelist $servername 2>/dev/null
 	/usr/bin/ssr-check $servername $serverport $switch_time
 	/usr/bin/ssr-check $servername $serverport $switch_time
-	local ret2=$?
-	[ "$ret" == "0" ] && ipset del ss_spec_wan_ac $servername 2>/dev/null
-	if [ "$ret2" == "0" ]; then
+	local ret=$?
+	ipset del whitelist $servername 2>/dev/null
+	if [ "$ret" == "0" ]; then
 		server_locate=$server_count
 		server_locate=$server_count
 		ENABLE_SERVER=$1
 		ENABLE_SERVER=$1
 		return 0
 		return 0

+ 2 - 2
luci-app-ssr-plus/root/usr/share/shadowsocksr/subscribe.lua

@@ -287,7 +287,7 @@ local function check_filer(result)
 		local filter_word = split(filter_words, "/")
 		local filter_word = split(filter_words, "/")
 		for i, v in pairs(filter_word) do
 		for i, v in pairs(filter_word) do
 			if result.alias:find(v) then
 			if result.alias:find(v) then
-				log('订阅节点关键字过滤:“' .. v ..'” ,该节点被丢弃')
+				-- log('订阅节点关键字过滤:“' .. v ..'” ,该节点被丢弃')
 				return true
 				return true
 			end
 			end
 		end
 		end
@@ -364,7 +364,7 @@ local execute = function()
 								then
 								then
 								log('丢弃无效节点: ' .. result.type ..' 节点, ' .. result.alias)
 								log('丢弃无效节点: ' .. result.type ..' 节点, ' .. result.alias)
 							else
 							else
-								log('成功解析: ' .. result.type ..' 节点, ' .. result.alias)
+								-- log('成功解析: ' .. result.type ..' 节点, ' .. result.alias)
 								result.grouphashkey = groupHash
 								result.grouphashkey = groupHash
 								tinsert(nodeResult[index], result)
 								tinsert(nodeResult[index], result)
 								cache[groupHash][result.hashkey] = nodeResult[index][#nodeResult[index]]
 								cache[groupHash][result.hashkey] = nodeResult[index][#nodeResult[index]]