From 57fff1658e2b6a2179b4a5ea7baa242482b950d3 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 9 Feb 2021 14:35:48 +0100 Subject: [PATCH] Track both server IP --- omr-tracker/files/bin/omr-tracker-server | 159 ++++++++++++++--------- 1 file changed, 97 insertions(+), 62 deletions(-) diff --git a/omr-tracker/files/bin/omr-tracker-server b/omr-tracker/files/bin/omr-tracker-server index 5bd212fdb..8c0e7c577 100755 --- a/omr-tracker/files/bin/omr-tracker-server +++ b/omr-tracker/files/bin/omr-tracker-server @@ -37,9 +37,26 @@ _check_server() { done } +_disable_redir() { + local redir=$1 + config_get server $redir server + if [ "$server" = "sss${count}" ]; then + config_set $redir disabled "1" + fi +} + +_enable_redir() { + local redir=$1 + config_get server $redir server + if [ "$server" = "sss${count}" ]; then + config_set $redir disabled "0" + fi +} + _check_master() { local name=$1 local count=0 + local countips=0 config_get master $1 master config_get ip $1 ip config_get port $1 port "65500" @@ -49,39 +66,47 @@ _check_master() { local ip=$1 #_ping_server $ip _check_server $ip $port - [ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss${count}.server | tr -d '\n')" != "$ip" ] && { - logger -t "OMR-Tracker-Server" "Master server up, set it back" - logger -t "OMR-Tracker-Server" "$(uci -q get shadowsocks-libev.sss${count}.server | tr -d '\n') - $ip" - uci -q batch <<-EOF >/dev/null - set shadowsocks-libev.sss${count}.server=$ip - commit shadowsocks-libev - EOF - if [ "$count" -eq "0" ]; then + if [ "$server_ping" = true ]; then + if [ "$(uci -q get shadowsocks-libev.sss${count}.server | tr -d '\n')" != "$ip" ]; then + logger -t "OMR-Tracker-Server" "Master server ${name} up ($ip), set it back" + #logger -t "OMR-Tracker-Server" "$(uci -q get shadowsocks-libev.sss${count}.server | tr -d '\n') - $ip" uci -q batch <<-EOF >/dev/null - set v2ray.omrout.s_vmess_address=$ip - set v2ray.omrout.s_vless_address=$ip - commit v2ray - set glorytun.vpn.host=$ip - commit glorytun - set dsvpn.vpn.host=$ip - commit dsvpn - set mlvpn.general.host=$ip - commit mlvpn - del openvpn.omr.remote - add_list openvpn.omr.remote=$ip - commit openvpn + set shadowsocks-libev.sss${count}.server=$ip + commit shadowsocks-libev EOF - /etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null - /etc/init.d/v2ray restart >/dev/null 2>/dev/null - /etc/init.d/glorytun restart >/dev/null 2>/dev/null - /etc/init.d/glorytun-udp restart >/dev/null 2>/dev/null - /etc/init.d/mlvpn restart >/dev/null 2>/dev/null - /etc/init.d/openvpn restart >/dev/null 2>/dev/null - /etc/init.d/dsvpn restart >/dev/null 2>/dev/null + if [ "$count" -eq "0" ]; then + uci -q batch <<-EOF >/dev/null + set v2ray.omrout.s_vmess_address=$ip + set v2ray.omrout.s_vless_address=$ip + commit v2ray + set glorytun.vpn.host=$ip + commit glorytun + set dsvpn.vpn.host=$ip + commit dsvpn + set mlvpn.general.host=$ip + commit mlvpn + del openvpn.omr.remote + add_list openvpn.omr.remote=$ip + commit openvpn + EOF + /etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null + /etc/init.d/v2ray restart >/dev/null 2>/dev/null + /etc/init.d/glorytun restart >/dev/null 2>/dev/null + /etc/init.d/glorytun-udp restart >/dev/null 2>/dev/null + /etc/init.d/mlvpn restart >/dev/null 2>/dev/null + /etc/init.d/openvpn restart >/dev/null 2>/dev/null + /etc/init.d/dsvpn restart >/dev/null 2>/dev/null + fi + /etc/init.d/shadowsocks-libev restart >/dev/null 2>/dev/null fi - /etc/init.d/shadowsocks-libev restart >/dev/null 2>/dev/null - } - count=$((count+1)) + config_load shadowsocks-libev + config_foreach _enable_redir ss_redir + count=$((count+1)) + else + config_load shadowsocks-libev + config_foreach _disable_redir ss_redir + fi + countips=$((countips+1)) } config_list_foreach $1 ip set_ip break @@ -91,6 +116,7 @@ _check_master() { _check_backup() { local name=$1 local count=0 + local countips=0 config_get backup $1 backup config_get ip $1 ip config_get port $1 port @@ -99,43 +125,52 @@ _check_backup() { set_ip() { #_ping_server $ip _check_server $ip $port - [ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss${count}.server | tr -d '\n')" = "$ip" ] && break - [ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss${count}.server | tr -d '\n')" != "$ip" ] && { - logger -t "OMR-Tracker-Server" "Use backup server $1 ($ip)" - uci -q batch <<-EOF >/dev/null - set shadowsocks-libev.sss${count}.server=$ip - commit shadowsocks-libev - EOF - if [ "$count" -eq "0" ]; then + #[ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss${count}.server | tr -d '\n')" = "$ip" ] && break + if [ "$server_ping" = true ]; then + if [ "$(uci -q get shadowsocks-libev.sss${count}.server | tr -d '\n')" != "$ip" ]; then + logger -t "OMR-Tracker-Server" "Use backup server $1 ($ip)" uci -q batch <<-EOF >/dev/null - set v2ray.omrout.s_vmess_address=$ip - set v2ray.omrout.s_vless_address=$ip - commit v2ray - set glorytun.vpn.host=$ip - commit glorytun - set dsvpn.vpn.host=$ip - commit dsvpn - set mlvpn.general.host=$ip - commit mlvpn - del openvpn.omr.remote - add_list openvpn.omr.remote=$ip - commit openvpn + set shadowsocks-libev.sss${count}.server=$ip + commit shadowsocks-libev EOF - /etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null - /etc/init.d/v2ray restart >/dev/null 2>/dev/null - /etc/init.d/glorytun restart >/dev/null 2>/dev/null - /etc/init.d/glorytun-udp restart >/dev/null 2>/dev/null - /etc/init.d/mlvpn restart >/dev/null 2>/dev/null - /etc/init.d/openvpn restart >/dev/null 2>/dev/null - /etc/init.d/dsvpn restart >/dev/null 2>/dev/null + if [ "$count" -eq "0" ]; then + uci -q batch <<-EOF >/dev/null + set v2ray.omrout.s_vmess_address=$ip + set v2ray.omrout.s_vless_address=$ip + commit v2ray + set glorytun.vpn.host=$ip + commit glorytun + set dsvpn.vpn.host=$ip + commit dsvpn + set mlvpn.general.host=$ip + commit mlvpn + del openvpn.omr.remote + add_list openvpn.omr.remote=$ip + commit openvpn + EOF + /etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null + /etc/init.d/v2ray restart >/dev/null 2>/dev/null + /etc/init.d/glorytun restart >/dev/null 2>/dev/null + /etc/init.d/glorytun-udp restart >/dev/null 2>/dev/null + /etc/init.d/mlvpn restart >/dev/null 2>/dev/null + /etc/init.d/openvpn restart >/dev/null 2>/dev/null + /etc/init.d/dsvpn restart >/dev/null 2>/dev/null + fi + /etc/init.d/shadowsocks-libev restart >/dev/null 2>/dev/null + sleep $waittest fi - /etc/init.d/shadowsocks-libev restart >/dev/null 2>/dev/null - sleep $waittest - break - } - count=$((count+1)) + config_load shadowsocks-libev + config_foreach _enable_redir ss_redir + count=$((count+1)) + else + config_load shadowsocks-libev + config_foreach _disable_redir ss_redir + fi + countips=$((countips+1)) } config_list_foreach $1 ip set_ip + uci -q commit shadowsocks-libev + [ "$server_ping" = true ] && break } }