mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Fix tracking if multiples ip rules
This commit is contained in:
parent
38176e6d58
commit
d1d69d8043
1 changed files with 28 additions and 5 deletions
|
@ -138,7 +138,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ]; then
|
||||||
fi
|
fi
|
||||||
config_load shadowsocks-libev
|
config_load shadowsocks-libev
|
||||||
if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
||||||
local metric=$(ip rule show | grep "$OMR_TRACKER_DEVICE_IP" | awk '{print $5}')
|
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
|
ip route del default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric
|
||||||
config_foreach del_ss_route server $metric
|
config_foreach del_ss_route server $metric
|
||||||
else
|
else
|
||||||
|
@ -228,7 +228,7 @@ if [ "$multipath_config" = "master" ]; then
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
||||||
local metric=$(ip rule show | grep "$OMR_TRACKER_DEVICE_IP" | awk '{print $5}')
|
local metric=$(ip rule show | grep -m 1 "$OMR_TRACKER_DEVICE_IP" | awk '{print $5}')
|
||||||
[ -n "$metric" ] && {
|
[ -n "$metric" ] && {
|
||||||
ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric
|
ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric
|
||||||
}
|
}
|
||||||
|
@ -236,7 +236,7 @@ if [ "$multipath_config" = "master" ]; then
|
||||||
multipath_config="on"
|
multipath_config="on"
|
||||||
else
|
else
|
||||||
if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then
|
||||||
local metric=$(ip rule show | grep "$OMR_TRACKER_DEVICE_IP" | awk '{print $5}')
|
local metric=$(ip rule show | grep -m 1 "$OMR_TRACKER_DEVICE_IP" | awk '{print $5}')
|
||||||
[ -n "$metric" ] && {
|
[ -n "$metric" ] && {
|
||||||
ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric
|
ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric
|
||||||
config_load shadowsocks-libev
|
config_load shadowsocks-libev
|
||||||
|
@ -262,9 +262,30 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(
|
||||||
_log "Get status and settings for $OMR_TRACKER_INTERFACE..."
|
_log "Get status and settings for $OMR_TRACKER_INTERFACE..."
|
||||||
local ipaddr="$(omr-ip-intf $OMR_TRACKER_DEVICE)"
|
local ipaddr="$(omr-ip-intf $OMR_TRACKER_DEVICE)"
|
||||||
[ -n "$ipaddr" ] && {
|
[ -n "$ipaddr" ] && {
|
||||||
|
# Check if we can get a IPv6 address, if yes enable RA else disable
|
||||||
|
local ip6addr="$(curl -s -6 -m 3 http://ipv6.openmptcprouter.com/)"
|
||||||
|
[ -z "$ip6addr" ] && {
|
||||||
|
local ip6addr="$(curl -s -6 -m 3 http://ifconfig.co/)"
|
||||||
|
}
|
||||||
|
if [ "$(uci -q get openmptcprouter.settings.ipv6_disable)" = "0" ]; then
|
||||||
|
if [ -n "$ip6addr" ] && [ "$(uci -q set dhcp.lan.ra_default)" != 1 ]; then
|
||||||
|
_log "Enable IPv6 RA"
|
||||||
|
uci -q set dhcp.lan.ra=server
|
||||||
|
uci -q set dhcp.lan.ra_default=1
|
||||||
|
uci -q set dhcp.lan.dhcpv6=server
|
||||||
|
/etc/init.d/odhcpd start > /dev/null 2>&1
|
||||||
|
/etc/init.d/odhcpd enable > /dev/null 2>&1
|
||||||
|
elif [ -z "$ip6addr" ] && [ "$(uci -q set dhcp.lan.ra_default)" = 1 ]; then
|
||||||
|
_log "Disable IPv6 RA"
|
||||||
|
uci -q del dhcp.lan.ra
|
||||||
|
uci -q del dhcp.lan.dhcpv6
|
||||||
|
/etc/init.d/odhcpd start > /dev/null 2>&1
|
||||||
|
/etc/init.d/odhcpd enable > /dev/null 2>&1
|
||||||
|
fi
|
||||||
|
fi
|
||||||
local asn="$(wget -4 -qO- -T 5 http://api.iptoasn.com/v1/as/ip/$ipaddr | jsonfilter -q -e '@.as_description')"
|
local asn="$(wget -4 -qO- -T 5 http://api.iptoasn.com/v1/as/ip/$ipaddr | jsonfilter -q -e '@.as_description')"
|
||||||
[ -z "$asn" ] && {
|
[ -z "$asn" ] && {
|
||||||
asn="$(whois $ipaddr 2>/dev/null | grep -i 'netname' | awk '{print $2}')"
|
asn="$(whois $ipaddr 2>/dev/null | grep -m 1 -i 'netname' | awk '{print $2}')"
|
||||||
}
|
}
|
||||||
local serverip=$(uci -q get shadowsocks-libev.sss0.server)
|
local serverip=$(uci -q get shadowsocks-libev.sss0.server)
|
||||||
[ -n "$serverip" ] && {
|
[ -n "$serverip" ] && {
|
||||||
|
@ -296,8 +317,10 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(
|
||||||
fi
|
fi
|
||||||
if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ]; then
|
if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ]; then
|
||||||
uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.lc=$(( $(date +"%s") - 3500 ))
|
uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.lc=$(( $(date +"%s") - 3500 ))
|
||||||
|
_log "Get status and settings for $OMR_TRACKER_INTERFACE... Failed"
|
||||||
|
else
|
||||||
|
_log "Get status and settings for $OMR_TRACKER_INTERFACE... Done"
|
||||||
fi
|
fi
|
||||||
uci -q commit openmptcprouter
|
uci -q commit openmptcprouter
|
||||||
}
|
}
|
||||||
_log "Get status and settings for $OMR_TRACKER_INTERFACE... Done"
|
|
||||||
fi
|
fi
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue