1
0
Fork 0
mirror of https://github.com/Ysurac/openmptcprouter-feeds.git synced 2025-02-15 03:51:51 +00:00

Merge pull request #265 from Ysurac/develop

Fix https://github.com/Ysurac/openmptcprouter/issues/2465
This commit is contained in:
suyuan 2022-08-15 14:59:44 +08:00 committed by GitHub
commit 1dcfb749ef
No known key found for this signature in database
GPG key ID: 4AEE18F83AFDEB23
3 changed files with 23 additions and 6 deletions

View file

@ -584,10 +584,12 @@ function wizard_add()
ucic:set("openmptcprouter",server,"get_config","1")
end
ucic:set("openmptcprouter",server,"master","1")
ucic:set("openmptcprouter",server,"current","1")
ucic:set("openmptcprouter",server,"backup","0")
else
ucic:set("openmptcprouter",server,"get_config","0")
ucic:set("openmptcprouter",server,"master","0")
ucic:set("openmptcprouter",server,"current","0")
ucic:set("openmptcprouter",server,"backup","1")
end
if openmptcprouter_vps_disabled == "1" then

View file

@ -91,6 +91,8 @@ _check_master() {
del openvpn.omr.remote
add_list openvpn.omr.remote=$ip
commit openvpn
set openmptcprouter.vps.current='1'
commit openmptcprouter
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
@ -99,6 +101,7 @@ _check_master() {
/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
/etc/init.d/mptcpovervpn restart >/dev/null 2>/dev/null
fi
fi
config_load shadowsocks-libev
@ -106,6 +109,10 @@ _check_master() {
count=$((count+1))
else
logger -t "OMR-Tracker-Server" "Master server ${name} down ($ip)"
uci -q batch <<-EOF >/dev/null
set openmptcprouter.vps.current='0'
commit openmptcprouter
EOF
config_load shadowsocks-libev
config_foreach _disable_redir ss_redir
fi
@ -162,6 +169,8 @@ _check_backup() {
del openvpn.omr.remote
add_list openvpn.omr.remote=$ip
commit openvpn
set openmptcprouter.vps.current='1'
commit openmptcprouter
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
@ -170,6 +179,7 @@ _check_backup() {
/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
/etc/init.d/mptcpovervpn restart >/dev/null 2>/dev/null
fi
sleep $waittest
fi
@ -177,6 +187,10 @@ _check_backup() {
config_foreach _enable_redir ss_redir
count=$((count+1))
else
uci -q batch <<-EOF >/dev/null
set openmptcprouter.vps.current='0'
commit openmptcprouter
EOF
config_load shadowsocks-libev
config_foreach _disable_redir ss_redir
fi

View file

@ -17,7 +17,7 @@ wireguard_restart() {
}
_getremoteip() {
[ "$(uci -q get openmptcprouter.$1.master)" = "1" ] && {
[ "$(uci -q get openmptcprouter.$1.current)" = "1" ] && {
remoteip=$(uci -q get openmptcprouter.$1.ip | awk '{print $1}')
wg_server_key=$(uci -q get openmptcprouter.$1.wgkey)
}
@ -27,6 +27,10 @@ mptcp_over_vpn() {
local interface=$1
[ -n "$(uci show firewall.zone_wan.network | grep $interface)" ] && nbintf=$(($nbintf+1))
if [ "$(uci -q get openmptcprouter.${interface}.multipathvpn)" = "1" ]; then
remoteip=""
config_load openmptcprouter
config_foreach _getremoteip server
if [ "$(uci -q get network.${interface})" = "" ]; then
uci -q batch <<-EOF >/dev/null
delete openmptcprouter.${interface}
@ -47,12 +51,9 @@ mptcp_over_vpn() {
return
fi
nbintfvpn=$(($nbintfvpn+1))
if [ "$(uci -q get network.ovpn${interface})" = "" ] && [ "$vpn" = "openvpn" ]; then
if ([ "$(uci -q get network.ovpn${interface})" = "" ] || [ "$(uci -q get openvpn.${interface}.remote)" != "${remoteip}" ]) && [ "$vpn" = "openvpn" ]; then
logger -t "MPTCPoverVPN" "Enable MPTCP over VPN for ${interface}"
id=$(uci -q get network.${interface}.metric)
remoteip=""
config_load openmptcprouter
config_foreach _getremoteip server
localip=$(ubus call network.interface.$interface status | jsonfilter -e '@["ipv4-address"][0].address' | tr -d "\n")
[ -z "$(uci -q get openmptcprouter.ovpn${interface}.multipath)" ] && multipath=$(uci -q get network.${interface}.multipath)
[ -n "$(uci -q get openmptcprouter.ovpn${interface}.multipath)" ] && multipath=$(uci -q get openmptcprouter.ovpn${interface}.multipath)
@ -103,7 +104,7 @@ mptcp_over_vpn() {
add_list firewall.zone_vpn.network="ovpn${interface}"
commit firewall
EOF
elif [ "$(uci -q get network.wg${interface})" = "" ] && [ "$vpn" = "wireguard" ]; then
elif ([ "$(uci -q get network.wg${interface})" = "" ] || [ "$(uci -q get network.@wireguard_wg${interface}[0].endpoint_host)" != "$remoteip" ]) && [ "$vpn" = "wireguard" ]; then
logger -t "MPTCPoverVPN" "Enable MPTCP over VPN for ${interface}"
id=$(uci -q get network.${interface}.metric)
remoteip=""