mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Add server route for all wans
This commit is contained in:
parent
955b027cb4
commit
b482cd1dbd
1 changed files with 13 additions and 11 deletions
|
@ -35,22 +35,22 @@ set_route() {
|
|||
|
||||
set_ss_route() {
|
||||
local server_ip upstreams nginxip
|
||||
local metric $2
|
||||
local metric=$2
|
||||
[ -z "$metric" ] && metric=1
|
||||
config_get server_ip $1 server
|
||||
if [ "$server_ip" = "127.0.0.1" ]; then
|
||||
upstreams=$(uci -q get nginx-ha.ShadowSocks.upstreams | sed -e "s/' '/%/" -e 's/ /_/g' -e "s/'//g" -e 's/%/ /')
|
||||
for up in $upstreams; do
|
||||
_log "up : $up"
|
||||
_log "up: $up - metric: $metric"
|
||||
nginxip=$(echo $up | cut -d: -f1)
|
||||
if [ "$nginxip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | grep $nginxip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ]; then
|
||||
if [ "$nginxip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep $nginxip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ]; then
|
||||
_log "Set server $nginxip route via $OMR_TRACKER_DEVICE"
|
||||
ip route replace $nginxip via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric
|
||||
fi
|
||||
done
|
||||
else
|
||||
if [ "$server_ip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | grep $server_ip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ]; then
|
||||
_log "Set server $server_ip route via $OMR_TRACKER_DEVICE"
|
||||
if [ "$server_ip" != "" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep $server_ip | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ]; then
|
||||
_log "Set server $server_ip route via $OMR_TRACKER_DEVICE metric $metric"
|
||||
ip route replace $server_ip via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric
|
||||
fi
|
||||
fi
|
||||
|
@ -58,7 +58,7 @@ set_ss_route() {
|
|||
|
||||
del_ss_route() {
|
||||
local server_ip upstreams nginxip
|
||||
local metric $2
|
||||
local metric=$2
|
||||
[ -z "$metric" ] && metric=1
|
||||
config_get server_ip $1 server
|
||||
if [ "$server_ip" = "127.0.0.1" ]; then
|
||||
|
@ -66,13 +66,13 @@ del_ss_route() {
|
|||
for up in $upstreams; do
|
||||
_log "down : $up"
|
||||
nginxip=$(echo $up | cut -d: -f1)
|
||||
if [ "$nginxip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | 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"
|
||||
ip route delete $nginxip dev $OMR_TRACKER_DEVICE metric $metric
|
||||
fi
|
||||
done
|
||||
else
|
||||
if [ "$server_ip" != "" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE | 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"
|
||||
ip route delete $server_ip dev $OMR_TRACKER_DEVICE metric $metric
|
||||
fi
|
||||
|
@ -151,9 +151,11 @@ if [ "$multipath_config" = "master" ]; then
|
|||
fi
|
||||
multipath_config="on"
|
||||
else
|
||||
local metric=$(ip rule show | grep $OMR_TRACKER_DEVICE_GATEWAY | awk '{print $5}')
|
||||
config_load shadowsocks-libev
|
||||
config_foreach set_ss_route server $metric
|
||||
local metric=$(ip rule show | grep "$OMR_TRACKER_DEVICE_IP" | awk '{print $5}')
|
||||
[ -n "$metric" ] && {
|
||||
config_load shadowsocks-libev
|
||||
config_foreach set_ss_route server $metric
|
||||
}
|
||||
fi
|
||||
if [ "$(uci -q get omr-bypass.defaults.ifname)" = "$OMR_TRACKER_DEVICE" ] && [ "$(ip route show table 991337 | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ]; then
|
||||
ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE table 991337
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue