mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Update tracking
This commit is contained in:
parent
32cd716eb7
commit
8d414c5d8b
3 changed files with 45 additions and 40 deletions
|
@ -65,12 +65,12 @@ del_ss_route() {
|
||||||
if [ "$metric" = "all" ]; then
|
if [ "$metric" = "all" ]; then
|
||||||
if [ "$nginxip" != "" ] && [ "$(ip route show | grep $nginxip)" != "" ]; then
|
if [ "$nginxip" != "" ] && [ "$(ip route show | grep $nginxip)" != "" ]; then
|
||||||
_log "Remove all server $nginxip route"
|
_log "Remove all server $nginxip route"
|
||||||
ip route delete $nginxip
|
ip route delete $nginxip > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [ "$nginxip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep $nginxip)" != "" ]; then
|
if [ "$nginxip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep $nginxip)" != "" ]; then
|
||||||
_log "Remove server $nginxip route via $OMR_TRACKER_DEVICE"
|
_log "Remove server $nginxip route via $OMR_TRACKER_DEVICE"
|
||||||
ip route delete $nginxip dev $OMR_TRACKER_DEVICE metric $metric
|
ip route delete $nginxip dev $OMR_TRACKER_DEVICE metric $metric > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
|
@ -78,20 +78,20 @@ del_ss_route() {
|
||||||
if [ "$metric" = "all" ]; then
|
if [ "$metric" = "all" ]; then
|
||||||
if [ "$server_ip" != "" ] && [ "$(ip route show | grep $server_ip)" != "" ]; then
|
if [ "$server_ip" != "" ] && [ "$(ip route show | grep $server_ip)" != "" ]; then
|
||||||
_log "Remove all server $server_ip route"
|
_log "Remove all server $server_ip route"
|
||||||
ip route delete $server_ip
|
ip route delete $server_ip > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
elif [ "$metric" = "off" ]; then
|
elif [ "$metric" = "off" ]; then
|
||||||
if [ "$server_ip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | grep $server_ip)" != "" ]; then
|
if [ "$server_ip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | grep $server_ip)" != "" ]; then
|
||||||
_log "Remove all server $server_ip route via $OMR_TRACKER_DEVICE"
|
_log "Remove all server $server_ip route via $OMR_TRACKER_DEVICE"
|
||||||
ip route delete $server_ip dev $OMR_TRACKER_DEVICE
|
ip route delete $server_ip dev $OMR_TRACKER_DEVICE > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
else
|
else
|
||||||
if [ "$server_ip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep $server_ip)" != "" ]; then
|
if [ "$server_ip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep $server_ip)" != "" ]; then
|
||||||
_log "Remove server $server_ip route via $OMR_TRACKER_DEVICE"
|
_log "Remove server $server_ip route via $OMR_TRACKER_DEVICE"
|
||||||
ip route delete $server_ip dev $OMR_TRACKER_DEVICE metric $metric
|
ip route delete $server_ip dev $OMR_TRACKER_DEVICE metric $metric > /dev/null 2>&1
|
||||||
elif [ "$server_ip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric 1 | grep $server_ip)" != "" ]; then
|
elif [ "$server_ip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric 1 | grep $server_ip)" != "" ]; then
|
||||||
_log "Remove server $server_ip route via $OMR_TRACKER_DEVICE (master)"
|
_log "Remove server $server_ip route via $OMR_TRACKER_DEVICE (master)"
|
||||||
ip route delete $server_ip dev $OMR_TRACKER_DEVICE metric 1
|
ip route delete $server_ip dev $OMR_TRACKER_DEVICE metric 1 > /dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
|
@ -121,32 +121,31 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ]; then
|
||||||
if [ "$OMR_TRACKER_PREV_STATUS" = "$OMR_TRACKER_STATUS" ]; then
|
if [ "$OMR_TRACKER_PREV_STATUS" = "$OMR_TRACKER_STATUS" ]; then
|
||||||
exit 0
|
exit 0
|
||||||
fi
|
fi
|
||||||
if [ -d "/sys/class/net/$OMR_TRACKER_DEVICE" ]; then
|
[ "$multipath_status" = "off" ] || {
|
||||||
[ "$multipath_status" = "off" ] || {
|
if [ "$OMR_TRACKER_STATUS_MSG" = "" ]; then
|
||||||
if [ "$OMR_TRACKER_STATUS_MSG" = "" ]; then
|
_log "$OMR_TRACKER_DEVICE switched off"
|
||||||
_log "$OMR_TRACKER_DEVICE switched off"
|
else
|
||||||
else
|
_log "$OMR_TRACKER_DEVICE switched off because $OMR_TRACKER_STATUS_MSG"
|
||||||
_log "$OMR_TRACKER_DEVICE switched off because $OMR_TRACKER_STATUS_MSG"
|
fi
|
||||||
|
if [ "$(sysctl -n net.mptcp.mptcp_enabled | tr -d '\n')" = "1" ]; then
|
||||||
|
multipath "$OMR_TRACKER_DEVICE" off > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
if [ -n "$OMR_TRACKER_DEVICE_IP" ]; then
|
||||||
|
glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 down > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
config_load shadowsocks-libev
|
||||||
|
if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
||||||
|
local metric=$(ip rule show | grep -m 1 "$OMR_TRACKER_DEVICE_IP" | awk '{print $5}')
|
||||||
|
ip route del default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric >/dev/null 2>&1
|
||||||
|
config_foreach del_ss_route server $metric
|
||||||
|
else
|
||||||
|
if [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
||||||
|
ip route del default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE >/dev/null 2>&1
|
||||||
fi
|
fi
|
||||||
if [ "$(sysctl -n net.mptcp.mptcp_enabled | tr -d '\n')" = "1" ]; then
|
config_foreach del_ss_route server off
|
||||||
multipath "$OMR_TRACKER_DEVICE" off
|
fi
|
||||||
fi
|
}
|
||||||
if [ -n "$OMR_TRACKER_DEVICE_IP" ]; then
|
|
||||||
glorytun-udp path $OMR_TRACKER_DEVICE_IP dev tun0 down > /dev/null 2>&1
|
|
||||||
fi
|
|
||||||
config_load shadowsocks-libev
|
|
||||||
if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
|
||||||
local metric=$(ip rule show | grep -m 1 "$OMR_TRACKER_DEVICE_IP" | awk '{print $5}')
|
|
||||||
ip route del default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric
|
|
||||||
config_foreach del_ss_route server $metric
|
|
||||||
else
|
|
||||||
if [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
|
||||||
ip route del default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE
|
|
||||||
fi
|
|
||||||
config_foreach del_ss_route server off
|
|
||||||
fi
|
|
||||||
}
|
|
||||||
fi
|
|
||||||
if [ "$default_gw" = "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ "$default_gw" = "" ]; then
|
if [ "$default_gw" = "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ "$default_gw" = "" ]; then
|
||||||
config_load network
|
config_load network
|
||||||
config_foreach set_route interface $OMR_TRACKER_INTERFACE
|
config_foreach set_route interface $OMR_TRACKER_INTERFACE
|
||||||
|
@ -164,9 +163,11 @@ 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
|
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"
|
_log "Tunnel down use ShadowSocks for UDP"
|
||||||
uci -q set shadowsocks-libev.ss_rules.redir_udp='hi2'
|
uci -q set shadowsocks-libev.ss_rules.redir_udp='hi2'
|
||||||
/etc/init.d/shadowsocks-libev rules_down
|
if /etc/init.d/shadowsocks-libev rules_status ; then
|
||||||
/etc/init.d/shadowsocks-libev rules_up
|
/etc/init.d/shadowsocks-libev rules_down
|
||||||
/etc/init.d/omr-bypass reload >/dev/null 2>&1
|
/etc/init.d/shadowsocks-libev rules_up
|
||||||
|
/etc/init.d/omr-bypass reload >/dev/null 2>&1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
exit 0
|
exit 0
|
||||||
|
@ -180,9 +181,11 @@ 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
|
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"
|
_log "Tunnel up disable use of ShadowSocks for UDP"
|
||||||
uci -q delete shadowsocks-libev.ss_rules.redir_udp
|
uci -q delete shadowsocks-libev.ss_rules.redir_udp
|
||||||
/etc/init.d/shadowsocks-libev rules_down
|
if /etc/init.d/shadowsocks-libev rules_status ; then
|
||||||
/etc/init.d/shadowsocks-libev rules_up
|
/etc/init.d/shadowsocks-libev rules_down
|
||||||
/etc/init.d/omr-bypass reload >/dev/null 2>&1
|
/etc/init.d/shadowsocks-libev rules_up
|
||||||
|
/etc/init.d/omr-bypass reload >/dev/null 2>&1
|
||||||
|
fi
|
||||||
fi
|
fi
|
||||||
|
|
||||||
# Set VPN MTU
|
# Set VPN MTU
|
||||||
|
|
|
@ -41,6 +41,7 @@ while true; do
|
||||||
}
|
}
|
||||||
[ "$(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
|
[ "$(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/shadowsocks-libev rules_up 2> /dev/null
|
/etc/init.d/shadowsocks-libev rules_up 2> /dev/null
|
||||||
|
/etc/init.d/omr-bypass reload 2> /dev/null
|
||||||
last=0
|
last=0
|
||||||
else
|
else
|
||||||
last=$((last + 1 ))
|
last=$((last + 1 ))
|
||||||
|
@ -48,6 +49,7 @@ while true; do
|
||||||
log "Shadowsocks is down (can't contact ${host})"
|
log "Shadowsocks is down (can't contact ${host})"
|
||||||
uci -q set openmptcprouter.vps.shadowsocks="down"
|
uci -q set openmptcprouter.vps.shadowsocks="down"
|
||||||
/etc/init.d/shadowsocks-libev rules_down 2> /dev/null
|
/etc/init.d/shadowsocks-libev rules_down 2> /dev/null
|
||||||
|
/etc/init.d/omr-bypass reload 2> /dev/null
|
||||||
}
|
}
|
||||||
fi
|
fi
|
||||||
sleep "${interval}"
|
sleep "${interval}"
|
||||||
|
|
|
@ -326,13 +326,13 @@ reload_service() {
|
||||||
start
|
start
|
||||||
}
|
}
|
||||||
|
|
||||||
_rules_status() {
|
rules_status() {
|
||||||
[ -n "$(iptables -t nat -L | grep ss_rules_forward)" ] && return 1
|
[ -n "$(iptables -t nat -L | grep ss_rules_forward)" ] && return 1
|
||||||
return 0
|
return 0
|
||||||
}
|
}
|
||||||
|
|
||||||
rules_up() {
|
rules_up() {
|
||||||
_rules_status || return 0
|
rules_status || return 0
|
||||||
config_load shadowsocks-libev
|
config_load shadowsocks-libev
|
||||||
for cfgtype in ss_redir; do
|
for cfgtype in ss_redir; do
|
||||||
config_foreach ss_rules_restart "$cfgtype" "$cfgtype"
|
config_foreach ss_rules_restart "$cfgtype" "$cfgtype"
|
||||||
|
@ -342,7 +342,7 @@ rules_up() {
|
||||||
}
|
}
|
||||||
|
|
||||||
rules_down() {
|
rules_down() {
|
||||||
_rules_status && return 0
|
rules_status && return 0
|
||||||
local bin="$ss_bindir/ss-rules"
|
local bin="$ss_bindir/ss-rules"
|
||||||
[ -x "$bin" ] && "$bin" -f
|
[ -x "$bin" ] && "$bin" -f
|
||||||
local bin6="$ss_bindir/ss-rules6"
|
local bin6="$ss_bindir/ss-rules6"
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue