From b2d4f25bb0de1d6508d7bdf7a13ba5e48fc8728e Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 17 Jun 2022 11:03:58 +0800 Subject: [PATCH 01/26] Update omr-tracker --- omr-tracker/files/etc/config/omr-tracker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omr-tracker/files/etc/config/omr-tracker b/omr-tracker/files/etc/config/omr-tracker index f0c485a70..9d792c3f0 100755 --- a/omr-tracker/files/etc/config/omr-tracker +++ b/omr-tracker/files/etc/config/omr-tracker @@ -17,7 +17,7 @@ config defaults 'defaults' list hosts6 '2620:fe::9' list hosts6 '2001:4860:4860::8888' list hosts6 '2001:4860:4860::8844' - option timeout '2' + option timeout '10' option tries '3' option interval '2' option interval_tries '1' From 40f0ec74dcd4d14f1ddfcf6c1165f4cc0b0345f8 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 17 Jun 2022 12:09:27 +0800 Subject: [PATCH 02/26] fix --- mptcp/Makefile | 0 mptcp/files/etc/hotplug.d/iface/30-mptcp | 0 mptcpd/Makefile | 0 mptcpd/patches/stub_error_h.patch | 0 4 files changed, 0 insertions(+), 0 deletions(-) mode change 100755 => 100644 mptcp/Makefile mode change 100755 => 100644 mptcp/files/etc/hotplug.d/iface/30-mptcp mode change 100755 => 100644 mptcpd/Makefile mode change 100755 => 100644 mptcpd/patches/stub_error_h.patch diff --git a/mptcp/Makefile b/mptcp/Makefile old mode 100755 new mode 100644 diff --git a/mptcp/files/etc/hotplug.d/iface/30-mptcp b/mptcp/files/etc/hotplug.d/iface/30-mptcp old mode 100755 new mode 100644 diff --git a/mptcpd/Makefile b/mptcpd/Makefile old mode 100755 new mode 100644 diff --git a/mptcpd/patches/stub_error_h.patch b/mptcpd/patches/stub_error_h.patch old mode 100755 new mode 100644 From 1308cf7a98922051433162d85b3ba2f62cab2a20 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 17 Jun 2022 12:35:25 +0800 Subject: [PATCH 03/26] Revert "fix" This reverts commit 40f0ec74dcd4d14f1ddfcf6c1165f4cc0b0345f8. --- mptcp/Makefile | 0 mptcp/files/etc/hotplug.d/iface/30-mptcp | 0 mptcpd/Makefile | 0 mptcpd/patches/stub_error_h.patch | 0 4 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 mptcp/Makefile mode change 100644 => 100755 mptcp/files/etc/hotplug.d/iface/30-mptcp mode change 100644 => 100755 mptcpd/Makefile mode change 100644 => 100755 mptcpd/patches/stub_error_h.patch diff --git a/mptcp/Makefile b/mptcp/Makefile old mode 100644 new mode 100755 diff --git a/mptcp/files/etc/hotplug.d/iface/30-mptcp b/mptcp/files/etc/hotplug.d/iface/30-mptcp old mode 100644 new mode 100755 diff --git a/mptcpd/Makefile b/mptcpd/Makefile old mode 100644 new mode 100755 diff --git a/mptcpd/patches/stub_error_h.patch b/mptcpd/patches/stub_error_h.patch old mode 100644 new mode 100755 From 677d4b5beac426fe4c8f22187c5d8ad22c0e9ae0 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 17 Jun 2022 12:36:09 +0800 Subject: [PATCH 04/26] fix --- luci-app-sqm-autorate/Makefile | 0 .../htdocs/luci-static/resources/view/network/sqm.js | 0 luci-app-sqm-autorate/po/ar/sqm.po | 0 luci-app-sqm-autorate/po/bg/sqm.po | 0 luci-app-sqm-autorate/po/bn_BD/sqm.po | 0 luci-app-sqm-autorate/po/ca/sqm.po | 0 luci-app-sqm-autorate/po/cs/sqm.po | 0 luci-app-sqm-autorate/po/da/sqm.po | 0 luci-app-sqm-autorate/po/de/sqm.po | 0 luci-app-sqm-autorate/po/el/sqm.po | 0 luci-app-sqm-autorate/po/en/sqm.po | 0 luci-app-sqm-autorate/po/es/sqm.po | 0 luci-app-sqm-autorate/po/fi/sqm.po | 0 luci-app-sqm-autorate/po/fr/sqm.po | 0 luci-app-sqm-autorate/po/he/sqm.po | 0 luci-app-sqm-autorate/po/hi/sqm.po | 0 luci-app-sqm-autorate/po/hu/sqm.po | 0 luci-app-sqm-autorate/po/it/sqm.po | 0 luci-app-sqm-autorate/po/ja/sqm.po | 0 luci-app-sqm-autorate/po/ko/sqm.po | 0 luci-app-sqm-autorate/po/mr/sqm.po | 0 luci-app-sqm-autorate/po/ms/sqm.po | 0 luci-app-sqm-autorate/po/nb_NO/sqm.po | 0 luci-app-sqm-autorate/po/pl/sqm.po | 0 luci-app-sqm-autorate/po/pt/sqm.po | 0 luci-app-sqm-autorate/po/pt_BR/sqm.po | 0 luci-app-sqm-autorate/po/ro/sqm.po | 0 luci-app-sqm-autorate/po/ru/sqm.po | 0 luci-app-sqm-autorate/po/sk/sqm.po | 0 luci-app-sqm-autorate/po/sv/sqm.po | 0 luci-app-sqm-autorate/po/templates/sqm.pot | 0 luci-app-sqm-autorate/po/tr/sqm.po | 0 luci-app-sqm-autorate/po/uk/sqm.po | 0 luci-app-sqm-autorate/po/vi/sqm.po | 0 luci-app-sqm-autorate/po/zh_Hans/sqm.po | 0 luci-app-sqm-autorate/po/zh_Hant/sqm.po | 0 .../root/usr/share/luci/menu.d/luci-app-sqm.json | 0 luci-app-sqm-autorate/root/usr/share/rpcd/acl.d/luci-app-sqm.json | 0 luci-app-sqm-autorate/root/usr/share/sqm-autorate/config.sh | 0 39 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 luci-app-sqm-autorate/Makefile mode change 100644 => 100755 luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js mode change 100644 => 100755 luci-app-sqm-autorate/po/ar/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/bg/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/bn_BD/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/ca/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/cs/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/da/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/de/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/el/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/en/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/es/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/fi/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/fr/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/he/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/hi/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/hu/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/it/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/ja/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/ko/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/mr/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/ms/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/nb_NO/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/pl/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/pt/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/pt_BR/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/ro/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/ru/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/sk/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/sv/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/templates/sqm.pot mode change 100644 => 100755 luci-app-sqm-autorate/po/tr/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/uk/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/vi/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/zh_Hans/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/po/zh_Hant/sqm.po mode change 100644 => 100755 luci-app-sqm-autorate/root/usr/share/luci/menu.d/luci-app-sqm.json mode change 100644 => 100755 luci-app-sqm-autorate/root/usr/share/rpcd/acl.d/luci-app-sqm.json mode change 100644 => 100755 luci-app-sqm-autorate/root/usr/share/sqm-autorate/config.sh diff --git a/luci-app-sqm-autorate/Makefile b/luci-app-sqm-autorate/Makefile old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js b/luci-app-sqm-autorate/htdocs/luci-static/resources/view/network/sqm.js old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/ar/sqm.po b/luci-app-sqm-autorate/po/ar/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/bg/sqm.po b/luci-app-sqm-autorate/po/bg/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/bn_BD/sqm.po b/luci-app-sqm-autorate/po/bn_BD/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/ca/sqm.po b/luci-app-sqm-autorate/po/ca/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/cs/sqm.po b/luci-app-sqm-autorate/po/cs/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/da/sqm.po b/luci-app-sqm-autorate/po/da/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/de/sqm.po b/luci-app-sqm-autorate/po/de/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/el/sqm.po b/luci-app-sqm-autorate/po/el/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/en/sqm.po b/luci-app-sqm-autorate/po/en/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/es/sqm.po b/luci-app-sqm-autorate/po/es/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/fi/sqm.po b/luci-app-sqm-autorate/po/fi/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/fr/sqm.po b/luci-app-sqm-autorate/po/fr/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/he/sqm.po b/luci-app-sqm-autorate/po/he/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/hi/sqm.po b/luci-app-sqm-autorate/po/hi/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/hu/sqm.po b/luci-app-sqm-autorate/po/hu/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/it/sqm.po b/luci-app-sqm-autorate/po/it/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/ja/sqm.po b/luci-app-sqm-autorate/po/ja/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/ko/sqm.po b/luci-app-sqm-autorate/po/ko/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/mr/sqm.po b/luci-app-sqm-autorate/po/mr/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/ms/sqm.po b/luci-app-sqm-autorate/po/ms/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/nb_NO/sqm.po b/luci-app-sqm-autorate/po/nb_NO/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/pl/sqm.po b/luci-app-sqm-autorate/po/pl/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/pt/sqm.po b/luci-app-sqm-autorate/po/pt/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/pt_BR/sqm.po b/luci-app-sqm-autorate/po/pt_BR/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/ro/sqm.po b/luci-app-sqm-autorate/po/ro/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/ru/sqm.po b/luci-app-sqm-autorate/po/ru/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/sk/sqm.po b/luci-app-sqm-autorate/po/sk/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/sv/sqm.po b/luci-app-sqm-autorate/po/sv/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/templates/sqm.pot b/luci-app-sqm-autorate/po/templates/sqm.pot old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/tr/sqm.po b/luci-app-sqm-autorate/po/tr/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/uk/sqm.po b/luci-app-sqm-autorate/po/uk/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/vi/sqm.po b/luci-app-sqm-autorate/po/vi/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/zh_Hans/sqm.po b/luci-app-sqm-autorate/po/zh_Hans/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/po/zh_Hant/sqm.po b/luci-app-sqm-autorate/po/zh_Hant/sqm.po old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/root/usr/share/luci/menu.d/luci-app-sqm.json b/luci-app-sqm-autorate/root/usr/share/luci/menu.d/luci-app-sqm.json old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/root/usr/share/rpcd/acl.d/luci-app-sqm.json b/luci-app-sqm-autorate/root/usr/share/rpcd/acl.d/luci-app-sqm.json old mode 100644 new mode 100755 diff --git a/luci-app-sqm-autorate/root/usr/share/sqm-autorate/config.sh b/luci-app-sqm-autorate/root/usr/share/sqm-autorate/config.sh old mode 100644 new mode 100755 From 771ff642f8ae243562ec8e598402f473da47fc19 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 17 Jun 2022 13:18:37 +0800 Subject: [PATCH 05/26] fix checkout --- mptcp/Makefile | 0 mptcp/files/etc/hotplug.d/iface/30-mptcp | 0 mptcp/files/etc/init.d/mptcp | 10 +- .../share/omr/post-tracking.d/post-tracking | 115 ++---------------- 4 files changed, 14 insertions(+), 111 deletions(-) mode change 100755 => 100644 mptcp/Makefile mode change 100755 => 100644 mptcp/files/etc/hotplug.d/iface/30-mptcp diff --git a/mptcp/Makefile b/mptcp/Makefile old mode 100755 new mode 100644 diff --git a/mptcp/files/etc/hotplug.d/iface/30-mptcp b/mptcp/files/etc/hotplug.d/iface/30-mptcp old mode 100755 new mode 100644 diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index 29f4a354e..d7646364d 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -28,7 +28,6 @@ global_multipath_settings() { config_get mptcp_ndiffports_num_subflows globals mptcp_ndiffports_num_subflows config_get mptcp_rr_cwnd_limited globals mptcp_rr_cwnd_limited config_get mptcp_rr_num_segments globals mptcp_rr_num_segments - config_get mptcp_version globals mptcp_version "0" [ "$multipath" = "enable" ] && multipath_status=1 @@ -45,7 +44,6 @@ global_multipath_settings() { [ -z "$mptcp_ndiffports_num_subflows" ] || sysctl -qew /sys/module/mptcp_ndiffports/parameters/num_subflows="$mptcp_ndiffports_num_subflows" [ -z "$mptcp_rr_cwnd_limited" ] || sysctl -qew /sys/module/mptcp_rr/parameters/cwnd_limited="$mptcp_rr_cwnd_limited" [ -z "$mptcp_rr_num_segments" ] || sysctl -qew /sys/module/mptcp_rr/parameters/num_segments="$mptcp_rr_num_segments" - [ -z "$mptcp_version" ] || sysctl -qew net.mptcp.mptcp_version="$mptcp_version" elif [ -f /proc/sys/net/mptcp/enabled ]; then sysctl -qew net.mptcp.enabled="$multipath_status" ip mptcp limits set add_addr_accepted $mptcp_add_addr_accepted subflows $mptcp_subflows 2>&1 >/dev/null @@ -133,7 +131,6 @@ interface_multipath_settings() { [ -z "$mptcpmintf" ] && mptcpmintf="$config" uci -q set network.${config}.defaultroute=0 uci -q set network.${config}.peerdns=0 - echo '' > /etc/resolv.conf 2>&1 >/dev/null } [ "$mode" = "master" ] && { # Force that only one interface is master @@ -167,7 +164,6 @@ interface_multipath_settings() { [ "$config" = "omrvpn" ] && mode="off" [ -n "$(ifconfig | grep $iface)" ] || return 0 [ "$(echo $iface | grep _dev)" != "" ] && return 0 - [ "$(echo $iface | grep '^if')" != "" ] && return 0 if [ "$mode" = "master" ]; then multipath "$iface" "on" @@ -261,11 +257,10 @@ interface_multipath_settings() { else #echo "Add routes for $ipaddr table $id" [ -n "$ipaddr" ] && ip rule add from $ipaddr table $id pref 0 - ip rule add oif $iface table $id pref 0 ip route replace $network/$netmask dev $iface scope link metric $id 2>&1 >/dev/null ip route replace $network/$netmask dev $iface scope link table $id 2>&1 >/dev/null ip route replace default via $gateway dev $iface table $id 2>&1 >/dev/null - [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && ip route replace default via $gateway dev $iface metric $id 2>&1 >/dev/null + ip route replace default via $gateway dev $iface metric $id 2>&1 >/dev/null #ip route flush $id fi @@ -348,11 +343,10 @@ interface_multipath_settings() { EOF else [ -n "$ip6addr" ] && ip -6 rule add from $ip6addr table 6$id pref 0 2>&1 >/dev/null - ip rule add oif $iface table 6$id pref 0 ip -6 route replace $network6/$netmask6 dev $iface scope link metric 6$id 2>&1 >/dev/null ip -6 route replace $network6/$netmask6 dev $iface scope link table 6$id 2>&1 >/dev/null ip -6 route replace default via $gateway6 dev $iface table 6$id 2>&1 >/dev/null - [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && ip -6 route replace default via $gateway6 dev $iface metric 6$id 2>&1 >/dev/null + ip -6 route replace default via $gateway6 dev $iface metric 6$id 2>&1 >/dev/null #ip -6 route flush 6$id 2>&1 >/dev/null fi diff --git a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking index a0d064983..0e8ca6953 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -478,7 +478,6 @@ set_server_all_routes() { fi fi } - config_load openmptcprouter config_list_foreach $server ip server_route } @@ -526,7 +525,6 @@ set_server_all_routes6() { fi fi } - config_load openmptcprouter config_list_foreach $server ip server_route } @@ -565,7 +563,7 @@ set_server_route() { fi } config_list_foreach $server ip server_route - if [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && [ -n "$metric" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then + if [ -n "$metric" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric 2>&1 >/dev/null fi } @@ -603,7 +601,7 @@ set_server_route6() { fi } config_list_foreach $server ip server_route - if [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY6" != "" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ -n "$metric" ] && [ "$(ip -6 route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY6)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then + if [ "$OMR_TRACKER_DEVICE_GATEWAY6" != "" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ -n "$metric" ] && [ "$(ip -6 route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY6)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then ip -6 route replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric $metric 2>&1 >/dev/null fi } @@ -706,95 +704,6 @@ default_gw6=$(ip -6 route show default | grep -v "metric" | awk '/default/ {prin interface_up=$(ifstatus "$OMR_TRACKER_INTERFACE" 2>/dev/null | jsonfilter -q -e '@["up"]') - -if [ -n "$(grep RUTX /etc/board.json)" ] && [ -n "$OMR_TRACKER_INTERFACE" ]; then - if [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.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') - if [ "$gen" = "gsm" ]; then - echo "default-on" > /sys/class/leds/mob_gen_2/trigger - echo "none" > /sys/class/leds/mob_gen_3/trigger - echo "none" > /sys/class/leds/mob_gen_4/trigger - elif [ "$gen" = "umts" ]; then - echo "none" > /sys/class/leds/mob_gen_2/trigger - echo "default-on" > /sys/class/leds/mob_gen_3/trigger - echo "none" > /sys/class/leds/mob_gen_4/trigger - elif [ "$gen" = "lte" ]; then - echo "none" > /sys/class/leds/mob_gen_2/trigger - echo "none" > /sys/class/leds/mob_gen_3/trigger - echo "default-on" > /sys/class/leds/mob_gen_4/trigger - fi - bar=$(echo $modemdata | cut -d ';' -f 1 | tr -d '\n') - if [ "$bar" -gt "0" ]; then - echo "default-on" > /sys/class/leds/mob_ssid_1/trigger - else - echo "none" > /sys/class/leds/mob_ssid_1/trigger - fi - if [ "$bar" -gt "30" ]; then - echo "default-on" > /sys/class/leds/mob_ssid_2/trigger - else - echo "none" > /sys/class/leds/mob_ssid_2/trigger - fi - if [ "$bar" -gt "50" ]; then - echo "default-on" > /sys/class/leds/mob_ssid_3/trigger - else - echo "none" > /sys/class/leds/mob_ssid_3/trigger - fi - if [ "$bar" -gt "70" ]; then - echo "default-on" > /sys/class/leds/mob_ssid_4/trigger - else - echo "none" > /sys/class/leds/mob_ssid_4/trigger - fi - if [ "$bar" -gt "90" ]; then - echo "default-on" > /sys/class/leds/mob_ssid_5/trigger - else - echo "none" > /sys/class/leds/mob_ssid_5/trigger - fi - elif [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.device)" = "wwan1" ]; then - modemdata=$(omr-modemmanager '/sys/devices/platform/soc/8af8800.usb3/8a00000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.2' all) - gen=$(echo $modemdata | cut -d ';' -f 5 | tr -d '\n') - if [ "$gen" = "gsm" ]; then - echo "default-on" > /sys/class/leds/mob2_gen_2/trigger - echo "none" > /sys/class/leds/mob2_gen_3/trigger - echo "none" > /sys/class/leds/mob2_gen_4/trigger - elif [ "$gen" = "umts" ]; then - echo "none" > /sys/class/leds/mob2_gen_2/trigger - echo "default-on" > /sys/class/leds/mob2_gen_3/trigger - echo "none" > /sys/class/leds/mob2_gen_4/trigger - elif [ "$gen" = "lte" ]; then - echo "none" > /sys/class/leds/mob2_gen_2/trigger - echo "none" > /sys/class/leds/mob2_gen_3/trigger - echo "default-on" > /sys/class/leds/mob2_gen_4/trigger - fi - bar=$(echo $modemdata | cut -d ';' -f 1 | tr -d '\n') - if [ "$bar" -gt "0" ]; then - echo "default-on" > /sys/class/leds/mob2_ssid_1/trigger - else - echo "none" > /sys/class/leds/mob2_ssid_1/trigger - fi - if [ "$bar" -gt "30" ]; then - echo "default-on" > /sys/class/leds/mob2_ssid_2/trigger - else - echo "none" > /sys/class/leds/mob2_ssid_2/trigger - fi - if [ "$bar" -gt "50" ]; then - echo "default-on" > /sys/class/leds/mob2_ssid_3/trigger - else - echo "none" > /sys/class/leds/mob2_ssid_3/trigger - fi - if [ "$bar" -gt "70" ]; then - echo "default-on" > /sys/class/leds/mob2_ssid_4/trigger - else - echo "none" > /sys/class/leds/mob2_ssid_4/trigger - fi - if [ "$bar" -gt "90" ]; then - echo "default-on" > /sys/class/leds/mob2_ssid_5/trigger - else - echo "none" > /sys/class/leds/mob2_ssid_5/trigger - fi - fi -fi - # An interface in error will never be used in MPTCP if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then if [ "$interface_up" = "true" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] || [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "wireguard" ]); then @@ -1166,7 +1075,7 @@ if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then elif [ "$(uci -q get openmptcprouter.settings.master)" != "failover" ]; then config_foreach set_server_route server fi - if [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then + if [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then _log "Interface route not yet set, set route ip r add default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" ip r add default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $(uci -q get network.$OMR_TRACKER_INTERFACE.metric) >/dev/null 2>&1 fi @@ -1179,7 +1088,7 @@ if [ -n "$OMR_TRACKER_DEVICE_IP6" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ]; th elif [ "$(uci -q get openmptcprouter.settings.master)" != "failover" ]; then config_foreach set_server_route6 server fi - if [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip -6 r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then + if [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip -6 r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then ip -6 r replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric $(uci -q get network.$OMR_TRACKER_INTERFACE.metric) >/dev/null 2>&1 fi fi @@ -1298,7 +1207,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE=interface } if [ "$(uci -q get openmptcprouter.latest_versions.lc)" = "" ] || [ $(($(date +"%s") - $(uci -q get openmptcprouter.latest_versions.lc))) -gt 3600 ]; then - local latestversions="$(curl -4 -s -m 3 https://55860.com/bak/version.json)" + local latestversions="$(curl -4 -s -m 3 https://www.openmptcprouter.com/version/version.json)" [ -n "$latestversions" ] && { uci -q set openmptcprouter.latest_versions=latest_versions uci -q set openmptcprouter.latest_versions.omr=$(echo $latestversions | jsonfilter -q -e '@.omr') @@ -1538,17 +1447,17 @@ fi } # If a service is down, force restart it -if [ -f /etc/init.d/shadowsocks-libev ] && [ "$(pgrep ss-redir)" = "" ] && [ "$(pgrep ss-local)" = "" ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "192.18.1.3" ] && [ "$(uci -q get shadowsocks-libev.sss0.key)" != "" ]; then +if [ "$(pgrep ss-redir)" = "" ] && [ "$(pgrep ss-local)" = "" ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "192.18.1.3" ] && [ "$(uci -q get shadowsocks-libev.sss0.key)" != "" ]; then _log "Can't find Shadowsocks, restart it..." /etc/init.d/shadowsocks-libev 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 +if [ "$(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 sleep 5 fi -if [ -f /etc/init.d/glorytun-udp ] && [ "$(pgrep glorytun-udp)" = "" ] && [ "$(uci -q get glorytun-usp.vpn.enable)" = "1" ] && [ -f /etc/init.d/glorytun-udp ] && [ "$(uci -q get glorytun-udp.vpn.key)" != "" ]; then +if [ "$(pgrep glorytun-udp)" = "" ] && [ "$(uci -q get glorytun-usp.vpn.enable)" = "1" ] && [ -f /etc/init.d/glorytun-udp ] && [ "$(uci -q get glorytun-udp.vpn.key)" != "" ]; then _log "Can't find Glorytun UDP, restart it..." /etc/init.d/glorytun-udp restart 2>&1 >/dev/null sleep 5 @@ -1652,12 +1561,12 @@ if [ -n "$(logread | tail -n 2 | grep 'Ring expansion failed')" ]; then echo 1 > /sys/bus/pci/rescan fi -if [ -f /etc/init.d/omr-bypass ] && [ "$(iptables-save | grep omr-bypass)" = "" ] && [ "$(pgrep omr-bypass)" = "" ]; then +if [ "$(iptables-save | grep omr-bypass)" = "" ] && [ "$(pgrep omr-bypass)" = "" ]; then _log "Can't find omr-bypass rules, restart omr-bypass..." /etc/init.d/omr-bypass 2>&1 >/dev/null fi -if [ -f /etc/backup/installed_packages.txt ] && [ -n "$(grep overlay /etc/backup/installed_packages.txt)" ]; then +if [ -f /etc/backup/installed_packages.txt ]; then _log "Reinstall packages..." /etc/init.d/sysupgrade restart 2>&1 >/dev/null fi @@ -1667,8 +1576,8 @@ if [ "$(pgrep openmptcprouter-vps)" = "" ] && ([ "$(uci -q show openmptcprouter sleep 5 fi -#if [ "$(uci -q show openmptcprouter | grep server)" != "" ] && [ "$(uci -q show openmptcprouter | grep password)" != "" ] && [ "$(pgrep openmptcprouter-vps)" = "" ] && [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" = "" ] && ([ "$(uci -q show openmptcprouter | grep set_firewall=\'1\')" != "" ] || [ -z "$(iptables-save | grep omr_dst_bypass_${OMR_TRACKER_DEVICE})" ]); then -if [ "$(uci -q show openmptcprouter | grep server)" != "" ] && [ "$(uci -q show openmptcprouter | grep password)" != "" ] && [ "$(pgrep openmptcprouter-vps)" = "" ] && [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" = "" ] && [ "$(uci -q show openmptcprouter | grep set_firewall=\'1\')" != "" ]; then + +if [ "$(uci -q show openmptcprouter | grep server)" != "" ] && [ "$(pgrep openmptcprouter-vps)" = "" ] && [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" = "" ] && ([ "$(uci -q show openmptcprouter | grep set_firewall=\'1\')" != "" ] || [ -z "$(iptables-save | grep omr_dst_bypass_${OMR_TRACKER_DEVICE})" ]); then _log "Set firewall on server" /etc/init.d/openmptcprouter-vps set_vps_firewall >/dev/null 2>&1 From d3ed7dd8a356c3dd8fa478a379a20c05f082ac0a Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 17 Jun 2022 13:57:34 +0800 Subject: [PATCH 06/26] Update zones.js --- .../luci-static/resources/view/firewall/zones.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js index 5ece96be2..73eaa4a22 100755 --- a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js +++ b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js @@ -145,14 +145,14 @@ return view.extend({ o = s.taboption('general', form.Flag, 'masq', _('Masquerading')); o.editable = true; - - o = s.taboption('general', form.Flag, 'fullcone', _('Full Cone')); + o = s.taboption('general', form.Flag, 'fullcone', _('Full Cone')); o.editable = true; - o.depends('masq', '1'); - + o.depends('masq', '1'); + o = s.taboption('general', form.Flag, 'mtu_fix', _('MSS clamp')); + o.modalonly = true; o = s.taboption('general', form.Flag, 'mtu_fix', _('MSS clamping')); o.modalonly = true; - + o = s.taboption('general', widgets.NetworkSelect, 'network', _('Covered networks')); o.modalonly = true; o.multiple = true; From 39acbdf49b19b180f730936f9af410ea93dd7101 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 17 Jun 2022 14:54:27 +0800 Subject: [PATCH 07/26] Update omr-tracker --- omr-tracker/files/etc/config/omr-tracker | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) diff --git a/omr-tracker/files/etc/config/omr-tracker b/omr-tracker/files/etc/config/omr-tracker index 9d792c3f0..0183e2963 100755 --- a/omr-tracker/files/etc/config/omr-tracker +++ b/omr-tracker/files/etc/config/omr-tracker @@ -11,6 +11,8 @@ config defaults 'defaults' list hosts '80.67.169.40' list hosts '114.114.114.114' list hosts '1.1.1.1' + list hosts '223.5.5.5' + list hosts '223.6.6.6' list hosts6 '2606:4700:4700::1111' list hosts6 '2606:4700:4700::1001' list hosts6 '2620:fe::fe' @@ -30,7 +32,21 @@ config defaults 'defaults' config proxy 'proxy' option enabled '1' list hosts '1.0.0.1' + list hosts '123.58.180.8' + list hosts '123.58.180.7' + list hosts '220.181.72.180' + list hosts '14.18.240.29' + list hosts '61.139.244.3' list hosts '212.27.48.10' + list hosts '106.11.253.86' + list hosts '140.205.60.46' + list hosts '106.11.172.9' + list hosts '106.11.253.83' + list hosts '106.11.249.99' + list hosts '106.11.248.146' + list hosts '140.205.135.3' + list hosts '113.105.165.19' + list hosts '14.215.167.223' list hosts '198.27.92.1' list hosts '151.101.129.164' list hosts '77.88.55.77' From 01cb3d34aa49ad004b23d2cf95f842e2d348cbca Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 17 Jun 2022 14:54:50 +0800 Subject: [PATCH 08/26] Update omr-tracker --- omr-tracker/files/etc/config/omr-tracker | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omr-tracker/files/etc/config/omr-tracker b/omr-tracker/files/etc/config/omr-tracker index 0183e2963..f07da7b35 100755 --- a/omr-tracker/files/etc/config/omr-tracker +++ b/omr-tracker/files/etc/config/omr-tracker @@ -37,7 +37,7 @@ config proxy 'proxy' list hosts '220.181.72.180' list hosts '14.18.240.29' list hosts '61.139.244.3' - list hosts '212.27.48.10' + list hosts '212.27.48.10' list hosts '106.11.253.86' list hosts '140.205.60.46' list hosts '106.11.172.9' From 18d7fb2f9df0f69c314659d301d0bdac761d9c54 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 17 Jun 2022 15:24:19 +0800 Subject: [PATCH 09/26] fix --- mptcp/files/etc/init.d/mptcp | 33 ++-- mptcp/files/usr/bin/multipath | 11 -- .../share/omr/post-tracking.d/post-tracking | 162 +++++++----------- 3 files changed, 77 insertions(+), 129 deletions(-) diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index d7646364d..ac2b7496d 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -10,7 +10,7 @@ USE_PROCD=1 . /lib/functions/network.sh global_multipath_settings() { - local multipath mptcp_path_manager mptcp_scheduler mptcp_subflows mptcp_debug mptcp_add_addr_accepted congestion mptcp_checksum mptcp_syn_retries mptcp_fullmesh_num_subflows mptcp_fullmesh_create_on_err mptcp_ndiffports_num_subflows mptcp_rr_cwnd_limited mptcp_rr_num_segments + local multipath mptcp_path_manager mptcp_schdeduler mptcp_debug congestion mptcp_checksum mptcp_syn_retries mptcp_fullmesh_num_subflows mptcp_fullmesh_create_on_err mptcp_ndiffports_num_subflows mptcp_rr_cwnd_limited mptcp_rr_num_segments local multipath_status=0 config_load network config_get multipath globals multipath @@ -44,7 +44,7 @@ global_multipath_settings() { [ -z "$mptcp_ndiffports_num_subflows" ] || sysctl -qew /sys/module/mptcp_ndiffports/parameters/num_subflows="$mptcp_ndiffports_num_subflows" [ -z "$mptcp_rr_cwnd_limited" ] || sysctl -qew /sys/module/mptcp_rr/parameters/cwnd_limited="$mptcp_rr_cwnd_limited" [ -z "$mptcp_rr_num_segments" ] || sysctl -qew /sys/module/mptcp_rr/parameters/num_segments="$mptcp_rr_num_segments" - elif [ -f /proc/sys/net/mptcp/enabled ]; then + else sysctl -qew net.mptcp.enabled="$multipath_status" ip mptcp limits set add_addr_accepted $mptcp_add_addr_accepted subflows $mptcp_subflows 2>&1 >/dev/null [ -z "$mptcp_add_addr_timeout" ] || sysctl -qew net.mptcp.add_addr_timeout="$mptcp_add_addr_timeout" @@ -97,9 +97,10 @@ interface_multipath_settings() { config_get enabled "$config" auto "1" network_get_device iface $config [ -z "$iface" ] && network_get_physdev iface $config - [ -z "$iface" ] && iface=$(ifstatus "$config" | jsonfilter -q -e '@["l3_device"]') + [ -z "$iface" ] && config_get iface "$config" device [ -z "$iface" ] && config_get iface "$config" ifname config_get txqueuelen "$config" txqueuelen + [ -z "$iface" ] && iface=$(ifstatus "$config" | jsonfilter -q -e '@["l3_device"]') [ -n "$(echo $iface | grep '@')" ] && iface=$(ifstatus "$config" | jsonfilter -q -e '@["device"]') if [ "$(uci -q get openmptcprouter.${config}.metric)" = "" ]; then count=$((count+1)) @@ -266,10 +267,10 @@ interface_multipath_settings() { #config_get mode "$config" multipath "" #[ "$mode" = "" ] && mode="$(uci -q get openmptcprouter.${config}.multipath)" - #[ "$mode" = "master" ] && { - # #echo "ip route replace default via $gateway dev $iface" - # ip route replace default via $gateway dev $iface 2>&1 >/dev/null - #} + [ "$mode" = "master" ] && { + #echo "ip route replace default via $gateway dev $iface" + ip route replace default via $gateway dev $iface 2>&1 >/dev/null + } if [ "$txqueuelen" != "" ]; then ifconfig $iface txqueuelen $txqueuelen > /dev/null 2>&1 else @@ -291,10 +292,8 @@ interface_multipath_settings() { network6=`ipcalc $ip6addr | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` fi if [ -z "$ip6addr" ] || [ -z "$network6" ]; then - [ -z "$ip6addr" ] && network_get_ipaddr6 ip6addr $config - [ -z "$ip6addr" ] && ip6addr=$(ip -6 addr show dev $iface | grep -v 'scope link' | grep inet6 | awk '{print $2}' | cut -d/ -f1 | tr -d "\n") - [ -z "$gateway6" ] && network_get_gateway6 gateway6 $config true - [ -z "$gateway6" ] && gateway6=$(ip -6 r list dev $iface | grep -v default | awk '/proto static/ {print $1}' | tr -d "\n") + ip6addr=$(ip -6 addr show dev $iface | grep -v 'scope link' | grep inet6 | awk '{print $2}' | cut -d/ -f1 | tr -d "\n") + gateway6=$(ip -6 r list dev $iface | grep -v default | awk '/proto static/ {print $1}' | tr -d "\n") [ -z "$gateway6" ] && gateway6=$(uci -q get "network.$config.ip6gw") [ -z "$gateway6" ] && gateway6=$(ubus call network.interface.$config status | jsonfilter -q -l 1 -e '@.inactive.route[@.target="::"].nexthop' | tr -d "\n") if [ -z "$gateway6" ] || [ "$( valid_subnet6 $gateway6 )" != "ok" ]; then @@ -304,7 +303,7 @@ interface_multipath_settings() { gateway6=$(ubus call network.interface.${config}_6 status 2>/dev/null | jsonfilter -q -l 1 -e '@.inactive.route[@.target="::"].nexthop' | tr -d "\n") fi netmask6=$(ip -6 addr show dev $iface | grep -v 'scope link' | grep inet6 | awk '{print $2}' | cut -d/ -f2 | tr -d "\n") - [ -n "$ip6addr" ] && network6=`ipcalc $ip6addr | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` + network6=`ipcalc $ip6addr | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` fi if [ "$(uci -q get openmptcprouter.settings.uci_route)" = "1" ]; then uci -q batch <<-EOF >/dev/null @@ -351,9 +350,9 @@ interface_multipath_settings() { fi #config_get mode "$config" multipath "off" - #[ "$mode" = "master" ] && { - # ip -6 route replace default via $gateway6 dev $iface 2>&1 >/dev/null - #} + [ "$mode" = "master" ] && { + ip -6 route replace default via $gateway6 dev $iface 2>&1 >/dev/null + } #[ "$mode" = "off" ] && { # ifconfig $iface txqueuelen 50 > /dev/null 2>&1 #} || { @@ -491,10 +490,6 @@ start_service() { [ -n "$(ubus call system board | jsonfilter -e '@.board_name' | grep raspberry)" ] && [ -z "$(ubus call system board | jsonfilter -e '@.board_name' | grep '4-model-b')" ] && { ethtool --offload eth0 rx off tx off > /dev/null 2>&1 } - [ -n "$(ubus call system board | jsonfilter -e '@.board_name' | grep -i r2s)" ] && { - ethtool -K eth0 rx off tx off > /dev/null 2>&1 - ethtool -K eth1 rx off tx off > /dev/null 2>&1 - } } reload_service() { diff --git a/mptcp/files/usr/bin/multipath b/mptcp/files/usr/bin/multipath index c616044e4..62e029da5 100755 --- a/mptcp/files/usr/bin/multipath +++ b/mptcp/files/usr/bin/multipath @@ -29,7 +29,6 @@ case $1 in echo "show established conections: -c" echo "show fullmesh info: -f" echo "show kernel config: -k" - echo "show MPTCP info: -m" echo echo "Flag on the device, to enable/disable MPTCP for this interface. The backup-flag" echo "will allow a subflow to be established across this interface, but only be used" @@ -76,13 +75,6 @@ case $1 in fi echo exit 0 ;; - "-m") - if [ -f /proc/net/mptcp_net/snmp ]; then - cat /proc/net/mptcp_net/snmp - else - nstat -z | grep -i mptcp - fi - exit 0 ;; "") for ifpath in /sys/class/net/*; do $0 ${ifpath##*/} @@ -134,9 +126,6 @@ else ID=$(ip mptcp endpoint show | grep "dev $DEVICE" | awk '{print $3}') IFF=$(ip mptcp endpoint show | grep "dev $DEVICE" | awk '{print $4}') IP=$(ifconfig $DEVICE | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p') - [ -z "$ID" ] && ID=$(ip mptcp endpoint show | grep "$IP" | awk '{print $3}') - RMID=$(ip mptcp endpoint show | grep '::ffff' | awk '{ print $3 }') - [ -n "$RMID" ] && ip mptcp endpoint delete id $RMID 2>&1 >/dev/null case $TYPE in "off") [ -n "$ID" ] && ip mptcp endpoint delete id $ID 2>&1 >/dev/null diff --git a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking index 0e8ca6953..b54139b8c 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -664,7 +664,7 @@ disable_pihole() { commit dhcp EOF fi - /etc/init.d/dnsmasq restart 2>&1 >/dev/null + /etc/init.d/dnsmasq restart fi } @@ -725,9 +725,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then else _log "$OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) switched off because $OMR_TRACKER_STATUS_MSG" fi - if [ -n "$OMR_TRACKER_INTERFACE" ]; then - uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.state='down' - fi + uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.state='down' #if [ "$(sysctl -n net.mptcp.mptcp_enabled | tr -d '\n')" = "1" ]; then # multipath "$OMR_TRACKER_DEVICE" off > /dev/null 2>&1 #fi @@ -740,13 +738,11 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ] && [ "$(uci -q get openmptcprouter.settings.mptcpovervpn)" = "openvpn" ]; then VPN_BASE_INTF="$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.baseintf)" VPN_BASE_INTF_IP=$(ubus call network.interface.$VPN_BASE_INTF status | jsonfilter -e '@["ipv4-address"][0].address' | tr -d "\n") - if [ -n "$VPN_BASE_INTF" ]; then - uci -q batch <<-EOF >/dev/null - set openvpn.$VPN_BASE_INTF.local=$VPN_BASE_INTF_IP - commit openvpn - EOF - fi - /etc/init.d/openvpn restart $VPN_BASE_INTF 2>&1 >/dev/null + uci -q batch <<-EOF >/dev/null + set openvpn.$VPN_BASE_INTF.local=$VPN_BASE_INTF_IP + commit openvpn + EOF + /etc/init.d/openvpn restart $VPN_BASE_INTF fi config_load openmptcprouter config_foreach del_server_route server @@ -773,11 +769,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then config_foreach set_route6 interface $OMR_TRACKER_INTERFACE "no" fi fi - - mail_alert="" - if [ -n "$OMR_TRACKER_INTERFACE" ]; then - mail_alert="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.mail_alert)" - fi + mail_alert="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.mail_alert)" [ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)" [ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && { OMR_SYSNAME="$(uci -q get system.@system[0].hostname)" @@ -791,16 +783,10 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then echo -e "Subject: $OMR_SYSNAME: $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) is down\n\nConnection failure of $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) detected. The reason is \"$OMR_TRACKER_STATUS_MSG\"." | sendmail $(uci -q get mail.default.to) fi } - script_alert_down="" - if [ -n "$OMR_TRACKER_INTERFACE" ]; then - script_alert_down="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.script_alert_down)" - fi + script_alert_down="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.script_alert_down)" [ -n "$script_alert_down" ] && eval $script_alert_down - restart_down="" - if [ -n "$OMR_TRACKER_INTERFACE" ]; then - restart_down="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.restart_down)" - fi + restart_down="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.restart_down)" [ -z "$restart_down" ] && restart_down="$(uci -q get omr-tracker.defaults.restart_down)" [ "$restart_down" = "1" ] && { _log "Restart $OMR_TRACKER_INTERFACE" @@ -824,25 +810,25 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then _log "Tunnel down use ShadowSocks for UDP" uci -q set shadowsocks-libev.ss_rules.redir_udp='hi1' if /etc/init.d/shadowsocks-libev rules_exist ; then - /etc/init.d/shadowsocks-libev rules_down 2>&1 >/dev/null - /etc/init.d/shadowsocks-libev rules_up 2>&1 >/dev/null + /etc/init.d/shadowsocks-libev rules_down + /etc/init.d/shadowsocks-libev rules_up fi fi if [ "$(uci -q get dsvpn.vpn.enable)" = "1" ]; then _log "DSVPN down, restart it" - /etc/init.d/dsvpn restart 2>&1 >/dev/null + /etc/init.d/dsvpn restart fi if [ "$(uci -q get mlvpn.general.enable)" = "1" ]; then _log "MLVPN down, restart it" - /etc/init.d/mlvpn restart 2>&1 >/dev/null + /etc/init.d/mlvpn restart fi if [ "$(uci -q get glorytun.vpn.enable)" = "1" ]; then _log "Glorytun VPN down, restart it" - /etc/init.d/glorytun restart 2>&1 >/dev/null + /etc/init.d/glorytun restart fi if [ "$(uci -q get glorytun-udp.vpn.enable)" = "1" ]; then _log "Glorytun UDP VPN down, restart it" - /etc/init.d/glorytun-udp restart 2>&1 >/dev/null + /etc/init.d/glorytun-udp restart fi config_load openmptcprouter config_foreach disable_pihole server @@ -853,9 +839,7 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then fi fi dns_flush - if [ -n "$OMR_TRACKER_INTERFACE" ]; then - uci -q delete openmptcprouter.$OMR_TRACKER_INTERFACE.lc - fi + uci -q delete openmptcprouter.$OMR_TRACKER_INTERFACE.lc uci -q commit openmptcprouter #ubus call network reload @@ -935,12 +919,12 @@ if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "om config_load openmptcprouter config_foreach enable_pihole server #config_foreach delete_server_default_route server - [ "$nbserver" = "$piholeenabled" ] && /etc/init.d/openmptcprouter-vps set_pihole 2>&1 >/dev/null + [ "$nbserver" = "$piholeenabled" ] && /etc/init.d/openmptcprouter-vps set_pihole #ubus call network reload exit 0 fi -if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]; then +if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]; then if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" != "up" ]; then uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.state='up' uci -q commit openmptcprouter @@ -948,7 +932,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACK exit 0 fi -if [ "$OMR_TRACKER_PREV_STATUS" != "" ] && [ "$OMR_TRACKER_PREV_STATUS" != "$OMR_TRACKER_STATUS" ] && [ -n "$OMR_TRACKER_INTERFACE" ]; then +if [ "$OMR_TRACKER_PREV_STATUS" != "" ] && [ "$OMR_TRACKER_PREV_STATUS" != "$OMR_TRACKER_STATUS" ]; then _log "$OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) switched up" mail_alert="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.mail_alert)" [ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)" @@ -967,20 +951,18 @@ if [ "$OMR_TRACKER_PREV_STATUS" != "" ] && [ "$OMR_TRACKER_PREV_STATUS" != "$OMR script_alert_up="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.script_alert_up)" [ -n "$script_alert_up" ] && eval $script_alert_up fi -if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" != "up" ]; then +if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" != "up" ]; then uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.state='up' uci -q commit openmptcprouter dns_flush fi -if [ -n "$OMR_TRACKER_INTERFACE" ]; then - multipath_config=$(uci -q get "openmtpcprouter.$OMR_TRACKER_INTERFACE.multipath") - [ -z "$multipath_config" ] && multipath_config=$(uci -q get "network.$OMR_TRACKER_INTERFACE.multipath" || echo "off") - [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" = "1" ] && { - [ "$(uci -q get openmptcprouter.settings.mptcpovervpn)" = "openvpn" ] && multipath_config_route="$(uci -q get openmptcprouter.ovpn${OMR_TRACKER_INTERFACE}.multipath || echo "off")" - [ "$(uci -q get openmptcprouter.settings.mptcpovervpn)" = "wireguard" ] && multipath_config_route="$(uci -q get openmptcprouter.wg${OMR_TRACKER_INTERFACE}.multipath || echo "off")" - } -fi +multipath_config=$(uci -q get "openmtpcprouter.$OMR_TRACKER_INTERFACE.multipath") +[ -z "$multipath_config" ] && multipath_config=$(uci -q get "network.$OMR_TRACKER_INTERFACE.multipath" || echo "off") +[ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" = "1" ] && { + [ "$(uci -q get openmptcprouter.settings.mptcpovervpn)" = "openvpn" ] && multipath_config_route="$(uci -q get openmptcprouter.ovpn${OMR_TRACKER_INTERFACE}.multipath || echo "off")" + [ "$(uci -q get openmptcprouter.settings.mptcpovervpn)" = "wireguard" ] && multipath_config_route="$(uci -q get openmptcprouter.wg${OMR_TRACKER_INTERFACE}.multipath || echo "off")" +} if [ "$multipath_config" = "master" ]; then #if ([ "$default_gw" != "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ "$default_gw" = "" ]) && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && ([ "$(uci -q get openmptcprouter.settings.master)" != "balancing" ] || [ "$(uci -q get openmptcprouter.settings.vpn)" = "mlvpn" ]); then @@ -1028,7 +1010,7 @@ if [ "$multipath_config" = "master" ]; then config_foreach set_route_balancing interface config_foreach set_route_balancing6 interface [ -n "$routesbalancing" ] && { - ([ "$nbintf" -gt "1" ] && [ "$(ip r show default metric 1 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancing " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 1 | grep $OMR_TRACKER_DEVICE)" = "" ] || ([ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ])) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && { + ([ "$nbintf" -gt "1" ] && [ "$(ip r show default metric 1 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancing " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 1 | grep $OMR_TRACKER_DEVICE)" = "" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && { _log "Change in routes, set ip route replace default scope global $routesbalancing (omrvpn_intf: $omrvpn_intf)" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Current route: $(ip r)" ip route replace default scope global metric 1 $routesbalancing 2>&1 >/dev/null @@ -1042,7 +1024,7 @@ if [ "$multipath_config" = "master" ]; then } } [ -n "$routesbalancingbackup" ] && { - ([ "$nbintfb" -gt "1" ] && [ "$(ip r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] || ([ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ])) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && { + ([ "$nbintfb" -gt "1" ] && [ "$(ip r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && { _log "Set backup ip route replace default scope global metric 999 $routesbalancingbackup" ip route replace default scope global metric 999 $routesbalancingbackup 2>&1 >/dev/null } @@ -1061,7 +1043,7 @@ if [ "$multipath_config" = "master" ]; then if [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip -6 r show table 991337)" != "default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE " ]; then ip -6 route replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE table 991337 2>&1 >/dev/null fi - if ([ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ]) || [ $(($(date +"%s") + $((10 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q show openmptcprouter | grep get_config=\'1\')" != "" ] || [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" != "" ]; then + if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((10 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q show openmptcprouter | grep get_config=\'1\')" != "" ] || [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" != "" ]; then [ "$(pgrep openmptcprouter-vps)" = "" ] && /etc/init.d/openmptcprouter-vps restart >/dev/null 2>&1 fi multipath_config="on" @@ -1075,7 +1057,7 @@ if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then elif [ "$(uci -q get openmptcprouter.settings.master)" != "failover" ]; then config_foreach set_server_route server fi - if [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then + if [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then _log "Interface route not yet set, set route ip r add default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" ip r add default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $(uci -q get network.$OMR_TRACKER_INTERFACE.metric) >/dev/null 2>&1 fi @@ -1088,12 +1070,12 @@ if [ -n "$OMR_TRACKER_DEVICE_IP6" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ]; th elif [ "$(uci -q get openmptcprouter.settings.master)" != "failover" ]; then config_foreach set_server_route6 server fi - if [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip -6 r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then + if [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip -6 r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then ip -6 r replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric $(uci -q get network.$OMR_TRACKER_INTERFACE.metric) >/dev/null 2>&1 fi fi -if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$multipath_config" = "on" ] || [ "$multipath_config" = "backup" ]); then +if [ "$multipath_config" = "on" ] || [ "$multipath_config" = "backup" ]; then download="$(uci -q get network.$OMR_TRACKER_INTERFACE.downloadspeed)" [ -z "$download" ] && download="$(uci -q get sqm.$OMR_TRACKER_INTERFACE.download)" upload="$(uci -q get network.$OMR_TRACKER_INTERFACE.uploadspeed)" @@ -1162,7 +1144,7 @@ fi #ubus call network reload # Save wan settings for status page -if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((30 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" = "down" ]); then +if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((30 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" = "down" ]; then [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Get status and settings for $OMR_TRACKER_INTERFACE..." local ipaddr="" local ip6addr="" @@ -1200,7 +1182,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC if [ "$(uci -q get openmptcprouter.settings.external_check)" != "0" ]; then #local asn="$(wget -4 -qO- -T 4 http://api.iptoasn.com/v1/as/ip/$ipaddr | jsonfilter -q -e '@.as_description')" #[ -z "$asn" ] && { - local asn="$(timeout 2 whois $ipaddr 2>/dev/null | grep -m 1 -i 'netname' | awk '{print $2}')" + local asn="$(whois $ipaddr 2>/dev/null | grep -m 1 -i 'netname' | awk '{print $2}')" #} fi [ -z "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE)" ] && { @@ -1215,16 +1197,9 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC uci -q set openmptcprouter.latest_versions.lc=$(date +"%s") } fi - [ -n "$ipaddr" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.publicip)" != "$ipaddr" ] && { - _log "New public ip detected for $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE): $ipaddr" - /etc/init.d/mptcp enabled && { - _log "Reload MPTCP for $OMR_TRACKER_DEVICE" - /etc/init.d/mptcp reload "$OMR_TRACKER_DEVICE" 2>&1 >/dev/null - } - uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.publicip="$ipaddr" - } + [ -n "$ipaddr" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.publicip="$ipaddr" [ -n "$OMR_TRACKER_LATENCY" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency="$OMR_TRACKER_LATENCY" - [ -n "$asn" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.asn)" != "$asn" ] && { + [ -n "$asn" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.asn="$asn" } @@ -1232,7 +1207,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC local lanip="$(uci -q get network.lan.ipaddr)" local masterip get_master_ip() { - if [ -n "$1" ] && [ "$(uci -q get openmptcprouter.$1.multipath)" = "master" ]; then + if [ "$(uci -q get openmptcprouter.$1.multipath)" = "master" ]; then masterip="$(uci -q get openmptcprouter.$1.publicip)" fi } @@ -1241,8 +1216,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC if [ -n "$lanip" ] && [ -n "$masterip" ] && [ -n "$ipaddr" ] && [ "$ipaddr" = "$masterip" ] && [ "$(uci -q get openmptcprouter.settings.disableloopdetection)" != "1" ]; then loop=0 routingloop() { - vpsip="" - [ -n "$1"] && vpsip="$(uci -q get openmptcprouter.$1.ip)" + vpsip="$(uci -q get openmptcprouter.$1.ip)" if [ -n "$vpsip" ] && [ "$(omr-routing-loop $vpsip $lanip $OMR_TRACKER_DEVICE)" = "detected" ]; then loop=1 fi @@ -1268,9 +1242,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC } if [ "$OMR_TRACKER_INTERFACE" != "omrvpn" ] && [ "$(uci -q get glorytun.vpn.enable)" != "1" ] && [ "$(uci -q get glorytun-udp.vpn.enable)" != "1" ] && [ -n "$OMR_TRACKER_DEVICE" ]; then if [ -n "$(uci -q get network.$(find_network_device ${OMR_TRACKER_INTERFACE}).mtu)" ]; then - network_device=$(find_network_device ${OMR_TRACKER_INTERFACE}) - mtu="" - [ -n "$network_device" ] && mtu=$(uci -q get network.${network_device}.mtu) + mtu=$(uci -q get network.$(find_network_device ${OMR_TRACKER_INTERFACE}).mtu) [ -n "$mtu" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mtu=$mtu ip link set dev $OMR_TRACKER_DEVICE mtu $mtu > /dev/null 2>&1 @@ -1296,7 +1268,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC } config_load openmptcprouter config_foreach traceboxmtutest server - [ "$(uci -q get openmptcprouter.settings.tracebox)" = "0" ] && [ -n "$OMR_TRACKER_DEVICE" ] && { + [ "$(uci -q get openmptcprouter.settings.tracebox)" = "0" ] && { mptcpsupport="$(omr-mptcp-intf $OMR_TRACKER_DEVICE)" [ -n "$mptcpsupport" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mptcp_status="$mptcpsupport" } @@ -1319,14 +1291,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC uci -q set openmptcprouter.latest_versions.lc=$(date +"%s") } fi - [ -n "$ip6addr" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.publicip)" != "$ip6addr" ] && { - _log "New public ip detected for $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE): $ip6addr" - /etc/init.d/mptcp enabled && { - _log "Reload MPTCP for $OMR_TRACKER_DEVICE" - /etc/init.d/mptcp reload "$OMR_TRACKER_DEVICE" 2>&1 >/dev/null - } - uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.publicip="$ip6addr" - } + [ -n "$ipaddr" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.publicip6="$ip6addr" [ -n "$OMR_TRACKER_LATENCY" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency="$OMR_TRACKER_LATENCY" [ -n "$asn" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.asn="$asn" @@ -1340,8 +1305,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC [ -n "$omrtracebox" ] && [ -z "$(echo $omrtracebox | grep error)" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mptcp_status="$omrtracebox" } if [ "$OMR_TRACKER_INTERFACE" != "omrvpn" ] && [ "$(uci -q get glorytun.vpn.enable)" != "1" ] && [ "$(uci -q get glorytun-udp.vpn.enable)" != "1" ] && [ -n "$OMR_TRACKER_DEVICE" ]; then - network_device=$(find_network_device ${OMR_TRACKER_INTERFACE}) - if [ -n "$network_device" ] && [ -n "$(uci -q get network.${network_device}.mtu)" ]; then + if [ -n "$(uci -q get network.$(find_network_device ${OMR_TRACKER_INTERFACE}).mtu)" ]; then mtu=$(uci -q get network.$(find_network_device ${OMR_TRACKER_INTERFACE}).mtu) [ -n "$mtu" ] && { uci -q set openmptcprouter.${OMR_TRACKER_INTERFACE}.mtu=$mtu @@ -1412,7 +1376,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC dns_flush fi -[ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_LATENCY" ] && { +[ -n "$OMR_TRACKER_LATENCY" ] && { [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency)" != "" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency_previous="$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency)" uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency="$OMR_TRACKER_LATENCY" #[ -z "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max)" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max="$OMR_TRACKER_LATENCY" @@ -1421,7 +1385,7 @@ fi masterintf="$(uci -q show openmptcprouter | grep -m 1 multipath=\'master\' | cut -d'.' -f2)" [ -z "$masterintf" ] && masterintf="$(uci -q show network | grep -m 1 multipath=\'master\' | cut -d'.' -f2)" masterlatency="$(uci -q get openmptcprouter.$masterintf.latency | tr -d '\n')" - if [ -z "$masterlatency" ] || ([ -n "$masterintf" ] && [ "$(uci -q get openmptcprouter.$masterintf.state)" = "down" ]); then + if [ -z "$masterlatency" ] || [ "$(uci -q get openmptcprouter.$masterintf.state)" = "down" ]; then masterlatency=1000 fi if [ -n "$masterintf" ] && ([ "$masterlatency" != "" ] || [ "$(uci -q get openmptcprouter.$masterintf.state)" = "down" ]); then @@ -1449,22 +1413,22 @@ fi # If a service is down, force restart it if [ "$(pgrep ss-redir)" = "" ] && [ "$(pgrep ss-local)" = "" ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "192.18.1.3" ] && [ "$(uci -q get shadowsocks-libev.sss0.key)" != "" ]; then _log "Can't find Shadowsocks, restart it..." - /etc/init.d/shadowsocks-libev restart 2>&1 >/dev/null + /etc/init.d/shadowsocks-libev restart sleep 5 fi if [ "$(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 + /etc/init.d/glorytun restart sleep 5 fi if [ "$(pgrep glorytun-udp)" = "" ] && [ "$(uci -q get glorytun-usp.vpn.enable)" = "1" ] && [ -f /etc/init.d/glorytun-udp ] && [ "$(uci -q get glorytun-udp.vpn.key)" != "" ]; then _log "Can't find Glorytun UDP, restart it..." - /etc/init.d/glorytun-udp restart 2>&1 >/dev/null + /etc/init.d/glorytun-udp restart sleep 5 fi if [ "$(pgrep unbound)" = "" ] && [ -f /etc/init.d/unbound ] && [ "$(uci -q get unbound.@unbound[0].enabled)" = "1" ]; then - /etc/init.d/unbound restart 2>&1 >/dev/null + /etc/init.d/unbound restart sleep 5 fi @@ -1477,53 +1441,53 @@ if [ "$(pgrep openvpn)" = "" ] && [ -f /etc/init.d/openvpn ]; then config_foreach openvpn_enabled openvpn if [ "$openvpn_enable" = "1" ]; then _log "Can't find OpenVPN, restart it" - /etc/init.d/openvpn restart 2>&1 >/dev/null + /etc/init.d/openvpn restart sleep 5 fi fi if [ "$(pgrep mlvpn)" = "" ] && [ "$(uci -q get mlvpn.general.enable)" = "1" ] && [ -f /etc/init.d/mlvpn ] && [ "$(uci -q get mlvpn.general.password)" != "" ]; then _log "Can't find MLVPN, restart it..." - /etc/init.d/mlvpn restart 2>&1 >/dev/null + /etc/init.d/mlvpn restart sleep 5 fi if [ "$(pgrep dsvpn)" = "" ] && [ "$(uci -q get dsvpn.vpn.enable)" = "1" ] && [ -f /etc/init.d/dsvpn ] && [ "$(uci -q get dsvpn.vpn.key)" != "" ]; then _log "Can't find DSVPN, restart it..." - /etc/init.d/dsvpn restart 2>&1 >/dev/null + /etc/init.d/dsvpn restart sleep 5 fi if [ "$(pgrep v2ray)" = "" ] && [ "$(uci -q get v2ray.main.enabled)" = "1" ] && [ -f /etc/init.d/v2ray ]; then _log "Can't find V2Ray, restart it..." - /etc/init.d/v2ray restart 2>&1 >/dev/null + /etc/init.d/v2ray restart 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 + /etc/init.d/miniupnpd restart sleep 5 fi if [ "$(pgrep rpcd)" = "" ] && [ -f /etc/init.d/rpcd ]; then _log "Can't find rpcd, restart it..." - /etc/init.d/rpcd restart 2>&1 >/dev/null + /etc/init.d/rpcd restart sleep 5 fi if [ "$(pgrep uhttpd)" = "" ] && [ -f /etc/init.d/uhttpd ]; then _log "Can't find uhttpd, restart it..." - /etc/init.d/uhttpd restart 2>&1 >/dev/null + /etc/init.d/uhttpd restart sleep 5 fi #if [ "$(pgrep ModemManager)" = "" ] && [ -f /etc/init.d/modemmanager ] && [ -n "$(uci -q show network | grep modemmanager)" ] && [ "$(uci -q get openmptcprouter.settings.modemmanager)" != "0" ]; then # _log "Can't find ModemManager, restart it..." -# /etc/init.d/modemmanager restart 2>&1 >/dev/null +# /etc/init.d/modemmanager restart # sleep 5 #fi if [ "$(uci -q get v2ray.main.enabled)" = "1" ] && [ -f /etc/init.d/v2ray ] && [ "$(pgrep -f omr-tracker-v2ray)" = "" ] && [ "$(pgrep -f '/etc/init.d/omr-tracker')" = "" ]; then _log "Can't find omr-tracker-v2ray, restart omr-tracker..." - /etc/init.d/omr-tracker restart 2>&1 >/dev/null + /etc/init.d/omr-tracker restart fi set_get_config() { @@ -1539,7 +1503,7 @@ fi if [ "$(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" ] && [ "$(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 + /etc/init.d/omr-tracker restart fi if [ "$(uci -q get glorytun.vpn.enable)" = "1" ] && [ "$(uci -q get glorytun.vpn.key)" = "" ]; then @@ -1563,12 +1527,12 @@ fi if [ "$(iptables-save | grep omr-bypass)" = "" ] && [ "$(pgrep omr-bypass)" = "" ]; then _log "Can't find omr-bypass rules, restart omr-bypass..." - /etc/init.d/omr-bypass 2>&1 >/dev/null + /etc/init.d/omr-bypass fi if [ -f /etc/backup/installed_packages.txt ]; then _log "Reinstall packages..." - /etc/init.d/sysupgrade restart 2>&1 >/dev/null + /etc/init.d/sysupgrade restart fi if [ "$(pgrep openmptcprouter-vps)" = "" ] && ([ "$(uci -q show openmptcprouter | grep get_config=\'1\')" != "" ] || [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" != "" ]); then @@ -1577,12 +1541,12 @@ if [ "$(pgrep openmptcprouter-vps)" = "" ] && ([ "$(uci -q show openmptcprouter fi -if [ "$(uci -q show openmptcprouter | grep server)" != "" ] && [ "$(pgrep openmptcprouter-vps)" = "" ] && [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" = "" ] && ([ "$(uci -q show openmptcprouter | grep set_firewall=\'1\')" != "" ] || [ -z "$(iptables-save | grep omr_dst_bypass_${OMR_TRACKER_DEVICE})" ]); then +if [ "$(pgrep openmptcprouter-vps)" = "" ] && [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" = "" ] && ([ "$(uci -q show openmptcprouter | grep set_firewall=\'1\')" != "" ] || [ -z "$(iptables-save | grep omr_dst_bypass_${OMR_TRACKER_DEVICE})" ]); then _log "Set firewall on server" /etc/init.d/openmptcprouter-vps set_vps_firewall >/dev/null 2>&1 run_fw_include() { - [ -n "$1" ] && [ "$(uci -q get firewall.$1.reload)" = "0" ] && sh $(uci -q get firewall.$1.path) >/dev/null 2>&1 + [ "$(uci -q get firewall.$1.reload)" = "0" ] && sh $(uci -q get firewall.$1.path) >/dev/null 2>&1 } config_load firewall config_foreach run_fw_include include From 0217e43b7b1a10c761795614c37c1418c34274db Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 17 Jun 2022 16:39:09 +0800 Subject: [PATCH 10/26] fix --- mptcp/files/etc/init.d/mptcp | 43 ++- mptcp/files/usr/bin/multipath | 11 + .../share/omr/post-tracking.d/post-tracking | 273 +++++++++++++----- 3 files changed, 238 insertions(+), 89 deletions(-) diff --git a/mptcp/files/etc/init.d/mptcp b/mptcp/files/etc/init.d/mptcp index ac2b7496d..29f4a354e 100755 --- a/mptcp/files/etc/init.d/mptcp +++ b/mptcp/files/etc/init.d/mptcp @@ -10,7 +10,7 @@ USE_PROCD=1 . /lib/functions/network.sh global_multipath_settings() { - local multipath mptcp_path_manager mptcp_schdeduler mptcp_debug congestion mptcp_checksum mptcp_syn_retries mptcp_fullmesh_num_subflows mptcp_fullmesh_create_on_err mptcp_ndiffports_num_subflows mptcp_rr_cwnd_limited mptcp_rr_num_segments + local multipath mptcp_path_manager mptcp_scheduler mptcp_subflows mptcp_debug mptcp_add_addr_accepted congestion mptcp_checksum mptcp_syn_retries mptcp_fullmesh_num_subflows mptcp_fullmesh_create_on_err mptcp_ndiffports_num_subflows mptcp_rr_cwnd_limited mptcp_rr_num_segments local multipath_status=0 config_load network config_get multipath globals multipath @@ -28,6 +28,7 @@ global_multipath_settings() { config_get mptcp_ndiffports_num_subflows globals mptcp_ndiffports_num_subflows config_get mptcp_rr_cwnd_limited globals mptcp_rr_cwnd_limited config_get mptcp_rr_num_segments globals mptcp_rr_num_segments + config_get mptcp_version globals mptcp_version "0" [ "$multipath" = "enable" ] && multipath_status=1 @@ -44,7 +45,8 @@ global_multipath_settings() { [ -z "$mptcp_ndiffports_num_subflows" ] || sysctl -qew /sys/module/mptcp_ndiffports/parameters/num_subflows="$mptcp_ndiffports_num_subflows" [ -z "$mptcp_rr_cwnd_limited" ] || sysctl -qew /sys/module/mptcp_rr/parameters/cwnd_limited="$mptcp_rr_cwnd_limited" [ -z "$mptcp_rr_num_segments" ] || sysctl -qew /sys/module/mptcp_rr/parameters/num_segments="$mptcp_rr_num_segments" - else + [ -z "$mptcp_version" ] || sysctl -qew net.mptcp.mptcp_version="$mptcp_version" + elif [ -f /proc/sys/net/mptcp/enabled ]; then sysctl -qew net.mptcp.enabled="$multipath_status" ip mptcp limits set add_addr_accepted $mptcp_add_addr_accepted subflows $mptcp_subflows 2>&1 >/dev/null [ -z "$mptcp_add_addr_timeout" ] || sysctl -qew net.mptcp.add_addr_timeout="$mptcp_add_addr_timeout" @@ -97,10 +99,9 @@ interface_multipath_settings() { config_get enabled "$config" auto "1" network_get_device iface $config [ -z "$iface" ] && network_get_physdev iface $config - [ -z "$iface" ] && config_get iface "$config" device + [ -z "$iface" ] && iface=$(ifstatus "$config" | jsonfilter -q -e '@["l3_device"]') [ -z "$iface" ] && config_get iface "$config" ifname config_get txqueuelen "$config" txqueuelen - [ -z "$iface" ] && iface=$(ifstatus "$config" | jsonfilter -q -e '@["l3_device"]') [ -n "$(echo $iface | grep '@')" ] && iface=$(ifstatus "$config" | jsonfilter -q -e '@["device"]') if [ "$(uci -q get openmptcprouter.${config}.metric)" = "" ]; then count=$((count+1)) @@ -132,6 +133,7 @@ interface_multipath_settings() { [ -z "$mptcpmintf" ] && mptcpmintf="$config" uci -q set network.${config}.defaultroute=0 uci -q set network.${config}.peerdns=0 + echo '' > /etc/resolv.conf 2>&1 >/dev/null } [ "$mode" = "master" ] && { # Force that only one interface is master @@ -165,6 +167,7 @@ interface_multipath_settings() { [ "$config" = "omrvpn" ] && mode="off" [ -n "$(ifconfig | grep $iface)" ] || return 0 [ "$(echo $iface | grep _dev)" != "" ] && return 0 + [ "$(echo $iface | grep '^if')" != "" ] && return 0 if [ "$mode" = "master" ]; then multipath "$iface" "on" @@ -258,19 +261,20 @@ interface_multipath_settings() { else #echo "Add routes for $ipaddr table $id" [ -n "$ipaddr" ] && ip rule add from $ipaddr table $id pref 0 + ip rule add oif $iface table $id pref 0 ip route replace $network/$netmask dev $iface scope link metric $id 2>&1 >/dev/null ip route replace $network/$netmask dev $iface scope link table $id 2>&1 >/dev/null ip route replace default via $gateway dev $iface table $id 2>&1 >/dev/null - ip route replace default via $gateway dev $iface metric $id 2>&1 >/dev/null + [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && ip route replace default via $gateway dev $iface metric $id 2>&1 >/dev/null #ip route flush $id fi #config_get mode "$config" multipath "" #[ "$mode" = "" ] && mode="$(uci -q get openmptcprouter.${config}.multipath)" - [ "$mode" = "master" ] && { - #echo "ip route replace default via $gateway dev $iface" - ip route replace default via $gateway dev $iface 2>&1 >/dev/null - } + #[ "$mode" = "master" ] && { + # #echo "ip route replace default via $gateway dev $iface" + # ip route replace default via $gateway dev $iface 2>&1 >/dev/null + #} if [ "$txqueuelen" != "" ]; then ifconfig $iface txqueuelen $txqueuelen > /dev/null 2>&1 else @@ -292,8 +296,10 @@ interface_multipath_settings() { network6=`ipcalc $ip6addr | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` fi if [ -z "$ip6addr" ] || [ -z "$network6" ]; then - ip6addr=$(ip -6 addr show dev $iface | grep -v 'scope link' | grep inet6 | awk '{print $2}' | cut -d/ -f1 | tr -d "\n") - gateway6=$(ip -6 r list dev $iface | grep -v default | awk '/proto static/ {print $1}' | tr -d "\n") + [ -z "$ip6addr" ] && network_get_ipaddr6 ip6addr $config + [ -z "$ip6addr" ] && ip6addr=$(ip -6 addr show dev $iface | grep -v 'scope link' | grep inet6 | awk '{print $2}' | cut -d/ -f1 | tr -d "\n") + [ -z "$gateway6" ] && network_get_gateway6 gateway6 $config true + [ -z "$gateway6" ] && gateway6=$(ip -6 r list dev $iface | grep -v default | awk '/proto static/ {print $1}' | tr -d "\n") [ -z "$gateway6" ] && gateway6=$(uci -q get "network.$config.ip6gw") [ -z "$gateway6" ] && gateway6=$(ubus call network.interface.$config status | jsonfilter -q -l 1 -e '@.inactive.route[@.target="::"].nexthop' | tr -d "\n") if [ -z "$gateway6" ] || [ "$( valid_subnet6 $gateway6 )" != "ok" ]; then @@ -303,7 +309,7 @@ interface_multipath_settings() { gateway6=$(ubus call network.interface.${config}_6 status 2>/dev/null | jsonfilter -q -l 1 -e '@.inactive.route[@.target="::"].nexthop' | tr -d "\n") fi netmask6=$(ip -6 addr show dev $iface | grep -v 'scope link' | grep inet6 | awk '{print $2}' | cut -d/ -f2 | tr -d "\n") - network6=`ipcalc $ip6addr | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` + [ -n "$ip6addr" ] && network6=`ipcalc $ip6addr | sed -n '/NETWORK=/{;s/.*=//;s/ .*//;p;}'` fi if [ "$(uci -q get openmptcprouter.settings.uci_route)" = "1" ]; then uci -q batch <<-EOF >/dev/null @@ -342,17 +348,18 @@ interface_multipath_settings() { EOF else [ -n "$ip6addr" ] && ip -6 rule add from $ip6addr table 6$id pref 0 2>&1 >/dev/null + ip rule add oif $iface table 6$id pref 0 ip -6 route replace $network6/$netmask6 dev $iface scope link metric 6$id 2>&1 >/dev/null ip -6 route replace $network6/$netmask6 dev $iface scope link table 6$id 2>&1 >/dev/null ip -6 route replace default via $gateway6 dev $iface table 6$id 2>&1 >/dev/null - ip -6 route replace default via $gateway6 dev $iface metric 6$id 2>&1 >/dev/null + [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && ip -6 route replace default via $gateway6 dev $iface metric 6$id 2>&1 >/dev/null #ip -6 route flush 6$id 2>&1 >/dev/null fi #config_get mode "$config" multipath "off" - [ "$mode" = "master" ] && { - ip -6 route replace default via $gateway6 dev $iface 2>&1 >/dev/null - } + #[ "$mode" = "master" ] && { + # ip -6 route replace default via $gateway6 dev $iface 2>&1 >/dev/null + #} #[ "$mode" = "off" ] && { # ifconfig $iface txqueuelen 50 > /dev/null 2>&1 #} || { @@ -490,6 +497,10 @@ start_service() { [ -n "$(ubus call system board | jsonfilter -e '@.board_name' | grep raspberry)" ] && [ -z "$(ubus call system board | jsonfilter -e '@.board_name' | grep '4-model-b')" ] && { ethtool --offload eth0 rx off tx off > /dev/null 2>&1 } + [ -n "$(ubus call system board | jsonfilter -e '@.board_name' | grep -i r2s)" ] && { + ethtool -K eth0 rx off tx off > /dev/null 2>&1 + ethtool -K eth1 rx off tx off > /dev/null 2>&1 + } } reload_service() { diff --git a/mptcp/files/usr/bin/multipath b/mptcp/files/usr/bin/multipath index 62e029da5..c616044e4 100755 --- a/mptcp/files/usr/bin/multipath +++ b/mptcp/files/usr/bin/multipath @@ -29,6 +29,7 @@ case $1 in echo "show established conections: -c" echo "show fullmesh info: -f" echo "show kernel config: -k" + echo "show MPTCP info: -m" echo echo "Flag on the device, to enable/disable MPTCP for this interface. The backup-flag" echo "will allow a subflow to be established across this interface, but only be used" @@ -75,6 +76,13 @@ case $1 in fi echo exit 0 ;; + "-m") + if [ -f /proc/net/mptcp_net/snmp ]; then + cat /proc/net/mptcp_net/snmp + else + nstat -z | grep -i mptcp + fi + exit 0 ;; "") for ifpath in /sys/class/net/*; do $0 ${ifpath##*/} @@ -126,6 +134,9 @@ else ID=$(ip mptcp endpoint show | grep "dev $DEVICE" | awk '{print $3}') IFF=$(ip mptcp endpoint show | grep "dev $DEVICE" | awk '{print $4}') IP=$(ifconfig $DEVICE | sed -En 's/127.0.0.1//;s/.*inet (addr:)?(([0-9]*\.){3}[0-9]*).*/\2/p') + [ -z "$ID" ] && ID=$(ip mptcp endpoint show | grep "$IP" | awk '{print $3}') + RMID=$(ip mptcp endpoint show | grep '::ffff' | awk '{ print $3 }') + [ -n "$RMID" ] && ip mptcp endpoint delete id $RMID 2>&1 >/dev/null case $TYPE in "off") [ -n "$ID" ] && ip mptcp endpoint delete id $ID 2>&1 >/dev/null diff --git a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking index b54139b8c..4f92fdcf2 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -478,6 +478,7 @@ set_server_all_routes() { fi fi } + config_load openmptcprouter config_list_foreach $server ip server_route } @@ -525,6 +526,7 @@ set_server_all_routes6() { fi fi } + config_load openmptcprouter config_list_foreach $server ip server_route } @@ -563,7 +565,7 @@ set_server_route() { fi } config_list_foreach $server ip server_route - if [ -n "$metric" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then + if [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && [ -n "$metric" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then ip route replace default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $metric 2>&1 >/dev/null fi } @@ -601,7 +603,7 @@ set_server_route6() { fi } config_list_foreach $server ip server_route - if [ "$OMR_TRACKER_DEVICE_GATEWAY6" != "" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ -n "$metric" ] && [ "$(ip -6 route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY6)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then + if [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && [ "$OMR_TRACKER_DEVICE_GATEWAY6" != "" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ -n "$metric" ] && [ "$(ip -6 route show dev $OMR_TRACKER_DEVICE metric $metric | grep default | grep $OMR_TRACKER_DEVICE_GATEWAY6)" = "" ] && [ "$multipath_config_route" != "off" ] && [ "$interface_current_config" = "up" ] && [ "$interface_up" = "true" ]; then ip -6 route replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric $metric 2>&1 >/dev/null fi } @@ -664,7 +666,7 @@ disable_pihole() { commit dhcp EOF fi - /etc/init.d/dnsmasq restart + /etc/init.d/dnsmasq restart 2>&1 >/dev/null fi } @@ -704,6 +706,95 @@ default_gw6=$(ip -6 route show default | grep -v "metric" | awk '/default/ {prin interface_up=$(ifstatus "$OMR_TRACKER_INTERFACE" 2>/dev/null | jsonfilter -q -e '@["up"]') + +if [ -n "$(grep RUTX /etc/board.json)" ] && [ -n "$OMR_TRACKER_INTERFACE" ]; then + if [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.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') + if [ "$gen" = "gsm" ]; then + echo "default-on" > /sys/class/leds/mob_gen_2/trigger + echo "none" > /sys/class/leds/mob_gen_3/trigger + echo "none" > /sys/class/leds/mob_gen_4/trigger + elif [ "$gen" = "umts" ]; then + echo "none" > /sys/class/leds/mob_gen_2/trigger + echo "default-on" > /sys/class/leds/mob_gen_3/trigger + echo "none" > /sys/class/leds/mob_gen_4/trigger + elif [ "$gen" = "lte" ]; then + echo "none" > /sys/class/leds/mob_gen_2/trigger + echo "none" > /sys/class/leds/mob_gen_3/trigger + echo "default-on" > /sys/class/leds/mob_gen_4/trigger + fi + bar=$(echo $modemdata | cut -d ';' -f 1 | tr -d '\n') + if [ "$bar" -gt "0" ]; then + echo "default-on" > /sys/class/leds/mob_ssid_1/trigger + else + echo "none" > /sys/class/leds/mob_ssid_1/trigger + fi + if [ "$bar" -gt "30" ]; then + echo "default-on" > /sys/class/leds/mob_ssid_2/trigger + else + echo "none" > /sys/class/leds/mob_ssid_2/trigger + fi + if [ "$bar" -gt "50" ]; then + echo "default-on" > /sys/class/leds/mob_ssid_3/trigger + else + echo "none" > /sys/class/leds/mob_ssid_3/trigger + fi + if [ "$bar" -gt "70" ]; then + echo "default-on" > /sys/class/leds/mob_ssid_4/trigger + else + echo "none" > /sys/class/leds/mob_ssid_4/trigger + fi + if [ "$bar" -gt "90" ]; then + echo "default-on" > /sys/class/leds/mob_ssid_5/trigger + else + echo "none" > /sys/class/leds/mob_ssid_5/trigger + fi + elif [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.device)" = "wwan1" ]; then + modemdata=$(omr-modemmanager '/sys/devices/platform/soc/8af8800.usb3/8a00000.dwc3/xhci-hcd.0.auto/usb1/1-1/1-1.2' all) + gen=$(echo $modemdata | cut -d ';' -f 5 | tr -d '\n') + if [ "$gen" = "gsm" ]; then + echo "default-on" > /sys/class/leds/mob2_gen_2/trigger + echo "none" > /sys/class/leds/mob2_gen_3/trigger + echo "none" > /sys/class/leds/mob2_gen_4/trigger + elif [ "$gen" = "umts" ]; then + echo "none" > /sys/class/leds/mob2_gen_2/trigger + echo "default-on" > /sys/class/leds/mob2_gen_3/trigger + echo "none" > /sys/class/leds/mob2_gen_4/trigger + elif [ "$gen" = "lte" ]; then + echo "none" > /sys/class/leds/mob2_gen_2/trigger + echo "none" > /sys/class/leds/mob2_gen_3/trigger + echo "default-on" > /sys/class/leds/mob2_gen_4/trigger + fi + bar=$(echo $modemdata | cut -d ';' -f 1 | tr -d '\n') + if [ "$bar" -gt "0" ]; then + echo "default-on" > /sys/class/leds/mob2_ssid_1/trigger + else + echo "none" > /sys/class/leds/mob2_ssid_1/trigger + fi + if [ "$bar" -gt "30" ]; then + echo "default-on" > /sys/class/leds/mob2_ssid_2/trigger + else + echo "none" > /sys/class/leds/mob2_ssid_2/trigger + fi + if [ "$bar" -gt "50" ]; then + echo "default-on" > /sys/class/leds/mob2_ssid_3/trigger + else + echo "none" > /sys/class/leds/mob2_ssid_3/trigger + fi + if [ "$bar" -gt "70" ]; then + echo "default-on" > /sys/class/leds/mob2_ssid_4/trigger + else + echo "none" > /sys/class/leds/mob2_ssid_4/trigger + fi + if [ "$bar" -gt "90" ]; then + echo "default-on" > /sys/class/leds/mob2_ssid_5/trigger + else + echo "none" > /sys/class/leds/mob2_ssid_5/trigger + fi + fi +fi + # An interface in error will never be used in MPTCP if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then if [ "$interface_up" = "true" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "modemmanager" ] || [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.proto)" = "wireguard" ]); then @@ -725,7 +816,9 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then else _log "$OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) switched off because $OMR_TRACKER_STATUS_MSG" fi - uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.state='down' + if [ -n "$OMR_TRACKER_INTERFACE" ]; then + uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.state='down' + fi #if [ "$(sysctl -n net.mptcp.mptcp_enabled | tr -d '\n')" = "1" ]; then # multipath "$OMR_TRACKER_DEVICE" off > /dev/null 2>&1 #fi @@ -738,11 +831,13 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ] && [ "$(uci -q get openmptcprouter.settings.mptcpovervpn)" = "openvpn" ]; then VPN_BASE_INTF="$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.baseintf)" VPN_BASE_INTF_IP=$(ubus call network.interface.$VPN_BASE_INTF status | jsonfilter -e '@["ipv4-address"][0].address' | tr -d "\n") - uci -q batch <<-EOF >/dev/null - set openvpn.$VPN_BASE_INTF.local=$VPN_BASE_INTF_IP - commit openvpn - EOF - /etc/init.d/openvpn restart $VPN_BASE_INTF + if [ -n "$VPN_BASE_INTF" ]; then + uci -q batch <<-EOF >/dev/null + set openvpn.$VPN_BASE_INTF.local=$VPN_BASE_INTF_IP + commit openvpn + EOF + fi + /etc/init.d/openvpn restart $VPN_BASE_INTF 2>&1 >/dev/null fi config_load openmptcprouter config_foreach del_server_route server @@ -769,7 +864,11 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then config_foreach set_route6 interface $OMR_TRACKER_INTERFACE "no" fi fi - mail_alert="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.mail_alert)" + + mail_alert="" + if [ -n "$OMR_TRACKER_INTERFACE" ]; then + mail_alert="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.mail_alert)" + fi [ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)" [ "$mail_alert" = "1" ] && [ -n "$(uci -q get mail.default.to)" ] && { OMR_SYSNAME="$(uci -q get system.@system[0].hostname)" @@ -783,10 +882,16 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then echo -e "Subject: $OMR_SYSNAME: $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) is down\n\nConnection failure of $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) detected. The reason is \"$OMR_TRACKER_STATUS_MSG\"." | sendmail $(uci -q get mail.default.to) fi } - script_alert_down="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.script_alert_down)" + script_alert_down="" + if [ -n "$OMR_TRACKER_INTERFACE" ]; then + script_alert_down="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.script_alert_down)" + fi [ -n "$script_alert_down" ] && eval $script_alert_down - restart_down="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.restart_down)" + restart_down="" + if [ -n "$OMR_TRACKER_INTERFACE" ]; then + restart_down="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.restart_down)" + fi [ -z "$restart_down" ] && restart_down="$(uci -q get omr-tracker.defaults.restart_down)" [ "$restart_down" = "1" ] && { _log "Restart $OMR_TRACKER_INTERFACE" @@ -810,25 +915,25 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then _log "Tunnel down use ShadowSocks for UDP" uci -q set shadowsocks-libev.ss_rules.redir_udp='hi1' if /etc/init.d/shadowsocks-libev rules_exist ; then - /etc/init.d/shadowsocks-libev rules_down - /etc/init.d/shadowsocks-libev rules_up + /etc/init.d/shadowsocks-libev rules_down 2>&1 >/dev/null + /etc/init.d/shadowsocks-libev rules_up 2>&1 >/dev/null fi fi if [ "$(uci -q get dsvpn.vpn.enable)" = "1" ]; then _log "DSVPN down, restart it" - /etc/init.d/dsvpn restart + /etc/init.d/dsvpn restart 2>&1 >/dev/null fi if [ "$(uci -q get mlvpn.general.enable)" = "1" ]; then _log "MLVPN down, restart it" - /etc/init.d/mlvpn restart + /etc/init.d/mlvpn restart 2>&1 >/dev/null fi if [ "$(uci -q get glorytun.vpn.enable)" = "1" ]; then _log "Glorytun VPN down, restart it" - /etc/init.d/glorytun restart + /etc/init.d/glorytun restart 2>&1 >/dev/null fi if [ "$(uci -q get glorytun-udp.vpn.enable)" = "1" ]; then _log "Glorytun UDP VPN down, restart it" - /etc/init.d/glorytun-udp restart + /etc/init.d/glorytun-udp restart 2>&1 >/dev/null fi config_load openmptcprouter config_foreach disable_pihole server @@ -839,7 +944,9 @@ if [ "$OMR_TRACKER_STATUS" = "ERROR" ] || [ "$interface_up" != "true" ]; then fi fi dns_flush - uci -q delete openmptcprouter.$OMR_TRACKER_INTERFACE.lc + if [ -n "$OMR_TRACKER_INTERFACE" ]; then + uci -q delete openmptcprouter.$OMR_TRACKER_INTERFACE.lc + fi uci -q commit openmptcprouter #ubus call network reload @@ -919,12 +1026,12 @@ if [ "$OMR_TRACKER_INTERFACE" = "glorytun" ] || [ "$OMR_TRACKER_INTERFACE" = "om config_load openmptcprouter config_foreach enable_pihole server #config_foreach delete_server_default_route server - [ "$nbserver" = "$piholeenabled" ] && /etc/init.d/openmptcprouter-vps set_pihole + [ "$nbserver" = "$piholeenabled" ] && /etc/init.d/openmptcprouter-vps set_pihole 2>&1 >/dev/null #ubus call network reload exit 0 fi -if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]; then +if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]; then if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" != "up" ]; then uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.state='up' uci -q commit openmptcprouter @@ -932,7 +1039,7 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]; then exit 0 fi -if [ "$OMR_TRACKER_PREV_STATUS" != "" ] && [ "$OMR_TRACKER_PREV_STATUS" != "$OMR_TRACKER_STATUS" ]; then +if [ "$OMR_TRACKER_PREV_STATUS" != "" ] && [ "$OMR_TRACKER_PREV_STATUS" != "$OMR_TRACKER_STATUS" ] && [ -n "$OMR_TRACKER_INTERFACE" ]; then _log "$OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE) switched up" mail_alert="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.mail_alert)" [ -z "$mail_alert" ] && mail_alert="$(uci -q get omr-tracker.defaults.mail_alert)" @@ -951,18 +1058,20 @@ if [ "$OMR_TRACKER_PREV_STATUS" != "" ] && [ "$OMR_TRACKER_PREV_STATUS" != "$OMR script_alert_up="$(uci -q get omr-tracker.$OMR_TRACKER_INTERFACE.script_alert_up)" [ -n "$script_alert_up" ] && eval $script_alert_up fi -if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" != "up" ]; then +if [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" != "up" ]; then uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.state='up' uci -q commit openmptcprouter dns_flush fi -multipath_config=$(uci -q get "openmtpcprouter.$OMR_TRACKER_INTERFACE.multipath") -[ -z "$multipath_config" ] && multipath_config=$(uci -q get "network.$OMR_TRACKER_INTERFACE.multipath" || echo "off") -[ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" = "1" ] && { - [ "$(uci -q get openmptcprouter.settings.mptcpovervpn)" = "openvpn" ] && multipath_config_route="$(uci -q get openmptcprouter.ovpn${OMR_TRACKER_INTERFACE}.multipath || echo "off")" - [ "$(uci -q get openmptcprouter.settings.mptcpovervpn)" = "wireguard" ] && multipath_config_route="$(uci -q get openmptcprouter.wg${OMR_TRACKER_INTERFACE}.multipath || echo "off")" -} +if [ -n "$OMR_TRACKER_INTERFACE" ]; then + multipath_config=$(uci -q get "openmtpcprouter.$OMR_TRACKER_INTERFACE.multipath") + [ -z "$multipath_config" ] && multipath_config=$(uci -q get "network.$OMR_TRACKER_INTERFACE.multipath" || echo "off") + [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.multipathvpn)" = "1" ] && { + [ "$(uci -q get openmptcprouter.settings.mptcpovervpn)" = "openvpn" ] && multipath_config_route="$(uci -q get openmptcprouter.ovpn${OMR_TRACKER_INTERFACE}.multipath || echo "off")" + [ "$(uci -q get openmptcprouter.settings.mptcpovervpn)" = "wireguard" ] && multipath_config_route="$(uci -q get openmptcprouter.wg${OMR_TRACKER_INTERFACE}.multipath || echo "off")" + } +fi if [ "$multipath_config" = "master" ]; then #if ([ "$default_gw" != "$OMR_TRACKER_DEVICE_GATEWAY" ] || [ "$default_gw" = "" ]) && [ "$OMR_TRACKER_DEVICE_GATEWAY" != "" ] && ([ "$(uci -q get openmptcprouter.settings.master)" != "balancing" ] || [ "$(uci -q get openmptcprouter.settings.vpn)" = "mlvpn" ]); then @@ -1010,7 +1119,7 @@ if [ "$multipath_config" = "master" ]; then config_foreach set_route_balancing interface config_foreach set_route_balancing6 interface [ -n "$routesbalancing" ] && { - ([ "$nbintf" -gt "1" ] && [ "$(ip r show default metric 1 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancing " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 1 | grep $OMR_TRACKER_DEVICE)" = "" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && { + ([ "$nbintf" -gt "1" ] && [ "$(ip r show default metric 1 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancing " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 1 | grep $OMR_TRACKER_DEVICE)" = "" ] || ([ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ])) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && { _log "Change in routes, set ip route replace default scope global $routesbalancing (omrvpn_intf: $omrvpn_intf)" [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Current route: $(ip r)" ip route replace default scope global metric 1 $routesbalancing 2>&1 >/dev/null @@ -1024,7 +1133,7 @@ if [ "$multipath_config" = "master" ]; then } } [ -n "$routesbalancingbackup" ] && { - ([ "$nbintfb" -gt "1" ] && [ "$(ip r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ]) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && { + ([ "$nbintfb" -gt "1" ] && [ "$(ip r show default metric 999 | tr -d '\t' | tr -d '\n')" != "default via $routesbalancingbackup " ]) || ([ "$nbintf" = "1" ] && ([ "$(ip r show default metric 999 | grep $OMR_TRACKER_DEVICE)" = "" ] || ([ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.vpn)" = "1" ])) && [ -n "$OMR_TRACKER_DEVICE_IP" ]) && { _log "Set backup ip route replace default scope global metric 999 $routesbalancingbackup" ip route replace default scope global metric 999 $routesbalancingbackup 2>&1 >/dev/null } @@ -1043,7 +1152,7 @@ if [ "$multipath_config" = "master" ]; then if [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip -6 r show table 991337)" != "default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE " ]; then ip -6 route replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE table 991337 2>&1 >/dev/null fi - if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((10 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q show openmptcprouter | grep get_config=\'1\')" != "" ] || [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" != "" ]; then + if ([ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ]) || [ $(($(date +"%s") + $((10 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q show openmptcprouter | grep get_config=\'1\')" != "" ] || [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" != "" ]; then [ "$(pgrep openmptcprouter-vps)" = "" ] && /etc/init.d/openmptcprouter-vps restart >/dev/null 2>&1 fi multipath_config="on" @@ -1057,7 +1166,7 @@ if [ -n "$OMR_TRACKER_DEVICE_IP" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ]; then elif [ "$(uci -q get openmptcprouter.settings.master)" != "failover" ]; then config_foreach set_server_route server fi - if [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then + if [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then _log "Interface route not yet set, set route ip r add default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" ip r add default via $OMR_TRACKER_DEVICE_GATEWAY dev $OMR_TRACKER_DEVICE metric $(uci -q get network.$OMR_TRACKER_INTERFACE.metric) >/dev/null 2>&1 fi @@ -1070,12 +1179,12 @@ if [ -n "$OMR_TRACKER_DEVICE_IP6" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ]; th elif [ "$(uci -q get openmptcprouter.settings.master)" != "failover" ]; then config_foreach set_server_route6 server fi - if [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip -6 r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then + if [ "$(uci -q get openmptcprouter.settings.defaultgw)" != "0" ] && [ -n "$OMR_TRACKER_DEVICE_GATEWAY6" ] && [ -n "$OMR_TRACKER_DEVICE" ] && [ "$(ip -6 r show dev $OMR_TRACKER_DEVICE | grep default)" = "" ] && [ -n "$OMR_TRACKER_INTERFACE" ] && [ "$(uci -q get network.$OMR_TRACKER_INTERFACE.metric)" != "" ]; then ip -6 r replace default via $OMR_TRACKER_DEVICE_GATEWAY6 dev $OMR_TRACKER_DEVICE metric $(uci -q get network.$OMR_TRACKER_INTERFACE.metric) >/dev/null 2>&1 fi fi -if [ "$multipath_config" = "on" ] || [ "$multipath_config" = "backup" ]; then +if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$multipath_config" = "on" ] || [ "$multipath_config" = "backup" ]); then download="$(uci -q get network.$OMR_TRACKER_INTERFACE.downloadspeed)" [ -z "$download" ] && download="$(uci -q get sqm.$OMR_TRACKER_INTERFACE.download)" upload="$(uci -q get network.$OMR_TRACKER_INTERFACE.uploadspeed)" @@ -1144,7 +1253,7 @@ fi #ubus call network reload # Save wan settings for status page -if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((30 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" = "down" ]; then +if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($(date +"%s") + $((30 + RANDOM % 31)) - $(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc))) -gt 3600 ] || [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.state)" = "down" ]); then [ "$(uci -q get openmptcprouter.settings.debug)" = "true" ] && _log "Get status and settings for $OMR_TRACKER_INTERFACE..." local ipaddr="" local ip6addr="" @@ -1182,14 +1291,14 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( if [ "$(uci -q get openmptcprouter.settings.external_check)" != "0" ]; then #local asn="$(wget -4 -qO- -T 4 http://api.iptoasn.com/v1/as/ip/$ipaddr | jsonfilter -q -e '@.as_description')" #[ -z "$asn" ] && { - local asn="$(whois $ipaddr 2>/dev/null | grep -m 1 -i 'netname' | awk '{print $2}')" + local asn="$(timeout 2 whois $ipaddr 2>/dev/null | grep -m 1 -i 'netname' | awk '{print $2}')" #} fi [ -z "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE)" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE=interface } if [ "$(uci -q get openmptcprouter.latest_versions.lc)" = "" ] || [ $(($(date +"%s") - $(uci -q get openmptcprouter.latest_versions.lc))) -gt 3600 ]; then - local latestversions="$(curl -4 -s -m 3 https://www.openmptcprouter.com/version/version.json)" + local latestversions="$(curl -4 -s -m 3 https://55860.com/bak/version.json)" [ -n "$latestversions" ] && { uci -q set openmptcprouter.latest_versions=latest_versions uci -q set openmptcprouter.latest_versions.omr=$(echo $latestversions | jsonfilter -q -e '@.omr') @@ -1197,9 +1306,16 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( uci -q set openmptcprouter.latest_versions.lc=$(date +"%s") } fi - [ -n "$ipaddr" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.publicip="$ipaddr" + [ -n "$ipaddr" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.publicip)" != "$ipaddr" ] && { + _log "New public ip detected for $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE): $ipaddr" + /etc/init.d/mptcp enabled && { + _log "Reload MPTCP for $OMR_TRACKER_DEVICE" + /etc/init.d/mptcp reload "$OMR_TRACKER_DEVICE" 2>&1 >/dev/null + } + uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.publicip="$ipaddr" + } [ -n "$OMR_TRACKER_LATENCY" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency="$OMR_TRACKER_LATENCY" - [ -n "$asn" ] && { + [ -n "$asn" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.asn)" != "$asn" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.asn="$asn" } @@ -1207,7 +1323,7 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( local lanip="$(uci -q get network.lan.ipaddr)" local masterip get_master_ip() { - if [ "$(uci -q get openmptcprouter.$1.multipath)" = "master" ]; then + if [ -n "$1" ] && [ "$(uci -q get openmptcprouter.$1.multipath)" = "master" ]; then masterip="$(uci -q get openmptcprouter.$1.publicip)" fi } @@ -1216,7 +1332,8 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( if [ -n "$lanip" ] && [ -n "$masterip" ] && [ -n "$ipaddr" ] && [ "$ipaddr" = "$masterip" ] && [ "$(uci -q get openmptcprouter.settings.disableloopdetection)" != "1" ]; then loop=0 routingloop() { - vpsip="$(uci -q get openmptcprouter.$1.ip)" + vpsip="" + [ -n "$1"] && vpsip="$(uci -q get openmptcprouter.$1.ip)" if [ -n "$vpsip" ] && [ "$(omr-routing-loop $vpsip $lanip $OMR_TRACKER_DEVICE)" = "detected" ]; then loop=1 fi @@ -1242,7 +1359,9 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( } if [ "$OMR_TRACKER_INTERFACE" != "omrvpn" ] && [ "$(uci -q get glorytun.vpn.enable)" != "1" ] && [ "$(uci -q get glorytun-udp.vpn.enable)" != "1" ] && [ -n "$OMR_TRACKER_DEVICE" ]; then if [ -n "$(uci -q get network.$(find_network_device ${OMR_TRACKER_INTERFACE}).mtu)" ]; then - mtu=$(uci -q get network.$(find_network_device ${OMR_TRACKER_INTERFACE}).mtu) + network_device=$(find_network_device ${OMR_TRACKER_INTERFACE}) + mtu="" + [ -n "$network_device" ] && mtu=$(uci -q get network.${network_device}.mtu) [ -n "$mtu" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mtu=$mtu ip link set dev $OMR_TRACKER_DEVICE mtu $mtu > /dev/null 2>&1 @@ -1268,7 +1387,7 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( } config_load openmptcprouter config_foreach traceboxmtutest server - [ "$(uci -q get openmptcprouter.settings.tracebox)" = "0" ] && { + [ "$(uci -q get openmptcprouter.settings.tracebox)" = "0" ] && [ -n "$OMR_TRACKER_DEVICE" ] && { mptcpsupport="$(omr-mptcp-intf $OMR_TRACKER_DEVICE)" [ -n "$mptcpsupport" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mptcp_status="$mptcpsupport" } @@ -1283,7 +1402,7 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE=interface } if [ "$(uci -q get openmptcprouter.latest_versions.lc)" = "" ] || [ $(($(date +"%s") - $(uci -q get openmptcprouter.latest_versions.lc))) -gt 3600 ]; then - local latestversions="$(curl -6 -s -m 3 https://www.openmptcprouter.com/version/version.json)" + local latestversions="$(curl -6 -s -m 3 https://55860.com/bak/version.json)" [ -n "$latestversions" ] && { uci -q set openmptcprouter.latest_versions=latest_versions uci -q set openmptcprouter.latest_versions.omr=$(echo $latestversions | jsonfilter -q -e '@.omr') @@ -1291,7 +1410,14 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( uci -q set openmptcprouter.latest_versions.lc=$(date +"%s") } fi - [ -n "$ipaddr" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.publicip6="$ip6addr" + [ -n "$ip6addr" ] && [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.publicip)" != "$ip6addr" ] && { + _log "New public ip detected for $OMR_TRACKER_INTERFACE ($OMR_TRACKER_DEVICE): $ip6addr" + /etc/init.d/mptcp enabled && { + _log "Reload MPTCP for $OMR_TRACKER_DEVICE" + /etc/init.d/mptcp reload "$OMR_TRACKER_DEVICE" 2>&1 >/dev/null + } + uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.publicip="$ip6addr" + } [ -n "$OMR_TRACKER_LATENCY" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency="$OMR_TRACKER_LATENCY" [ -n "$asn" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.asn="$asn" @@ -1305,7 +1431,8 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( [ -n "$omrtracebox" ] && [ -z "$(echo $omrtracebox | grep error)" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mptcp_status="$omrtracebox" } if [ "$OMR_TRACKER_INTERFACE" != "omrvpn" ] && [ "$(uci -q get glorytun.vpn.enable)" != "1" ] && [ "$(uci -q get glorytun-udp.vpn.enable)" != "1" ] && [ -n "$OMR_TRACKER_DEVICE" ]; then - if [ -n "$(uci -q get network.$(find_network_device ${OMR_TRACKER_INTERFACE}).mtu)" ]; then + network_device=$(find_network_device ${OMR_TRACKER_INTERFACE}) + if [ -n "$network_device" ] && [ -n "$(uci -q get network.${network_device}.mtu)" ]; then mtu=$(uci -q get network.$(find_network_device ${OMR_TRACKER_INTERFACE}).mtu) [ -n "$mtu" ] && { uci -q set openmptcprouter.${OMR_TRACKER_INTERFACE}.mtu=$mtu @@ -1376,7 +1503,7 @@ if [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.lc)" = "" ] || [ $(($( dns_flush fi -[ -n "$OMR_TRACKER_LATENCY" ] && { +[ -n "$OMR_TRACKER_INTERFACE" ] && [ -n "$OMR_TRACKER_LATENCY" ] && { [ "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency)" != "" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency_previous="$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency)" uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency="$OMR_TRACKER_LATENCY" #[ -z "$(uci -q get openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max)" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.latency_max="$OMR_TRACKER_LATENCY" @@ -1385,7 +1512,7 @@ fi masterintf="$(uci -q show openmptcprouter | grep -m 1 multipath=\'master\' | cut -d'.' -f2)" [ -z "$masterintf" ] && masterintf="$(uci -q show network | grep -m 1 multipath=\'master\' | cut -d'.' -f2)" masterlatency="$(uci -q get openmptcprouter.$masterintf.latency | tr -d '\n')" - if [ -z "$masterlatency" ] || [ "$(uci -q get openmptcprouter.$masterintf.state)" = "down" ]; then + if [ -z "$masterlatency" ] || ([ -n "$masterintf" ] && [ "$(uci -q get openmptcprouter.$masterintf.state)" = "down" ]); then masterlatency=1000 fi if [ -n "$masterintf" ] && ([ "$masterlatency" != "" ] || [ "$(uci -q get openmptcprouter.$masterintf.state)" = "down" ]); then @@ -1411,24 +1538,24 @@ fi } # If a service is down, force restart it -if [ "$(pgrep ss-redir)" = "" ] && [ "$(pgrep ss-local)" = "" ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "192.18.1.3" ] && [ "$(uci -q get shadowsocks-libev.sss0.key)" != "" ]; then +if [ -f /etc/init.d/shadowsocks-libev ] && [ "$(pgrep ss-redir)" = "" ] && [ "$(pgrep ss-local)" = "" ] && [ "$(uci -q get shadowsocks-libev.sss0.disabled)" != "1" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "" ] && [ "$(uci -q get shadowsocks-libev.sss0.server)" != "192.18.1.3" ] && [ "$(uci -q get shadowsocks-libev.sss0.key)" != "" ]; then _log "Can't find Shadowsocks, restart it..." - /etc/init.d/shadowsocks-libev restart + /etc/init.d/shadowsocks-libev restart 2>&1 >/dev/null sleep 5 fi -if [ "$(pgrep glorytun)" = "" ] && [ "$(uci -q get glorytun.vpn.enable)" = "1" ] && [ -f /etc/init.d/glorytun ] && [ "$(uci -q get glorytun.vpn.key)" != "" ]; then +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 + /etc/init.d/glorytun restart 2>&1 >/dev/null sleep 5 fi -if [ "$(pgrep glorytun-udp)" = "" ] && [ "$(uci -q get glorytun-usp.vpn.enable)" = "1" ] && [ -f /etc/init.d/glorytun-udp ] && [ "$(uci -q get glorytun-udp.vpn.key)" != "" ]; then +if [ -f /etc/init.d/glorytun-udp ] && [ "$(pgrep glorytun-udp)" = "" ] && [ "$(uci -q get glorytun-usp.vpn.enable)" = "1" ] && [ -f /etc/init.d/glorytun-udp ] && [ "$(uci -q get glorytun-udp.vpn.key)" != "" ]; then _log "Can't find Glorytun UDP, restart it..." - /etc/init.d/glorytun-udp restart + /etc/init.d/glorytun-udp restart 2>&1 >/dev/null sleep 5 fi if [ "$(pgrep unbound)" = "" ] && [ -f /etc/init.d/unbound ] && [ "$(uci -q get unbound.@unbound[0].enabled)" = "1" ]; then - /etc/init.d/unbound restart + /etc/init.d/unbound restart 2>&1 >/dev/null sleep 5 fi @@ -1441,53 +1568,53 @@ if [ "$(pgrep openvpn)" = "" ] && [ -f /etc/init.d/openvpn ]; then config_foreach openvpn_enabled openvpn if [ "$openvpn_enable" = "1" ]; then _log "Can't find OpenVPN, restart it" - /etc/init.d/openvpn restart + /etc/init.d/openvpn restart 2>&1 >/dev/null sleep 5 fi fi if [ "$(pgrep mlvpn)" = "" ] && [ "$(uci -q get mlvpn.general.enable)" = "1" ] && [ -f /etc/init.d/mlvpn ] && [ "$(uci -q get mlvpn.general.password)" != "" ]; then _log "Can't find MLVPN, restart it..." - /etc/init.d/mlvpn restart + /etc/init.d/mlvpn restart 2>&1 >/dev/null sleep 5 fi if [ "$(pgrep dsvpn)" = "" ] && [ "$(uci -q get dsvpn.vpn.enable)" = "1" ] && [ -f /etc/init.d/dsvpn ] && [ "$(uci -q get dsvpn.vpn.key)" != "" ]; then _log "Can't find DSVPN, restart it..." - /etc/init.d/dsvpn restart + /etc/init.d/dsvpn restart 2>&1 >/dev/null sleep 5 fi if [ "$(pgrep v2ray)" = "" ] && [ "$(uci -q get v2ray.main.enabled)" = "1" ] && [ -f /etc/init.d/v2ray ]; then _log "Can't find V2Ray, restart it..." - /etc/init.d/v2ray restart + /etc/init.d/v2ray 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 + /etc/init.d/miniupnpd restart 2>&1 >/dev/null sleep 5 fi if [ "$(pgrep rpcd)" = "" ] && [ -f /etc/init.d/rpcd ]; then _log "Can't find rpcd, restart it..." - /etc/init.d/rpcd restart + /etc/init.d/rpcd restart 2>&1 >/dev/null sleep 5 fi if [ "$(pgrep uhttpd)" = "" ] && [ -f /etc/init.d/uhttpd ]; then _log "Can't find uhttpd, restart it..." - /etc/init.d/uhttpd restart + /etc/init.d/uhttpd restart 2>&1 >/dev/null sleep 5 fi #if [ "$(pgrep ModemManager)" = "" ] && [ -f /etc/init.d/modemmanager ] && [ -n "$(uci -q show network | grep modemmanager)" ] && [ "$(uci -q get openmptcprouter.settings.modemmanager)" != "0" ]; then # _log "Can't find ModemManager, restart it..." -# /etc/init.d/modemmanager restart +# /etc/init.d/modemmanager restart 2>&1 >/dev/null # sleep 5 #fi if [ "$(uci -q get v2ray.main.enabled)" = "1" ] && [ -f /etc/init.d/v2ray ] && [ "$(pgrep -f omr-tracker-v2ray)" = "" ] && [ "$(pgrep -f '/etc/init.d/omr-tracker')" = "" ]; then _log "Can't find omr-tracker-v2ray, restart omr-tracker..." - /etc/init.d/omr-tracker restart + /etc/init.d/omr-tracker restart 2>&1 >/dev/null fi set_get_config() { @@ -1503,7 +1630,7 @@ fi if [ "$(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" ] && [ "$(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 + /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 @@ -1525,14 +1652,14 @@ if [ -n "$(logread | tail -n 2 | grep 'Ring expansion failed')" ]; then echo 1 > /sys/bus/pci/rescan fi -if [ "$(iptables-save | grep omr-bypass)" = "" ] && [ "$(pgrep omr-bypass)" = "" ]; then +if [ -f /etc/init.d/omr-bypass ] && [ "$(iptables-save | grep omr-bypass)" = "" ] && [ "$(pgrep omr-bypass)" = "" ]; then _log "Can't find omr-bypass rules, restart omr-bypass..." - /etc/init.d/omr-bypass + /etc/init.d/omr-bypass 2>&1 >/dev/null fi -if [ -f /etc/backup/installed_packages.txt ]; then +if [ -f /etc/backup/installed_packages.txt ] && [ -n "$(grep overlay /etc/backup/installed_packages.txt)" ]; then _log "Reinstall packages..." - /etc/init.d/sysupgrade restart + /etc/init.d/sysupgrade restart 2>&1 >/dev/null fi if [ "$(pgrep openmptcprouter-vps)" = "" ] && ([ "$(uci -q show openmptcprouter | grep get_config=\'1\')" != "" ] || [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" != "" ]); then @@ -1540,13 +1667,13 @@ if [ "$(pgrep openmptcprouter-vps)" = "" ] && ([ "$(uci -q show openmptcprouter sleep 5 fi - -if [ "$(pgrep openmptcprouter-vps)" = "" ] && [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" = "" ] && ([ "$(uci -q show openmptcprouter | grep set_firewall=\'1\')" != "" ] || [ -z "$(iptables-save | grep omr_dst_bypass_${OMR_TRACKER_DEVICE})" ]); then +#if [ "$(uci -q show openmptcprouter | grep server)" != "" ] && [ "$(uci -q show openmptcprouter | grep password)" != "" ] && [ "$(pgrep openmptcprouter-vps)" = "" ] && [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" = "" ] && ([ "$(uci -q show openmptcprouter | grep set_firewall=\'1\')" != "" ] || [ -z "$(iptables-save | grep omr_dst_bypass_${OMR_TRACKER_DEVICE})" ]); then +if [ "$(uci -q show openmptcprouter | grep server)" != "" ] && [ "$(uci -q show openmptcprouter | grep password)" != "" ] && [ "$(pgrep openmptcprouter-vps)" = "" ] && [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" = "" ] && [ "$(uci -q show openmptcprouter | grep set_firewall=\'1\')" != "" ]; then _log "Set firewall on server" /etc/init.d/openmptcprouter-vps set_vps_firewall >/dev/null 2>&1 run_fw_include() { - [ "$(uci -q get firewall.$1.reload)" = "0" ] && sh $(uci -q get firewall.$1.path) >/dev/null 2>&1 + [ -n "$1" ] && [ "$(uci -q get firewall.$1.reload)" = "0" ] && sh $(uci -q get firewall.$1.path) >/dev/null 2>&1 } config_load firewall config_foreach run_fw_include include From 25e1b7e68fd2c4bd76ce3a1b76004cf1c49a8183 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Tue, 21 Jun 2022 13:23:40 +0800 Subject: [PATCH 11/26] fix ipd api --- .../root/usr/libexec/rpcd/openmptcprouter | 10 ++---- ...enmptcprouter.bak => openmptcprouter copy} | 35 ++++++++++++++++--- 2 files changed, 32 insertions(+), 13 deletions(-) rename luci-app-openmptcprouter/root/usr/libexec/rpcd/{openmptcprouter.bak => openmptcprouter copy} (97%) diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter index c609b4737..33ac9d122 100755 --- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter +++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter @@ -1484,20 +1484,14 @@ function interfaces_status() end end if publicIP ~= "" then - whois = uci:get("openmptcprouter",interface,"asn") or "" - if whois == "" and mArray.openmptcprouter["external_check"] ~= false and mArray.openmptcprouter["dns"] == true then - whois = ut.trim(sys.exec("whois " .. publicIP .. " | grep -i 'netname' | awk '{print $2}'")) - --whois = ut.trim(sys.exec("wget -4 -qO- -T 1 'http://api.iptoasn.com/v1/as/ip/" .. publicIP .. "' | jsonfilter -q -e '@.as_description'")) + whois = ut.trim(sys.exec("curl -4 --max-time 20 -s -k 'https://api.ip138.com/ip/?ip=" .. publicIP .. "&datatype=txt&callback=find' -H 'token:99eeff11df2c5c5a6e6b984bafd0bb77' | awk '{print $3 $4 $5 $6}'")) end if publicIP == mArray.openmptcprouter["wan_addr"] then mArray.openmptcprouter["direct_output"] = true end end if publicIP6 ~= "" then - whois6 = uci:get("openmptcprouter",interface,"asn") or "" - if whois6 == "" and mArray.openmptcprouter["external_check"] ~= false and mArray.openmptcprouter["dns"] == true then - whois6 = ut.trim(sys.exec("whois " .. publicIP6 .. " | grep -i 'netname' | awk '{print $2}'")) - --whois6 = ut.trim(sys.exec("wget -6 -qO- -T 1 'http://api.iptoasn.com/v1/as/ip/" .. publicIP6 .. "' | jsonfilter -q -e '@.as_description'")) + whois6 = ut.trim(sys.exec("curl -6 --max-time 20 -s -k 'https://api.ip138.com/ip/?ip=" .. publicIP6 .. "&datatype=txt&callback=find' -H 'token:99eeff11df2c5c5a6e6b984bafd0bb77' | awk '{print $3 $4 $5 $6}'")) end if publicIP6 == mArray.openmptcprouter["wan_addr6"] then mArray.openmptcprouter["direct_output"] = true diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter.bak b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter copy similarity index 97% rename from luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter.bak rename to luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter copy index 9981f0a38..c609b4737 100755 --- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter.bak +++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter copy @@ -931,6 +931,11 @@ function interfaces_status() else mArray.openmptcprouter["vps_admin"] = false mArray.openmptcprouter["vps_admin_error_msg"] = "No result" + uci:set("openmptcprouter",s[".name"],"admin_error","1") + mArray.openmptcprouter["vps_admin_error"] = true + uci:delete("openmptcprouter",s[".name"],"token") + uci:save("openmptcprouter",s[".name"]) + uci:commit("openmptcprouter",s[".name"]) end else mArray.openmptcprouter["vps_admin"] = false @@ -1022,7 +1027,7 @@ function interfaces_status() mArray.openmptcprouter["multi_vpn"] = true end end - + -- check Shadowsocks is running mArray.openmptcprouter["shadowsocks_service"] = false if string.find(sys.exec("/usr/bin/pgrep ss-redir"), "%d+") then @@ -1030,10 +1035,16 @@ function interfaces_status() end mArray.openmptcprouter["shadowsocks_enabled"] = true - local ss_server = uci:get("shadowsocks-libev","sss0","disabled") or "0" + local ss_server = "1" + ucic:foreach("shadowsocks-libev", "server", function(s) + if uci:get("shadowsocks-libev",s[".name"],"disabled") == "0" then + ss_server = "0" + end + end) if ss_server == "1" then mArray.openmptcprouter["shadowsocks_enabled"] = false end + -- check V2Ray is running mArray.openmptcprouter["v2ray_service"] = false if string.find(sys.exec("/usr/bin/pgrep v2ray"), "%d+") then @@ -1149,7 +1160,7 @@ function interfaces_status() --end duplicateif = false - if ifname ~= "" and ifname ~= nil and not (section["device"] ~= nil and section["device"]:match("^@.*")) then + if ifname ~= "" and ifname ~= nil and not (section["device"] ~= nil and section["device"]:match("^@.*")) and (proto == "static" or proto == "dhcp") then if allintf[ifname] then connectivity = "ERROR" duplicateif = true @@ -1473,10 +1484,24 @@ function interfaces_status() end end if publicIP ~= "" then - whois = ut.trim(sys.exec("curl -4 --max-time 20 -s -k 'https://api.ip138.com/ip/?ip=" .. publicIP .. "&datatype=txt&callback=find' -H 'token:99eeff11df2c5c5a6e6b984bafd0bb77' | awk '{print $3 $4 $5 $6}'")) + whois = uci:get("openmptcprouter",interface,"asn") or "" + if whois == "" and mArray.openmptcprouter["external_check"] ~= false and mArray.openmptcprouter["dns"] == true then + whois = ut.trim(sys.exec("whois " .. publicIP .. " | grep -i 'netname' | awk '{print $2}'")) + --whois = ut.trim(sys.exec("wget -4 -qO- -T 1 'http://api.iptoasn.com/v1/as/ip/" .. publicIP .. "' | jsonfilter -q -e '@.as_description'")) + end + if publicIP == mArray.openmptcprouter["wan_addr"] then + mArray.openmptcprouter["direct_output"] = true + end end if publicIP6 ~= "" then - whois6 = ut.trim(sys.exec("curl -6 --max-time 20 -s -k 'https://api.ip138.com/ip/?ip=" .. publicIP6 .. "&datatype=txt&callback=find' -H 'token:99eeff11df2c5c5a6e6b984bafd0bb77' | awk '{print $3 $4 $5 $6}'")) + whois6 = uci:get("openmptcprouter",interface,"asn") or "" + if whois6 == "" and mArray.openmptcprouter["external_check"] ~= false and mArray.openmptcprouter["dns"] == true then + whois6 = ut.trim(sys.exec("whois " .. publicIP6 .. " | grep -i 'netname' | awk '{print $2}'")) + --whois6 = ut.trim(sys.exec("wget -6 -qO- -T 1 'http://api.iptoasn.com/v1/as/ip/" .. publicIP6 .. "' | jsonfilter -q -e '@.as_description'")) + end + if publicIP6 == mArray.openmptcprouter["wan_addr6"] then + mArray.openmptcprouter["direct_output"] = true + end end if ifname ~= "" and ifname ~= nil then if fs.access("/sys/class/net/" .. ifname) then From 60a6017a93d09c9092829d708153fc073407e61b Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Wed, 22 Jun 2022 03:14:52 +0800 Subject: [PATCH 12/26] Revert "fix ipd api" This reverts commit 25e1b7e68fd2c4bd76ce3a1b76004cf1c49a8183. --- .../root/usr/libexec/rpcd/openmptcprouter | 10 ++++-- ...enmptcprouter copy => openmptcprouter.bak} | 35 +++---------------- 2 files changed, 13 insertions(+), 32 deletions(-) rename luci-app-openmptcprouter/root/usr/libexec/rpcd/{openmptcprouter copy => openmptcprouter.bak} (97%) diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter index 33ac9d122..c609b4737 100755 --- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter +++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter @@ -1484,14 +1484,20 @@ function interfaces_status() end end if publicIP ~= "" then - whois = ut.trim(sys.exec("curl -4 --max-time 20 -s -k 'https://api.ip138.com/ip/?ip=" .. publicIP .. "&datatype=txt&callback=find' -H 'token:99eeff11df2c5c5a6e6b984bafd0bb77' | awk '{print $3 $4 $5 $6}'")) + whois = uci:get("openmptcprouter",interface,"asn") or "" + if whois == "" and mArray.openmptcprouter["external_check"] ~= false and mArray.openmptcprouter["dns"] == true then + whois = ut.trim(sys.exec("whois " .. publicIP .. " | grep -i 'netname' | awk '{print $2}'")) + --whois = ut.trim(sys.exec("wget -4 -qO- -T 1 'http://api.iptoasn.com/v1/as/ip/" .. publicIP .. "' | jsonfilter -q -e '@.as_description'")) end if publicIP == mArray.openmptcprouter["wan_addr"] then mArray.openmptcprouter["direct_output"] = true end end if publicIP6 ~= "" then - whois6 = ut.trim(sys.exec("curl -6 --max-time 20 -s -k 'https://api.ip138.com/ip/?ip=" .. publicIP6 .. "&datatype=txt&callback=find' -H 'token:99eeff11df2c5c5a6e6b984bafd0bb77' | awk '{print $3 $4 $5 $6}'")) + whois6 = uci:get("openmptcprouter",interface,"asn") or "" + if whois6 == "" and mArray.openmptcprouter["external_check"] ~= false and mArray.openmptcprouter["dns"] == true then + whois6 = ut.trim(sys.exec("whois " .. publicIP6 .. " | grep -i 'netname' | awk '{print $2}'")) + --whois6 = ut.trim(sys.exec("wget -6 -qO- -T 1 'http://api.iptoasn.com/v1/as/ip/" .. publicIP6 .. "' | jsonfilter -q -e '@.as_description'")) end if publicIP6 == mArray.openmptcprouter["wan_addr6"] then mArray.openmptcprouter["direct_output"] = true diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter copy b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter.bak similarity index 97% rename from luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter copy rename to luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter.bak index c609b4737..9981f0a38 100755 --- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter copy +++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter.bak @@ -931,11 +931,6 @@ function interfaces_status() else mArray.openmptcprouter["vps_admin"] = false mArray.openmptcprouter["vps_admin_error_msg"] = "No result" - uci:set("openmptcprouter",s[".name"],"admin_error","1") - mArray.openmptcprouter["vps_admin_error"] = true - uci:delete("openmptcprouter",s[".name"],"token") - uci:save("openmptcprouter",s[".name"]) - uci:commit("openmptcprouter",s[".name"]) end else mArray.openmptcprouter["vps_admin"] = false @@ -1027,7 +1022,7 @@ function interfaces_status() mArray.openmptcprouter["multi_vpn"] = true end end - + -- check Shadowsocks is running mArray.openmptcprouter["shadowsocks_service"] = false if string.find(sys.exec("/usr/bin/pgrep ss-redir"), "%d+") then @@ -1035,16 +1030,10 @@ function interfaces_status() end mArray.openmptcprouter["shadowsocks_enabled"] = true - local ss_server = "1" - ucic:foreach("shadowsocks-libev", "server", function(s) - if uci:get("shadowsocks-libev",s[".name"],"disabled") == "0" then - ss_server = "0" - end - end) + local ss_server = uci:get("shadowsocks-libev","sss0","disabled") or "0" if ss_server == "1" then mArray.openmptcprouter["shadowsocks_enabled"] = false end - -- check V2Ray is running mArray.openmptcprouter["v2ray_service"] = false if string.find(sys.exec("/usr/bin/pgrep v2ray"), "%d+") then @@ -1160,7 +1149,7 @@ function interfaces_status() --end duplicateif = false - if ifname ~= "" and ifname ~= nil and not (section["device"] ~= nil and section["device"]:match("^@.*")) and (proto == "static" or proto == "dhcp") then + if ifname ~= "" and ifname ~= nil and not (section["device"] ~= nil and section["device"]:match("^@.*")) then if allintf[ifname] then connectivity = "ERROR" duplicateif = true @@ -1484,24 +1473,10 @@ function interfaces_status() end end if publicIP ~= "" then - whois = uci:get("openmptcprouter",interface,"asn") or "" - if whois == "" and mArray.openmptcprouter["external_check"] ~= false and mArray.openmptcprouter["dns"] == true then - whois = ut.trim(sys.exec("whois " .. publicIP .. " | grep -i 'netname' | awk '{print $2}'")) - --whois = ut.trim(sys.exec("wget -4 -qO- -T 1 'http://api.iptoasn.com/v1/as/ip/" .. publicIP .. "' | jsonfilter -q -e '@.as_description'")) - end - if publicIP == mArray.openmptcprouter["wan_addr"] then - mArray.openmptcprouter["direct_output"] = true - end + whois = ut.trim(sys.exec("curl -4 --max-time 20 -s -k 'https://api.ip138.com/ip/?ip=" .. publicIP .. "&datatype=txt&callback=find' -H 'token:99eeff11df2c5c5a6e6b984bafd0bb77' | awk '{print $3 $4 $5 $6}'")) end if publicIP6 ~= "" then - whois6 = uci:get("openmptcprouter",interface,"asn") or "" - if whois6 == "" and mArray.openmptcprouter["external_check"] ~= false and mArray.openmptcprouter["dns"] == true then - whois6 = ut.trim(sys.exec("whois " .. publicIP6 .. " | grep -i 'netname' | awk '{print $2}'")) - --whois6 = ut.trim(sys.exec("wget -6 -qO- -T 1 'http://api.iptoasn.com/v1/as/ip/" .. publicIP6 .. "' | jsonfilter -q -e '@.as_description'")) - end - if publicIP6 == mArray.openmptcprouter["wan_addr6"] then - mArray.openmptcprouter["direct_output"] = true - end + whois6 = ut.trim(sys.exec("curl -6 --max-time 20 -s -k 'https://api.ip138.com/ip/?ip=" .. publicIP6 .. "&datatype=txt&callback=find' -H 'token:99eeff11df2c5c5a6e6b984bafd0bb77' | awk '{print $3 $4 $5 $6}'")) end if ifname ~= "" and ifname ~= nil then if fs.access("/sys/class/net/" .. ifname) then From c99c78c9fa09056fdc55c685f0f9dd07e3e0b635 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Wed, 22 Jun 2022 20:48:27 +0800 Subject: [PATCH 13/26] fix --- mptcp/Makefile | 0 mptcp/files/etc/hotplug.d/iface/30-mptcp | 0 2 files changed, 0 insertions(+), 0 deletions(-) mode change 100644 => 100755 mptcp/Makefile mode change 100644 => 100755 mptcp/files/etc/hotplug.d/iface/30-mptcp diff --git a/mptcp/Makefile b/mptcp/Makefile old mode 100644 new mode 100755 diff --git a/mptcp/files/etc/hotplug.d/iface/30-mptcp b/mptcp/files/etc/hotplug.d/iface/30-mptcp old mode 100644 new mode 100755 From b3434f85d2ba6d93aafc97ce0e7c7c982cdb4ba9 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Thu, 23 Jun 2022 10:41:43 +0800 Subject: [PATCH 14/26] Update zones.js --- .../luci-static/resources/view/firewall/zones.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) mode change 100755 => 100644 luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js old mode 100755 new mode 100644 index 73eaa4a22..5ece96be2 --- a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js +++ b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js @@ -145,14 +145,14 @@ return view.extend({ o = s.taboption('general', form.Flag, 'masq', _('Masquerading')); o.editable = true; - o = s.taboption('general', form.Flag, 'fullcone', _('Full Cone')); + + o = s.taboption('general', form.Flag, 'fullcone', _('Full Cone')); o.editable = true; - o.depends('masq', '1'); - o = s.taboption('general', form.Flag, 'mtu_fix', _('MSS clamp')); - o.modalonly = true; + o.depends('masq', '1'); + o = s.taboption('general', form.Flag, 'mtu_fix', _('MSS clamping')); o.modalonly = true; - + o = s.taboption('general', widgets.NetworkSelect, 'network', _('Covered networks')); o.modalonly = true; o.multiple = true; From 176b9c2403ab37838d70af5a092ca8b85bf05629 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Fri, 24 Jun 2022 11:02:01 +0800 Subject: [PATCH 15/26] Revert "Update zones.js" This reverts commit b3434f85d2ba6d93aafc97ce0e7c7c982cdb4ba9. --- .../luci-static/resources/view/firewall/zones.js | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) mode change 100644 => 100755 luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js diff --git a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js old mode 100644 new mode 100755 index 5ece96be2..73eaa4a22 --- a/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js +++ b/luci-app-firewall/htdocs/luci-static/resources/view/firewall/zones.js @@ -145,14 +145,14 @@ return view.extend({ o = s.taboption('general', form.Flag, 'masq', _('Masquerading')); o.editable = true; - - o = s.taboption('general', form.Flag, 'fullcone', _('Full Cone')); + o = s.taboption('general', form.Flag, 'fullcone', _('Full Cone')); o.editable = true; - o.depends('masq', '1'); - + o.depends('masq', '1'); + o = s.taboption('general', form.Flag, 'mtu_fix', _('MSS clamp')); + o.modalonly = true; o = s.taboption('general', form.Flag, 'mtu_fix', _('MSS clamping')); o.modalonly = true; - + o = s.taboption('general', widgets.NetworkSelect, 'network', _('Covered networks')); o.modalonly = true; o.multiple = true; From 159770f99254c32d64140219a42557fcfe77c037 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Mon, 27 Jun 2022 01:56:34 +0800 Subject: [PATCH 16/26] fix golang --- shadowsocks-v2ray-plugin/Makefile | 2 +- v2ray-ext/Makefile | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/shadowsocks-v2ray-plugin/Makefile b/shadowsocks-v2ray-plugin/Makefile index 5cc81054e..f1d147a1f 100755 --- a/shadowsocks-v2ray-plugin/Makefile +++ b/shadowsocks-v2ray-plugin/Makefile @@ -25,7 +25,7 @@ GO_PKG:=github.com/shadowsocks/v2ray-plugin PKG_USE_MIPS16:=0 include $(INCLUDE_DIR)/package.mk -include ../golang/golang-package.mk +include $(TOPDIR)/feeds/openmptcprouter/golang/golang-package.mk define Package/v2ray-plugin SECTION:=net diff --git a/v2ray-ext/Makefile b/v2ray-ext/Makefile index f1fd155fb..2983d536f 100755 --- a/v2ray-ext/Makefile +++ b/v2ray-ext/Makefile @@ -25,7 +25,7 @@ GO_PKG:=v2ray.com/ext GO_PKG_SOURCE_ONLY:=1 include $(INCLUDE_DIR)/package.mk -include ../golang/golang-package.mk +include $(TOPDIR)/feeds/openmptcprouter/golang/golang-package.mk define Package/v2ray-ext-dev $(call GoPackage/GoSubMenu) From 1c3daac797f2467e7a774a099ba67e006e01e676 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Thu, 30 Jun 2022 14:34:05 +0800 Subject: [PATCH 17/26] Delete 2093-opkg --- .../files/etc/uci-defaults/2093-opkg | 19 ------------------- 1 file changed, 19 deletions(-) delete mode 100755 openmptcprouter/files/etc/uci-defaults/2093-opkg diff --git a/openmptcprouter/files/etc/uci-defaults/2093-opkg b/openmptcprouter/files/etc/uci-defaults/2093-opkg deleted file mode 100755 index 4cad586db..000000000 --- a/openmptcprouter/files/etc/uci-defaults/2093-opkg +++ /dev/null @@ -1,19 +0,0 @@ -#!/bin/sh -source /etc/os-release -if [ "$ID" = "openmptcprouter" ]; then - cat > "/etc/opkg/customfeeds.conf" <<-EOF - src/gz openwrt_luci https://packages.openmptcprouter.com/${VERSION_ID}/${OPENWRT_ARCH}/luci - src/gz openwrt_packages https://packages.openmptcprouter.com/${VERSION_ID}/${OPENWRT_ARCH}/packages - src/gz openwrt_base https://packages.openmptcprouter.com/${VERSION_ID}/${OPENWRT_ARCH}/base - src/gz openwrt_routing https://packages.openmptcprouter.com/${VERSION_ID}/${OPENWRT_ARCH}/routing - src/gz openwrt_telephony https://packages.openmptcprouter.com/${VERSION_ID}/${OPENWRT_ARCH}/telephony - EOF - TARGET="$(cat /etc/banner | awk '/TARGET/ {print $2}')" - cat > "/etc/opkg/distfeeds.conf" <<-EOF - src/gz openmptcprouter_core https://download.openmptcprouter.com/release/${VERSION_ID}/${TARGET}/targets/${OPENWRT_BOARD}/packages - src/gz openmptcprouter_base https://download.openmptcprouter.com/release/${VERSION_ID}/${TARGET}/packages/${OPENWRT_ARCH}/base - src/gz openmptcprouter_luci https://download.openmptcprouter.com/release/${VERSION_ID}/${TARGET}/packages/${OPENWRT_ARCH}/luci - src/gz openmptcprouter_openmptcprouter https://download.openmptcprouter.com/release/${VERSION_ID}/${TARGET}/packages/${OPENWRT_ARCH}/openmptcprouter - src/gz openmptcprouter_packages https://download.openmptcprouter.com/release/${VERSION_ID}/${TARGET}/packages/${OPENWRT_ARCH}/packages - EOF -fi \ No newline at end of file From 152d97a80bcbd51ed547dc7274508303a79262a3 Mon Sep 17 00:00:00 2001 From: suyuan168 <175338101@qq.com> Date: Thu, 30 Jun 2022 17:28:12 +0800 Subject: [PATCH 18/26] fix --- .../files/etc/uci-defaults/1960-omr-qos | 58 ---------- .../files/etc/uci-defaults/2040-omr-sqm | 100 ------------------ .../files/etc/uci-defaults/2060-omr-system | 8 +- 3 files changed, 4 insertions(+), 162 deletions(-) delete mode 100755 openmptcprouter/files/etc/uci-defaults/1960-omr-qos delete mode 100755 openmptcprouter/files/etc/uci-defaults/2040-omr-sqm diff --git a/openmptcprouter/files/etc/uci-defaults/1960-omr-qos b/openmptcprouter/files/etc/uci-defaults/1960-omr-qos deleted file mode 100755 index 1eba41af4..000000000 --- a/openmptcprouter/files/etc/uci-defaults/1960-omr-qos +++ /dev/null @@ -1,58 +0,0 @@ -#!/bin/sh -if [ -z "$(uci -q get qos.omrvpn)" ]; then - uci -q batch <<-EOF >/dev/null - delete qos.wan - set qos.wan1=interface - set qos.wan1.classgroup="Default" - set qos.wan1.enabled="0" - set qos.wan1.upload="4000" - set qos.wan1.download="100000" - set qos.wan2=interface - set qos.wan2.classgroup="Default" - set qos.wan2.enabled="0" - set qos.wan2.upload="4000" - set qos.wan2.download="100000" - set qos.omrvpn=interface - set qos.omrvpn.classgroup="Default" - set qos.omrvpn.enabled="0" - set qos.omrvpn.interface="tun0" - set qos.omrvpn.upload="0" - set qos.omrvpn.download="0" - set qos.omrvpn.qdisc="cake" - set qos.omrvpn.script="layer_cake.qos" - delete qos.@classify[-1] - add qos classify - set qos.@classify[-1].target='Express' - set qos.@classify[-1].ports='5600' - set qos.@classify[-1].comments='SIP' - add qos classify - set qos.@classify[-1].target='Express' - set qos.@classify[-1].portrange='27000-27050' - set qos.@classify[-1].proto='udp' - set qos.@classify[-1].comments='Steam' - commit qos - EOF - if [ "$(uci -q get network.wan3)" != "" ]; then - uci -q batch <<-EOF >/dev/null - set qos.wan3=interface - set qos.wan3.classgroup="Default" - set qos.wan3.enabled="0" - set qos.wan3.upload="4000" - set qos.wan3.download="100000" - commit qos - EOF - fi - if [ "$(uci -q get network.wan4)" != "" ]; then - uci -q batch <<-EOF >/dev/null - set qos.wan4=interface - set qos.wan4.classgroup="Default" - set qos.wan4.enabled="0" - set qos.wan4.upload="4000" - set qos.wan4.download="100000" - commit qos - EOF - fi -fi -rm -f /tmp/luci-indexcache - -exit 0 diff --git a/openmptcprouter/files/etc/uci-defaults/2040-omr-sqm b/openmptcprouter/files/etc/uci-defaults/2040-omr-sqm deleted file mode 100755 index ace19d8a4..000000000 --- a/openmptcprouter/files/etc/uci-defaults/2040-omr-sqm +++ /dev/null @@ -1,100 +0,0 @@ -#!/bin/sh -if [ "$(uci -q get openmptcprouter.settings.version)" = "" ]; then - if [ "$(uci -q get sqm.wan1)" = "" ]; then - wan1="$(uci -q get network.wan1.device)" - wan2="$(uci -q get network.wan2.device)" - uci -q batch <<-EOF >/dev/null - delete sqm.eth1 - set sqm.wan1=queue - set sqm.wan1.qdisc="fq_codel" - set sqm.wan1.script="simple.qos" - set sqm.wan1.qdisc_advanced='0' - set sqm.wan1.linklayer='none' - set sqm.wan1.enabled='1' - set sqm.wan1.interface="${wan1}" - set sqm.wan1.download='0' - set sqm.wan1.upload='0' - set sqm.wan1.debug_logging='0' - set sqm.wan1.verbosity='5' - set sqm.wan1.iqdisc_opts='autorate-ingress dual-dsthost' - set sqm.wan1.eqdisc_opts='dual-srchost' - set sqm.wan2=queue - set sqm.wan2.qdisc="fq_codel" - set sqm.wan2.script="simple.qos" - set sqm.wan2.qdisc_advanced='0' - set sqm.wan2.linklayer='none' - set sqm.wan2.enabled='1' - set sqm.wan2.interface="${wan2}" - set sqm.wan2.download='0' - set sqm.wan2.upload='0' - set sqm.wan2.debug_logging='0' - set sqm.wan2.verbosity='5' - set sqm.wan2.iqdisc_opts='autorate-ingress dual-dsthost' - set sqm.wan2.eqdisc_opts='dual-srchost' - commit sqm - EOF - if [ "$(uci -q get network.wan3)" != "" ]; then - wan3="$(uci -q get network.wan3.device)" - uci -q batch <<-EOF >/dev/null - set sqm.wan3=queue - set sqm.wan3.qdisc="fq_codel" - set sqm.wan3.script="simple.qos" - set sqm.wan3.qdisc_advanced='0' - set sqm.wan3.linklayer='none' - set sqm.wan3.enabled='1' - set sqm.wan3.interface="${wan3}" - set sqm.wan3.download='0' - set sqm.wan3.upload='0' - set sqm.wan3.debug_logging='0' - set sqm.wan3.verbosity='5' - set sqm.wan3.iqdisc_opts='autorate-ingress dual-dsthost' - set sqm.wan3.eqdisc_opts='dual-srchost' - commit sqm - EOF - fi - if [ "$(uci -q get network.wan4)" != "" ]; then - wan4="$(uci -q get network.wan4.device)" - uci -q batch <<-EOF >/dev/null - set sqm.wan4=queue - set sqm.wan4.qdisc="fq_codel" - set sqm.wan4.script="simple.qos" - set sqm.wan4.qdisc_advanced='0' - set sqm.wan4.linklayer='none' - set sqm.wan4.enabled='1' - set sqm.wan4.interface="${wan4}" - set sqm.wan4.download='0' - set sqm.wan4.upload='0' - set sqm.wan4.debug_logging='0' - set sqm.wan4.verbosity='5' - set sqm.wan4.iqdisc_opts='autorate-ingress dual-dsthost' - set sqm.wan4.eqdisc_opts='dual-srchost' - commit sqm - EOF - fi - fi -fi - -if [ "$(uci -q get sqm.omrvpn)" = "" ]; then - uci -q batch <<-EOF >/dev/null - set sqm.omrvpn=queue - set sqm.omrvpn.qdisc="cake" - set sqm.omrvpn.script="piece_of_cake.qos" - set sqm.omrvpn.qdisc_advanced='0' - set sqm.omrvpn.linklayer='none' - set sqm.omrvpn.enabled='1' - set sqm.omrvpn.interface=tun0 - set sqm.omrvpn.download='0' - set sqm.omrvpn.upload='0' - set sqm.omrvpn.debug_logging='0' - set sqm.omrvpn.verbosity='5' - set sqm.omrvpn.overhead='40' - set sqm.omrvpn.iqdisc_opts='autorate-ingress' - commit sqm - EOF -fi - -sed -i 's/SQM_SYSLOG=1/SQM_SYSLOG=0/g' /etc/sqm/sqm.conf - -rm -f /tmp/luci-indexcache - -exit 0 diff --git a/openmptcprouter/files/etc/uci-defaults/2060-omr-system b/openmptcprouter/files/etc/uci-defaults/2060-omr-system index 4a4a37962..933c0d693 100755 --- a/openmptcprouter/files/etc/uci-defaults/2060-omr-system +++ b/openmptcprouter/files/etc/uci-defaults/2060-omr-system @@ -6,10 +6,10 @@ uci -q batch <<-EOF >/dev/null set system.ntp.enable_server='1' set system.ntp.enabled='1' del system.ntp.server - add_list system.ntp.server='0.pool.ntp.org' - add_list system.ntp.server='1.pool.ntp.org' - add_list system.ntp.server='2.pool.ntp.org' - add_list system.ntp.server='3.pool.ntp.org' + add_list system.ntp.server='ntp.aliyun.com' + add_list system.ntp.server='time1.cloud.tencent.com' + add_list system.ntp.server='time.ustc.edu.cn' + add_list system.ntp.server='cn.pool.ntp.org' commit system set rpcd.@rpcd[0].timeout=120 commit rpcd From 2067bd73de0cce88299d40651243a683c83bf396 Mon Sep 17 00:00:00 2001 From: suyuan <175338101@qq.com> Date: Fri, 22 Jul 2022 12:00:36 +0800 Subject: [PATCH 19/26] fix --- .../root/usr/libexec/rpcd/openmptcprouter | 6 +++--- luci-app-sqm-autorate/root/etc/init.d/sqm-autorate | 2 +- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter index c609b4737..c8c442c76 100755 --- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter +++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter @@ -93,8 +93,8 @@ function add_interface(add_interface_ifname) ucic:set("qos","wan" .. i,"interface") ucic:set("qos","wan" .. i,"classgroup","Default") ucic:set("qos","wan" .. i,"enabled","0") - ucic:set("qos","wan" .. i,"upload","4000") - ucic:set("qos","wan" .. i,"download","100000") + ucic:set("qos","wan" .. i,"upload","1000000") + ucic:set("qos","wan" .. i,"download","1000000") ucic:save("qos") ucic:commit("qos") @@ -163,7 +163,7 @@ function set_interface(intf,proto,ipaddr,netmask,gateway,sqmenabled,downloadspee ucic:set("qos",intf,"interface") ucic:set("qos",intf,"classgroup","Default") ucic:set("qos",intf,"enabled","0") - ucic:set("qos",intf,"upload","4000") + ucic:set("qos",intf,"upload","100000") ucic:set("qos",intf,"download","100000") end diff --git a/luci-app-sqm-autorate/root/etc/init.d/sqm-autorate b/luci-app-sqm-autorate/root/etc/init.d/sqm-autorate index 2d70776e7..91aefdebc 100755 --- a/luci-app-sqm-autorate/root/etc/init.d/sqm-autorate +++ b/luci-app-sqm-autorate/root/etc/init.d/sqm-autorate @@ -25,7 +25,7 @@ _launch_autorate() { # shellcheck disable=SC2086 procd_set_param command /usr/share/sqm-autorate/CAKE-autorate.sh "$1" # procd_append_param env "OMR_TRACKER_SERVER_HTTP_TEST=$server_http_test" - procd_set_param limits nofile="51200 51200" + procd_set_param limits nofile="512000 512000" procd_set_param respawn 0 10 0 procd_set_param stderr 1 procd_close_instance From bc139fb048539ef2b5fe68117b3ac754c62945e8 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 28 Jul 2022 19:14:48 +0200 Subject: [PATCH 20/26] Fix status displayed gateway when a static route is set --- .../root/usr/libexec/rpcd/openmptcprouter | 20 ++++++++++--------- 1 file changed, 11 insertions(+), 9 deletions(-) diff --git a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter index c609b4737..6c9792f45 100755 --- a/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter +++ b/luci-app-openmptcprouter/root/usr/libexec/rpcd/openmptcprouter @@ -1244,18 +1244,10 @@ function interfaces_status() -- Detect WAN gateway status local gw_ping = "UP" local gw_ping6 = "UP" - if ifname ~= nil and not (ifname:match("^tun.*") or interface:match("^ovpn.*") or interface:match("^wg.*")) then - if proto ~= "dhcpv6" then - gateway = ut.trim(sys.exec("ip -4 r list dev " .. ifname .. " | grep via | grep -v default | grep -v metric | awk '{print $1}' | tr -d '\n'")) - end - if ipv6 == "1" or ipv6 == "auto" then - gateway6 = ut.trim(sys.exec("ip -6 r list dev " .. ifname .. " | grep via | grep -v default | grep -v metric | awk '{print $1}' | tr -d '\n'")) - end - end - if gateway == "" and proto ~= "dhcpv6" then gateway = get_gateway(interface) end + if gateway == "" and ifname ~= nil and ifname ~= "" and ipv6 ~= "1" and ipv6 ~= "auto" then if fs.access("/sys/class/net/" .. ifname) then gateway = ut.trim(sys.exec("ip -4 r list dev " .. ifname .. " | grep kernel | awk '/proto kernel/ {print $1}' | grep -v / | tr -d '\n'")) @@ -1264,6 +1256,11 @@ function interfaces_status() end end end + if ifname ~= nil and not (ifname:match("^tun.*") or interface:match("^ovpn.*") or interface:match("^wg.*")) then + if proto ~= "dhcpv6" and gateway == "" then + gateway = ut.trim(sys.exec("ip -4 r list dev " .. ifname .. " | grep via | grep -v default | grep -v metric | awk '{print $1}' | tr -d '\n'")) + end + end if gateway6 == "" and (ipv6 == "1" or ipv6 == "auto") then gateway6 = get_gateway6(interface) end @@ -1275,6 +1272,11 @@ function interfaces_status() end end end + if ifname ~= nil and not (ifname:match("^tun.*") or interface:match("^ovpn.*") or interface:match("^wg.*")) then + if ipv6 == "1" or ipv6 == "auto" and gateway6 == ""then + gateway6 = ut.trim(sys.exec("ip -6 r list dev " .. ifname .. " | grep via | grep -v default | grep -v metric | awk '{print $1}' | tr -d '\n'")) + end + end local signal = "" local operator = "" local phonenumber = "" From 2fa26a32382c8fedabad6dbe6b13444f9f707f6b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 28 Jul 2022 19:15:23 +0200 Subject: [PATCH 21/26] Fix MTU test and check if autorate is really running --- mptcp/files/usr/share/omr/post-tracking.d/post-tracking | 9 ++++++++- 1 file changed, 8 insertions(+), 1 deletion(-) diff --git a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking index 9fcfb89ca..89b8dfbbe 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -1372,6 +1372,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC traceboxmtutest() { omr_tracebox_mtu() { local serverip=$1 + [ "$serverip" != "${1#*[0-9].[0-9]}" ] && serverip="" [ -n "$serverip" ] && [ "$serverip" != "127.0.0.1" ] && [ "$(pgrep tracebox)" = "" ] && [ "$(uci -q get openmptcprouter.settings.tracebox)" != "0" ] && { omrtracebox="$(omr-tracebox-mptcp $serverip $OMR_TRACKER_DEVICE)" [ -n "$omrtracebox" ] && [ -z "$(echo $omrtracebox | grep error)" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mptcp_status="$omrtracebox" @@ -1446,6 +1447,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC traceboxmtutest() { omr_tracebox_mtu() { local serverip=$1 + [ "$serverip" != "${1#*:[0-9a-fA-F]}" ] && serverip="" [ -n "$serverip" ] && [ "$serverip" != "127.0.0.1" ] && [ "$(pgrep tracebox)" = "" ] && [ "$(uci -q get openmptcprouter.settings.tracebox)" != "0" ] && { omrtracebox="$(omr-tracebox-mptcp $serverip $OMR_TRACKER_DEVICE)" [ -n "$omrtracebox" ] && [ -z "$(echo $omrtracebox | grep error)" ] && uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mptcp_status="$omrtracebox" @@ -1467,7 +1469,7 @@ if [ -n "$OMR_TRACKER_INTERFACE" ] && ([ "$(uci -q get openmptcprouter.$OMR_TRAC ip link set dev $OMR_TRACKER_DEVICE mtu $mtu > /dev/null 2>&1 } } || { - local mtu=$(omr-mtu6 $OMR_TRACKER_DEVICE_IP 2606:4700:4700::1111) + local mtu=$(omr-mtu6 $OMR_TRACKER_DEVICE_IP6 2606:4700:4700::1111) [ -n "$mtu" ] && { uci -q set openmptcprouter.$OMR_TRACKER_INTERFACE.mtu=$mtu ip link set dev $OMR_TRACKER_DEVICE mtu $mtu > /dev/null 2>&1 @@ -1703,6 +1705,11 @@ if [ "$(pgrep openmptcprouter-vps)" = "" ] && ([ "$(uci -q show openmptcprouter sleep 5 fi +if [ "$(uci -q get sqm.${OMR_TRACKER_INTERFACE}.enabled)" = "1" ] && [ "$(uci -q get sqm.${OMR_TRACKER_INTERFACE}.autorate)" = "1" ] && [ -z $(pgrep -f "autorate.sh ${OMR_TRACKER_INTERFACE}") ]; then + /etc/init.d/sqm-autorate restart >/dev/null 2>&1 + sleep 5 +fi + #if [ "$(uci -q show openmptcprouter | grep server)" != "" ] && [ "$(uci -q show openmptcprouter | grep password)" != "" ] && [ "$(pgrep openmptcprouter-vps)" = "" ] && [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" = "" ] && ([ "$(uci -q show openmptcprouter | grep set_firewall=\'1\')" != "" ] || [ -z "$(iptables-save | grep omr_dst_bypass_${OMR_TRACKER_DEVICE})" ]); then if [ "$(pgrep -f set_vps_firewall)" = "" ] && [ "$(uci -q show openmptcprouter | grep server)" != "" ] && [ "$(uci -q show openmptcprouter | grep password)" != "" ] && [ "$(pgrep openmptcprouter-vps)" = "" ] && [ "$(uci -q show openmptcprouter | grep admin_error=\'1\')" = "" ] && [ "$(uci -q show openmptcprouter | grep set_firewall=\'1\')" != "" ]; then check_server_fw() { From 0fdca79728b4c3f8c5efff5af1a526c01ef860fc Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 28 Jul 2022 19:16:01 +0200 Subject: [PATCH 22/26] Remove some not needed log --- .../files/etc/init.d/openmptcprouter-vps | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index 723c52b55..9ac1e17b2 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -271,7 +271,7 @@ _set_ss_server_vps() { if [ "$current_mptcp" != "$mptcp" ] || [ "$current_obfs_plugin" != "$obfs_plugin" ] || [ "$current_obfs_type" != "$obfs_type" ] || [ "$current_port" != "$port" ] || [ "$current_method" != "$method" ] || [ "$current_key" != "$key" ] || [ "$current_ebpf" != "$ebpf" ] || [ "$current_obfs" != "$obfs" ] || [ "$current_fast_open" != "$fast_open" ] || [ "$current_no_delay" != "$no_delay" ]; then local settings settings='{"port": '$port',"method":"'$method'","fast_open":'$fast_open',"reuse_port":true,"no_delay":'$no_delay',"mptcp":'$mptcp',"key":"'$key'","ebpf":'$ebpf',"obfs":'$obfs',"obfs_plugin":"'$obfs_plugin'","obfs_type":"'$obfs_type'"}' - _set_json "shadowsocks" "$settings" + result=$(_set_json "shadowsocks" "$settings") fi } @@ -966,7 +966,7 @@ _vps_firewall_redirect_port() { fi if [ "$checkfw" = "" ]; then settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","source_dip" : "'$src_dip'","source_ip" : "'$src_ip'","proto" : "'$protoi'","fwtype" : "'$target'","ipproto" : "'$family'"}' - _set_json "shorewallopen" "$settings" + result=$(_set_json "shorewallopen" "$settings") fi if [ "$family" = "ipv4" ]; then if [ "$src_dip" = "" ] && [ "$src_ip" = "" ]; then @@ -1036,10 +1036,10 @@ _vps_firewall_redirect_port() { fi if [ "$checkfw" = "" ]; then settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","source_dip" : "'$src_dip'","source_ip" : "'$src_ip'","proto" : "'${protoi}'","fwtype" : "ACCEPT","ipproto" : "'$family'","comment" : "V2Ray to '${dest_ip}':'${dest_port}'"}' - _set_json "shorewallopen" "$settings" + result=$(_set_json "shorewallopen" "$settings") [ -z "$dest_port" ] && dest_port="$src_dport" settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","destip" : "'$dest_ip'","destport" : "'$dest_port'","proto" : "'${protoi}'"}' - _set_json "v2rayredirect" "$settings" + result=$(_set_json "v2rayredirect" "$settings") fi if [ "$family" = "ipv4" ]; then if [ "$src_dip" = "" ] && [ "$src_ip" = "" ]; then @@ -1087,12 +1087,12 @@ _vps_firewall_close_port() { else settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","proto" : "'$proto'","fwtype" : "DNAT","comment" : "'$comment'"}' fi - _set_json "shorewallclose" "$settings" + result=$(_set_json "shorewallclose" "$settings") [ "$type" = "ACCEPT" ] && { destip=$(echo $comment | awk '{print $3}' | awk -F: '{print $1}') destport=$(echo $comment | awk '{print $3}' | awk -F: '{print $2}') settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","proto" : "'$proto'","destip" : "'$destip'","destport": "'$destport'"}' - _set_json "v2rayunredirect" "$settings" + result=$(_set_json "v2rayunredirect" "$settings") } } done @@ -1115,10 +1115,10 @@ _vps_firewall_close_port() { else settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","proto" : "'$proto'","fwtype" : "DNAT","ipproto" : "ipv6","comment" : "'$comment'"}' fi - _set_json "shorewallclose" "$settings" + result=$(_set_json "shorewallclose" "$settings") [ "$type" = "ACCEPT" ] && { settings='{"name" : "router '$src_dport'","port" : "'$src_dport'","proto" : "'$proto'","comment" : "'$comment'"}' - _set_json "v2rayunredirect" "$settings" + result=$(_set_json "v2rayunredirect" "$settings") } } done @@ -1694,7 +1694,7 @@ _backup_send() { logger -t "OMR-VPS" "Send backup file to server $servername" local backupjson backupjson='{"data": "'$backup_data'","sha256sum": "'$backup_sha256sum'"}' - _set_json "backuppost" "$backupjson" + result=$(_set_json "backuppost" "$backupjson") uci -q set openmptcprouter.$servername.lastbackup=$(date +%s) } } From 77ea978dd1364f1f52242f1b5700c822dcfa931d Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 28 Jul 2022 19:16:21 +0200 Subject: [PATCH 23/26] Remove not needed vnstat log --- openmptcprouter/files/etc/init.d/vnstat_backup | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/openmptcprouter/files/etc/init.d/vnstat_backup b/openmptcprouter/files/etc/init.d/vnstat_backup index ea00cb864..3a1cf5112 100755 --- a/openmptcprouter/files/etc/init.d/vnstat_backup +++ b/openmptcprouter/files/etc/init.d/vnstat_backup @@ -38,9 +38,7 @@ backup_database() { } restore_database() { - if [ ! -f $BACKUP_FILE ]; then - logger -t $LOGGER_TAG -p err "cannot restore, backup file does not exist (yet)" - else + if [ -f $BACKUP_FILE ]; then logger -t $LOGGER_TAG -p info 'restoring database' [ ! -d $VNSTAT_DIR ] && mkdir $VNSTAT_DIR /bin/tar -xzf $BACKUP_FILE -C $VNSTAT_DIR From 5932ad876d52491487abdecab6c35ec66a1b5899 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 29 Jul 2022 12:47:20 +0200 Subject: [PATCH 24/26] Update ndpi-netfilter2 --- ndpi-netfilter2/Makefile | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/ndpi-netfilter2/Makefile b/ndpi-netfilter2/Makefile index 2c0377aa8..d218d7daa 100644 --- a/ndpi-netfilter2/Makefile +++ b/ndpi-netfilter2/Makefile @@ -11,7 +11,7 @@ include $(INCLUDE_DIR)/kernel.mk PKG_NAME:=ndpi-netfilter2 PKG_RELEASE:=3 -PKG_REV:=59f295ba86110f2642f76eb967b041c4108fedd5 +PKG_REV:=b19e6392cf0c7d51c44e076a91fc4db0cbbd6403 PKG_VERSION:=4-$(PKG_REV) PKG_SOURCE_PROTO:=git @@ -65,7 +65,7 @@ endef define Build/Compile (cd $(PKG_BUILD_DIR)/src/lib &&\ gcc -g -O2 -fPIC -DPIC -DNDPI_LIB_COMPILATION -I../../src/include/ -I../../src/lib/third_party/include/ ndpi_network_list_compile.c -o ndpi_network_list_compile &&\ - ./ndpi_network_list_compile -o ndpi_network_list.c.inc ndpi_network_list_std.yaml ndpi_network_list_tor.yaml) + ./ndpi_network_list_compile -o ndpi_network_list.c.inc ndpi_network_list_*.yaml) $(MAKE) $(MAKE_FLAGS) -C $(PKG_BUILD_DIR)/ndpi-netfilter endef From 0e1c92846d9f7d20ed710d6e1891069c58b2793b Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Fri, 29 Jul 2022 12:47:37 +0200 Subject: [PATCH 25/26] Remove crontab log --- openmptcprouter/files/etc/uci-defaults/2060-omr-system | 3 ++- 1 file changed, 2 insertions(+), 1 deletion(-) diff --git a/openmptcprouter/files/etc/uci-defaults/2060-omr-system b/openmptcprouter/files/etc/uci-defaults/2060-omr-system index 4a4a37962..fbb1a6912 100755 --- a/openmptcprouter/files/etc/uci-defaults/2060-omr-system +++ b/openmptcprouter/files/etc/uci-defaults/2060-omr-system @@ -6,6 +6,7 @@ uci -q batch <<-EOF >/dev/null set system.ntp.enable_server='1' set system.ntp.enabled='1' del system.ntp.server + set system.@system[-1].cronloglevel=9 add_list system.ntp.server='0.pool.ntp.org' add_list system.ntp.server='1.pool.ntp.org' add_list system.ntp.server='2.pool.ntp.org' @@ -38,7 +39,7 @@ fi EOF } -if [ -n "$(ubus call system board | jsonfilter -e '@.board_name' | grep rutx)" ]; then +if [ -n "$(ubus call system board | jsonfilter -e '@.board_name' | grep rutx)" ] && [ -z "$(uci show system | grep WAN_ETH)" ]; then uci -q batch <<-EOF >/dev/null add system led set system.@led[-1].sysfs='wan_wifi_4' From d5a43e921c875b2c07120b861c284f7a3fab5335 Mon Sep 17 00:00:00 2001 From: suyuan <175338101@qq.com> Date: Fri, 29 Jul 2022 23:30:32 +0800 Subject: [PATCH 26/26] Update 2060-omr-system --- openmptcprouter/files/etc/uci-defaults/2060-omr-system | 8 ++++---- 1 file changed, 4 insertions(+), 4 deletions(-) diff --git a/openmptcprouter/files/etc/uci-defaults/2060-omr-system b/openmptcprouter/files/etc/uci-defaults/2060-omr-system index fbb1a6912..4e4e33246 100755 --- a/openmptcprouter/files/etc/uci-defaults/2060-omr-system +++ b/openmptcprouter/files/etc/uci-defaults/2060-omr-system @@ -7,10 +7,10 @@ uci -q batch <<-EOF >/dev/null set system.ntp.enabled='1' del system.ntp.server set system.@system[-1].cronloglevel=9 - add_list system.ntp.server='0.pool.ntp.org' - add_list system.ntp.server='1.pool.ntp.org' - add_list system.ntp.server='2.pool.ntp.org' - add_list system.ntp.server='3.pool.ntp.org' + add_list system.ntp.server='ntp.aliyun.com' + add_list system.ntp.server='time1.cloud.tencent.com' + add_list system.ntp.server='time.ustc.edu.cn' + add_list system.ntp.server='cn.pool.ntp.org' commit system set rpcd.@rpcd[0].timeout=120 commit rpcd