From 50aa23138b57dd13046888cf65070eb5724300fe Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 29 Apr 2021 21:16:26 +0200 Subject: [PATCH] Fix MPTCP over VPN with wireguard --- openmptcprouter/files/etc/init.d/mptcpovervpn | 53 +++++++++++++------ 1 file changed, 37 insertions(+), 16 deletions(-) diff --git a/openmptcprouter/files/etc/init.d/mptcpovervpn b/openmptcprouter/files/etc/init.d/mptcpovervpn index 338ea012d..f733dc02f 100755 --- a/openmptcprouter/files/etc/init.d/mptcpovervpn +++ b/openmptcprouter/files/etc/init.d/mptcpovervpn @@ -219,14 +219,24 @@ start_service() config_load openmptcprouter config_foreach mptcp_over_vpn interface if [ "$nbintf" = "$nbintfvpn" ] && [ "$nbintf" != "0" ]; then - uci -q batch <<-EOF >/dev/null - set shadowsocks-libev.sss0.disabled='1' - set glorytun.vpn.host='10.255.250.1' - set glorytun-udp.vpn.host='10.255.250.1' - commit glorytun - commit glorytun-udp - EOF - elif [ "$(uci -q get glorytun.vpn.host)" = "10.255.250.1" ] && [ "$nbintf" != "$nbintfvpn" ]; then + if [ "$vpn" = "openvpn" ]; then + uci -q batch <<-EOF >/dev/null + set shadowsocks-libev.sss0.disabled='1' + set glorytun.vpn.host='10.255.250.1' + set glorytun-udp.vpn.host='10.255.250.1' + commit glorytun + commit glorytun-udp + EOF + else + uci -q batch <<-EOF >/dev/null + set shadowsocks-libev.sss0.disabled='1' + set glorytun.vpn.host='10.255.247.1' + set glorytun-udp.vpn.host='10.255.247.1' + commit glorytun + commit glorytun-udp + EOF + fi + elif ([ "$(uci -q get glorytun.vpn.host)" = "10.255.250.1" ] || [ "$(uci -q get glorytun.vpn.host)" = "10.255.247.1" ]) && [ "$nbintf" != "$nbintfvpn" ]; then uci -q batch <<-EOF >/dev/null delete shadowsocks-libev.sss0.disabled set glorytun.vpn.host="$(uci -q get openmptcprouter.vps.ip | awk '{print $1}')" @@ -237,14 +247,25 @@ start_service() fi NBCPU=$(grep -c '^processor' /proc/cpuinfo | tr -d "\n") if [ "$nbintfvpn" != 0 ]; then - uci -q batch <<-EOF >/dev/null - set shadowsocks-libev.mptcpovervpn=server - set shadowsocks-libev.mptcpovervpn.server_port="$(uci -q get shadowsocks-libev.sss0.server_port)" - set shadowsocks-libev.mptcpovervpn.key="$(uci -q get shadowsocks-libev.sss0.key)" - set shadowsocks-libev.mptcpovervpn.method="$(uci -q get shadowsocks-libev.sss0.method)" - set shadowsocks-libev.mptcpovervpn.server="10.255.250.1" - delete shadowsocks-libev.mptcpovervpn.disabled - EOF + if [ "$vpn" = "openvpn" ]; then + uci -q batch <<-EOF >/dev/null + set shadowsocks-libev.mptcpovervpn=server + set shadowsocks-libev.mptcpovervpn.server_port="$(uci -q get shadowsocks-libev.sss0.server_port)" + set shadowsocks-libev.mptcpovervpn.key="$(uci -q get shadowsocks-libev.sss0.key)" + set shadowsocks-libev.mptcpovervpn.method="$(uci -q get shadowsocks-libev.sss0.method)" + set shadowsocks-libev.mptcpovervpn.server="10.255.250.1" + delete shadowsocks-libev.mptcpovervpn.disabled + EOF + else + uci -q batch <<-EOF >/dev/null + set shadowsocks-libev.mptcpovervpn=server + set shadowsocks-libev.mptcpovervpn.server_port="$(uci -q get shadowsocks-libev.sss0.server_port)" + set shadowsocks-libev.mptcpovervpn.key="$(uci -q get shadowsocks-libev.sss0.key)" + set shadowsocks-libev.mptcpovervpn.method="$(uci -q get shadowsocks-libev.sss0.method)" + set shadowsocks-libev.mptcpovervpn.server="10.255.247.1" + delete shadowsocks-libev.mptcpovervpn.disabled + EOF + fi for c in $(seq 1 $NBCPU); do uci -q batch <<-EOF >/dev/null set shadowsocks-libev.hivpn$c=ss_redir