From 8746eaf337a1e68530f09a3b5d6bf09f3f820a2a Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 2 Oct 2023 21:24:32 +0200 Subject: [PATCH 1/3] Fixes on MPTCP support with 6.1 kernel and XRay --- xray-core/files/etc/init.d/xray | 2 +- xray-core/files/etc/uci-defaults/3010-omr-xray | 8 ++++++++ 2 files changed, 9 insertions(+), 1 deletion(-) diff --git a/xray-core/files/etc/init.d/xray b/xray-core/files/etc/init.d/xray index f3c0566c3..5d6b49d37 100755 --- a/xray-core/files/etc/init.d/xray +++ b/xray-core/files/etc/init.d/xray @@ -1375,7 +1375,7 @@ add_inbound_setting() { json_add_boolean "tcpFastOpen" "$ss_sockopt_tcp_fast_open" if version_over_5_4; then test -n "$ss_sockopt_mptcp" && \ - json_add_boolean "mptcp" "$ss_sockopt_mptcp" + json_add_boolean "tcpMptcp" "$ss_sockopt_mptcp" fi test -n "$ss_sockopt_tproxy" && \ json_add_string "tproxy" "$ss_sockopt_tproxy" diff --git a/xray-core/files/etc/uci-defaults/3010-omr-xray b/xray-core/files/etc/uci-defaults/3010-omr-xray index 7897ae2cf..69cce605e 100644 --- a/xray-core/files/etc/uci-defaults/3010-omr-xray +++ b/xray-core/files/etc/uci-defaults/3010-omr-xray @@ -67,6 +67,7 @@ if [ -z "$(uci -q get xray.main)" ]; then set xray.omrout.ss_tls_key_file='/etc/luci-uploads/client.key' set xray.omrout.s_shadowsocks_port='65252' set xray.omrout.mux_concurrency='8' + set xray.omrout.ss_sockopt_mptcp='1' set xray.omr=inbound set xray.omr.tag='omrtunnel' set xray.omr.listen='0.0.0.0' @@ -199,4 +200,11 @@ if [ "$(uci -q get xray.omrout.s_socks_port)" = "" ]; then EOF fi +if [ "$(uci -q get xray.omrout.ss_sockopt_mptcp)" = "" ]; then + uci -q batch <<-EOF >/dev/null + set xray.omrout.ss_sockopt_mptcp='1' + commit xray + EOF +fi + exit 0 \ No newline at end of file From cd69bc64549cb021e38251a380e4226b4926617c Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Mon, 2 Oct 2023 21:25:23 +0200 Subject: [PATCH 2/3] Add services check for XRay and Shadowsocks-Rust --- .../share/omr/post-tracking.d/010-services | 27 ++++++++++++++++++- 1 file changed, 26 insertions(+), 1 deletion(-) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/010-services b/mptcp/files/usr/share/omr/post-tracking.d/010-services index 4d92a4923..9a20c4796 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/010-services +++ b/mptcp/files/usr/share/omr/post-tracking.d/010-services @@ -12,6 +12,11 @@ if [ -f /etc/init.d/shadowsocks-libev ] && [ "$(pgrep -f omr-tracker-ss)" = "" ] /etc/init.d/shadowsocks-libev restart 2>&1 >/dev/null sleep 5 fi +if [ -f /etc/init.d/shadowsocks-rust ] && [ "$(pgrep -f omr-tracker-ss)" = "" ] && [ "$(pgrep -f sslocal)" = "" ] && [ "$(pgrep -f sslocal)" = "" ] && [ "$(uci -q get shadowsocks-rust.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-rust.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-rust.sss0.server)" != "192.18.1.3" ] && [ "$(uci -q get shadowsocks-rust.sss0.key)" != "" ]; then + _log "Can't find Shadowsocks Rust, restart it..." + /etc/init.d/shadowsocks-rust restart 2>&1 >/dev/null + sleep 5 +fi if [ -f /etc/init.d/glorytun ] && [ "$(pgrep glorytun)" = "" ] && [ "$(uci -q get glorytun.vpn.enable)" = "1" ] && [ -f /etc/init.d/glorytun ] && [ "$(uci -q get glorytun.vpn.key)" != "" ]; then _log "Can't find Glorytun, restart it..." /etc/init.d/glorytun restart 2>&1 >/dev/null @@ -63,6 +68,11 @@ if [ "$(pgrep -f v2ray)" = "" ] && [ "$(uci -q get v2ray.main.enabled)" = "1" ] /etc/init.d/v2ray restart 2>&1 >/dev/null sleep 5 fi +if [ "$(pgrep -f xray)" = "" ] && [ "$(uci -q get xray.main.enabled)" = "1" ] && [ -f /etc/init.d/xray ]; then + _log "Can't find XRay, restart it..." + /etc/init.d/xray restart 2>&1 >/dev/null + sleep 5 +fi if [ "$(pgrep miniupnpd)" = "" ] && [ "$(uci -q get upnpd.config.enabled)" = "1" ] && [ -f /etc/init.d/miniupnpd ]; then _log "Can't find miniupnpd, restart it..." /etc/init.d/miniupnpd restart 2>&1 >/dev/null @@ -95,13 +105,17 @@ if [ "$(uci -q get v2ray.main.enabled)" = "1" ] && [ -f /etc/init.d/v2ray ] && [ _log "Can't find omr-tracker-v2ray, restart omr-tracker..." /etc/init.d/omr-tracker restart 2>&1 >/dev/null fi +if [ "$(uci -q get xray.main.enabled)" = "1" ] && [ -f /etc/init.d/xray ] && [ "$(pgrep -f omr-tracker-xray)" = "" ] && [ "$(pgrep -f '/etc/init.d/omr-tracker')" = "" ]; then + _log "Can't find omr-tracker-xray, restart omr-tracker..." + /etc/init.d/omr-tracker restart 2>&1 >/dev/null +fi set_get_config() { local server=$1 [ -n "$server" ] && uci -q set openmptcprouter.${server}.get_config=1 } -if [ -f /etc/init.d/shadowsocks-libev ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.key)" = "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "192.18.1.3" ]; then +if ([ -f /etc/init.d/shadowsocks-libev ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.key)" = "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "192.18.1.3" ]) || ([ -f /etc/init.d/shadowsocks-rust ] && [ "$(uci -q get shadowsocks-rust.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-rust.sss0.key)" = "" ] && [ "$(uci -q get shadowsocks-rust.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-rust.sss0.server)" != "192.18.1.3" ]); then config_load openmptcprouter config_foreach set_get_config server [ -n "$(uci -q changes openmptcprouter)" ] && uci -q commit openmptcprouter @@ -112,6 +126,11 @@ if [ -f /etc/init.d/shadowsocks-libev ] && [ "$(uci -q get shadowsocks-libev.sss /etc/init.d/omr-tracker restart 2>&1 >/dev/null fi +if [ -f /etc/init.d/shadowsocks-rust ] && [ "$(uci -q get shadowsocks-rust.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-rust.sss0.key)" != "" ] && [ "$(uci -q get shadowsocks-rust.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.rust.server)" != "192.18.1.3" ] && [ "$(pgrep -f omr-tracker-ss)" = "" ] && [ "$(pgrep -f '/etc/init.d/omr-tracker')" = "" ]; then + _log "Can't find omr-tracker-ss, restart omr-tracker..." + /etc/init.d/omr-tracker restart 2>&1 >/dev/null +fi + if [ "$(uci -q get glorytun.vpn.enable)" = "1" ] && [ "$(uci -q get glorytun.vpn.key)" = "" ]; then config_load openmptcprouter config_foreach set_get_config server @@ -124,6 +143,12 @@ if [ "$(uci -q get v2ray.main.enabled)" = "1" ] && [ "$(uci -q get v2ray.omrout. [ -n "$(uci -q changes openmptcprouter)" ] && uci -q commit openmptcprouter fi +if [ "$(uci -q get xray.main.enabled)" = "1" ] && [ "$(uci -q get xray.omrout.s_vless_user_id)" = "" ]; then + config_load openmptcprouter + config_foreach set_get_config server + [ -n "$(uci -q changes openmptcprouter)" ] && uci -q commit openmptcprouter +fi + if [ -n "$(logread | tail -n 2 | grep 'Ring expansion failed')" ]; then _log "Workaround Ring expansion failed problem" echo 1 > /sys/bus/pci/devices/0000:00:00.0/remove From 84f0cf5782694f6546c167e5f6a2210cacdb518f Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Tue, 3 Oct 2023 11:53:06 +0200 Subject: [PATCH 3/3] Changes for RUTX support on 6.1 kernel --- mptcp/files/usr/share/omr/post-tracking.d/050-rutx | 2 +- openmptcprouter/files/etc/uci-defaults/1920-omr-network | 7 ++++++- 2 files changed, 7 insertions(+), 2 deletions(-) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/050-rutx b/mptcp/files/usr/share/omr/post-tracking.d/050-rutx index 1ea024164..c815264a9 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/050-rutx +++ b/mptcp/files/usr/share/omr/post-tracking.d/050-rutx @@ -6,7 +6,7 @@ # # This script set lights on RUTX device -if [ -n "$(grep RUTX /etc/board.json)" ] && [ -n "$OMR_TRACKER_DEVICE" ]; then +if [ -n "$(grep RUTX /etc/board.json)" ] && [ -z "$(grep RUTX50 /etc/board.json)" ] && [ -n "$OMR_TRACKER_DEVICE" ]; then if [ "$OMR_TRACKER_DEVICE" = "wwan0" ]; then modemdata=$(omr-modemmanager '/sys/devices/platform/soc/60f8800.usb2/6000000.dwc3/xhci-hcd.1.auto/usb3/3-1' all) gen=$(echo $modemdata | cut -d ';' -f 5 | tr -d '\n') diff --git a/openmptcprouter/files/etc/uci-defaults/1920-omr-network b/openmptcprouter/files/etc/uci-defaults/1920-omr-network index 9e80c2a5d..20e278230 100755 --- a/openmptcprouter/files/etc/uci-defaults/1920-omr-network +++ b/openmptcprouter/files/etc/uci-defaults/1920-omr-network @@ -351,7 +351,7 @@ uci -q delete network.loopback.ifname uci -q set network.loopback.device='lo' local board=$(board_name) -if [ "$board" = "teltonika,rutx" ] && [ -f /sbin/mnf_info ]; then +if ([ "$board" = "teltonika,rutx" ] || [ "$board" = "teltonika,rutx12" ] || [ "$board" = "teltonika,rutx50" ]) && [ -f /sbin/mnf_info ]; then # Same part for RUTX12 and RUTX11, maybe other RUTX ? uci -q batch <<-EOF set network.modem1=interface @@ -388,6 +388,11 @@ if [ "$board" = "teltonika,rutx" ] && [ -f /sbin/mnf_info ]; then commit firewall EOF fi + if [ "$(mnf_info -n)" = "RUTX5000XXXX" ]; then + uci -q batch <<-EOF + set network.modem1.device='/sys/devices/platform/soc/8af8800.usb3/8a00000.dwc3/xhci-hcd.0.auto/usb2/2-1' + EOF + fi uci -q batch <<-EOF set network.wifi24=interface set network.wifi24.proto='none'