mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-02-13 02:51:50 +00:00
Fix check of ShadowSocks rules
This commit is contained in:
parent
7159fde4a9
commit
5e435e3194
3 changed files with 20 additions and 13 deletions
|
@ -163,7 +163,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ]; then
|
|||
if [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.ss_rules.redir_udp)" = "" ] && [ "$(uci -q get shadowsocks-libev.hi2.mode)" = "tcp_and_udp" ]; then
|
||||
_log "Tunnel down use ShadowSocks for UDP"
|
||||
uci -q set shadowsocks-libev.ss_rules.redir_udp='hi2'
|
||||
if /etc/init.d/shadowsocks-libev rules_status ; then
|
||||
if /etc/init.d/shadowsocks-libev rules_exist ; then
|
||||
/etc/init.d/shadowsocks-libev rules_down
|
||||
/etc/init.d/shadowsocks-libev rules_up
|
||||
/etc/init.d/omr-bypass reload >/dev/null 2>&1
|
||||
|
@ -181,7 +181,7 @@ if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "om
|
|||
if [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.ss_rules.redir_udp)" = "hi2" ]; then
|
||||
_log "Tunnel up disable use of ShadowSocks for UDP"
|
||||
uci -q delete shadowsocks-libev.ss_rules.redir_udp
|
||||
if /etc/init.d/shadowsocks-libev rules_status ; then
|
||||
if /etc/init.d/shadowsocks-libev rules_exist ; then
|
||||
/etc/init.d/shadowsocks-libev rules_down
|
||||
/etc/init.d/shadowsocks-libev rules_up
|
||||
/etc/init.d/omr-bypass reload >/dev/null 2>&1
|
||||
|
|
|
@ -37,19 +37,24 @@ while true; do
|
|||
[ "${last}" -ge "${retry}" ] && {
|
||||
log "Shadowsocks is up (can contact ${host})"
|
||||
uci -q set openmptcprouter.vps.shadowsocks="up"
|
||||
get_ip
|
||||
/etc/init.d/shadowsocks-libev rules_up 2> /dev/null
|
||||
[ "$(uci -q get openmptcprouter.vps.ipv4)" = "" ] || ([ "$(sysctl -n net.ipv6.conf.all.disable_ipv6 | tr -d '\n')" = "0" ] && [ "$(uci -q get openmptcprouter.vps.ipv6)" = "" ]) && get_ip
|
||||
/etc/init.d/omr-bypass reload 2> /dev/null
|
||||
}
|
||||
if ! /etc/init.d/shadowsocks-libev rules_exist ; then
|
||||
/etc/init.d/shadowsocks-libev rules_up 2> /dev/null
|
||||
/etc/init.d/omr-bypass reload 2> /dev/null
|
||||
get_ip
|
||||
fi
|
||||
[ "$(uci -q get openmptcprouter.vps.ipv4)" = "" ] || ([ "$(sysctl -n net.ipv6.conf.all.disable_ipv6 | tr -d '\n')" = "0" ] && [ "$(uci -q get openmptcprouter.vps.ipv6)" = "" ]) && get_ip
|
||||
last=0
|
||||
else
|
||||
last=$((last + 1 ))
|
||||
[ "${last}" -eq "${retry}" ] && {
|
||||
log "Shadowsocks is down (can't contact ${host})"
|
||||
uci -q set openmptcprouter.vps.shadowsocks="down"
|
||||
/etc/init.d/shadowsocks-libev rules_down 2> /dev/null
|
||||
/etc/init.d/omr-bypass reload 2> /dev/null
|
||||
if /etc/init.d/shadowsocks-libev rules_exist ; then
|
||||
/etc/init.d/shadowsocks-libev rules_down 2> /dev/null
|
||||
/etc/init.d/omr-bypass reload 2> /dev/null
|
||||
get_ip
|
||||
fi
|
||||
}
|
||||
fi
|
||||
sleep "${interval}"
|
||||
|
|
|
@ -326,13 +326,14 @@ reload_service() {
|
|||
start
|
||||
}
|
||||
|
||||
rules_status() {
|
||||
[ -n "$(iptables -t nat -L | grep ss_rules_forward)" ] && return 1
|
||||
return 0
|
||||
rules_exist() {
|
||||
[ -n "$(iptables -t nat -L | grep ss_rules_forward)" ] && return 0
|
||||
return 1
|
||||
}
|
||||
|
||||
rules_up() {
|
||||
rules_status || return 0
|
||||
rules_exist && return 0
|
||||
logger -t "Shadowsocks" "Rules UP"
|
||||
config_load shadowsocks-libev
|
||||
for cfgtype in ss_redir; do
|
||||
config_foreach ss_rules_restart "$cfgtype" "$cfgtype"
|
||||
|
@ -342,7 +343,8 @@ rules_up() {
|
|||
}
|
||||
|
||||
rules_down() {
|
||||
rules_status && return 0
|
||||
rules_exist || return 0
|
||||
logger -t "Shadowsocks" "Rules DOWN"
|
||||
local bin="$ss_bindir/ss-rules"
|
||||
[ -x "$bin" ] && "$bin" -f
|
||||
local bin6="$ss_bindir/ss-rules6"
|
||||
|
|
Loading…
Reference in a new issue