mirror of
https://github.com/Ysurac/openmptcprouter-feeds.git
synced 2025-03-09 15:40:03 +00:00
Add support for multiple server to openmptcprouter-vps script
This commit is contained in:
parent
9da2042b08
commit
f57e650f4f
1 changed files with 41 additions and 24 deletions
|
@ -13,15 +13,15 @@ _parse_result() {
|
||||||
|
|
||||||
_login() {
|
_login() {
|
||||||
local username password auth
|
local username password auth
|
||||||
server="$(uci -q get openmptcprouter.vps.ip)"
|
server="$(uci -q get openmptcprouter.${servername}.ip)"
|
||||||
[ -z "$server" ] && server="$(uci -q get shadowsocks-libev.sss0.server)"
|
[ -z "$server" ] && server="$(uci -q get shadowsocks-libev.sss0.server)"
|
||||||
username="$(uci -q get openmptcprouter.vps.username)"
|
username="$(uci -q get openmptcprouter.${servername}.username)"
|
||||||
password="$(uci -q get openmptcprouter.vps.password)"
|
password="$(uci -q get openmptcprouter.${servername}.password)"
|
||||||
if [ -z "$token" ]; then
|
if [ -z "$token" ]; then
|
||||||
auth=`curl --max-time 10 -s -k -H "Content-Type: application/json" -X POST -d '{"username":"'$username'","password":"'$password'"}' https://$server:65500/login`
|
auth=`curl --max-time 10 -s -k -H "Content-Type: application/json" -X POST -d '{"username":"'$username'","password":"'$password'"}' https://$server:65500/login`
|
||||||
[ -z "$auth" ] && return
|
[ -z "$auth" ] && return
|
||||||
token="$(echo "$auth" | jsonfilter -q -e '@.token')"
|
token="$(echo "$auth" | jsonfilter -q -e '@.token')"
|
||||||
uci -q set openmptcprouter.vps.token="$token"
|
uci -q set openmptcprouter.${servername}.token="$token"
|
||||||
fi
|
fi
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -94,11 +94,11 @@ _set_openvpn_vps() {
|
||||||
}
|
}
|
||||||
|
|
||||||
_set_ss_server_vps() {
|
_set_ss_server_vps() {
|
||||||
local disabled port server key method
|
local disabled port key method
|
||||||
config_get disabled $1 disabled
|
config_get disabled $1 disabled
|
||||||
[ "$disabled" = "1" ] && return
|
[ "$disabled" = "1" ] && return
|
||||||
config_get port $1 server_port
|
config_get port $1 server_port
|
||||||
config_get server $1 server
|
#config_get server $1 server
|
||||||
config_get key $1 key
|
config_get key $1 key
|
||||||
key="$(echo $key | sed 's/+/-/g; s/\//_/g;')"
|
key="$(echo $key | sed 's/+/-/g; s/\//_/g;')"
|
||||||
[ -z "$key" ] && return
|
[ -z "$key" ] && return
|
||||||
|
@ -123,10 +123,9 @@ _get_vps_config() {
|
||||||
vps_machine="$(echo "$vps_config" | jsonfilter -q -e '@.vps.machine')"
|
vps_machine="$(echo "$vps_config" | jsonfilter -q -e '@.vps.machine')"
|
||||||
vps_omr_version="$(echo "$vps_config" | jsonfilter -q -e '@.vps.omr_version')"
|
vps_omr_version="$(echo "$vps_config" | jsonfilter -q -e '@.vps.omr_version')"
|
||||||
uci -q batch <<-EOF >/dev/null
|
uci -q batch <<-EOF >/dev/null
|
||||||
set openmptcprouter.vps.kernel=$vps_kernel
|
set openmptcprouter.${servername}.kernel=$vps_kernel
|
||||||
set openmptcprouter.vps.machine=$vps_machine
|
set openmptcprouter.${servername}.machine=$vps_machine
|
||||||
set openmptcprouter.vps.omr_version=$vps_omr_version
|
set openmptcprouter.${servername}.omr_version=$vps_omr_version
|
||||||
commit openmptcprouter
|
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
glorytun_state=0
|
glorytun_state=0
|
||||||
|
@ -297,7 +296,7 @@ _set_config_from_vps() {
|
||||||
[ "$shorewall_redirect" = "enable" ] && redirect="1"
|
[ "$shorewall_redirect" = "enable" ] && redirect="1"
|
||||||
[ "$shorewall_redirect" = "disable" ] && redirect="0"
|
[ "$shorewall_redirect" = "disable" ] && redirect="0"
|
||||||
uci -q batch <<-EOF >/dev/null
|
uci -q batch <<-EOF >/dev/null
|
||||||
set openmptcprouter.vps.redirect_ports=$redirect
|
set openmptcprouter.${servername}.redirect_ports=$redirect
|
||||||
EOF
|
EOF
|
||||||
|
|
||||||
# MPTCP settings
|
# MPTCP settings
|
||||||
|
@ -327,47 +326,65 @@ _set_config_from_vps() {
|
||||||
# Get available server
|
# Get available server
|
||||||
available_vpn="$(echo "$vps_config" | jsonfilter -q -e '@.vpn.available' | sed -e 's/\[ //' -e 's/ \]//' -e 's/,//g')"
|
available_vpn="$(echo "$vps_config" | jsonfilter -q -e '@.vpn.available' | sed -e 's/\[ //' -e 's/ \]//' -e 's/,//g')"
|
||||||
uci -q batch <<-EOF >/dev/null
|
uci -q batch <<-EOF >/dev/null
|
||||||
del openmptcprouter.vps.available_vpn
|
del openmptcprouter.${servername}.available_vpn
|
||||||
EOF
|
EOF
|
||||||
if [ -n "$available_vpn" ]; then
|
if [ -n "$available_vpn" ]; then
|
||||||
for vpn in $available_vpn; do
|
for vpn in $available_vpn; do
|
||||||
uci -q batch <<-EOF >/dev/null
|
uci -q batch <<-EOF >/dev/null
|
||||||
add_list openmptcprouter.vps.available_vpn=$vpn
|
add_list openmptcprouter.${servername}.available_vpn=$vpn
|
||||||
EOF
|
EOF
|
||||||
done
|
done
|
||||||
fi
|
fi
|
||||||
|
|
||||||
uci -q batch <<-EOF >/dev/null
|
uci -q batch <<-EOF >/dev/null
|
||||||
set openmptcprouter.vps.get_config=0
|
set openmptcprouter.${servername}.get_config=0
|
||||||
commit openmptcprouter
|
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
||||||
start_service() {
|
_count_server() {
|
||||||
[ -z "$(uci -q get openmptcprouter.vps.username)" ] && return
|
local servername=$1
|
||||||
[ -z "$(uci -q get openmptcprouter.vps.password)" ] && return
|
[ -z "$(uci -q get openmptcprouter.${servername}.username)" ] && return
|
||||||
|
[ -z "$(uci -q get openmptcprouter.${servername}.password)" ] && return
|
||||||
|
serversnb=$((serversnb+1))
|
||||||
|
}
|
||||||
|
|
||||||
|
_config_service() {
|
||||||
|
servername=$1
|
||||||
|
[ -z "$(uci -q get openmptcprouter.${servername}.username)" ] && return
|
||||||
|
[ -z "$(uci -q get openmptcprouter.${servername}.password)" ] && return
|
||||||
|
token=""
|
||||||
|
vps_config=""
|
||||||
_login
|
_login
|
||||||
[ -z "$token" ] && {
|
[ -z "$token" ] && {
|
||||||
uci -q batch <<-EOF >/dev/null
|
uci -q batch <<-EOF >/dev/null
|
||||||
set openmptcprouter.vps.admin_error=1
|
set openmptcprouter.${servername}.admin_error=1
|
||||||
commit openmptcprouter
|
|
||||||
EOF
|
EOF
|
||||||
return
|
return
|
||||||
}
|
}
|
||||||
[ "$(uci -q get openmptcprouter.vps.get_config)" = "1" ] && _set_config_from_vps
|
[ "$(uci -q get openmptcprouter.${servername}.get_config)" = "1" ] && {
|
||||||
|
_set_config_from_vps
|
||||||
|
}
|
||||||
_get_vps_config
|
_get_vps_config
|
||||||
config_load shadowsocks-libev
|
config_load shadowsocks-libev
|
||||||
config_foreach _set_ss_server_vps server
|
config_foreach _set_ss_server_vps server
|
||||||
_set_glorytun_vps
|
_set_glorytun_vps
|
||||||
_set_openvpn_vps
|
_set_openvpn_vps
|
||||||
redirect_port="0"
|
redirect_port="0"
|
||||||
if [ "$(uci -q get openmptcprouter.vps.redirect_ports)" = "1" ] || [ "$(uci -q get upnpd.config.enabled)" = "1" ]; then
|
if [ "$(uci -q get openmptcprouter.${servername}.redirect_ports)" = "1" ] || [ "$(uci -q get upnpd.config.enabled)" = "1" ]; then
|
||||||
redirect_port="1"
|
redirect_port="1"
|
||||||
fi
|
fi
|
||||||
_set_redirect_ports_from_vps $redirect_port
|
_set_redirect_ports_from_vps $redirect_port
|
||||||
_set_mptcp_vps
|
_set_mptcp_vps
|
||||||
uci -q batch <<-EOF >/dev/null
|
uci -q batch <<-EOF >/dev/null
|
||||||
set openmptcprouter.vps.admin_error=0
|
set openmptcprouter.${servername}.admin_error=0
|
||||||
|
EOF
|
||||||
|
}
|
||||||
|
|
||||||
|
start_service() {
|
||||||
|
serversnb=0
|
||||||
|
config_load openmptcprouter
|
||||||
|
config_foreach _count_server server
|
||||||
|
config_foreach _config_service server
|
||||||
|
uci -q batch <<-EOF >/dev/null
|
||||||
commit openmptcprouter
|
commit openmptcprouter
|
||||||
EOF
|
EOF
|
||||||
}
|
}
|
||||||
|
|
Loading…
Add table
Add a link
Reference in a new issue