From bc5e2f79f43afa1ac1c024a2846522f31a1c42e6 Mon Sep 17 00:00:00 2001 From: suyuan <175338101@qq.com> Date: Tue, 24 Nov 2020 17:33:08 +0800 Subject: [PATCH 01/12] Create .gitignore --- .gitignore | 29 +++++++++++++++++++++++++++++ 1 file changed, 29 insertions(+) create mode 100644 .gitignore diff --git a/.gitignore b/.gitignore new file mode 100644 index 000000000..2d93d2114 --- /dev/null +++ b/.gitignore @@ -0,0 +1,29 @@ +*.o +.DS_Store +.*.swp +/env +/dl +/.config +/.config.old +/bin +/build_dir +/staging_dir +/tmp +/logs +/feeds +/feeds.conf +/files +/overlay +/package/feeds +/package/openwrt-packages +key-build* +*.orig +*.rej +*~ +.#* +*# +.emacs.desktop* +TAGS*~ +git-src +.git-credentials +/*.log From 59c42c34b5af6ff837c78fba7058651dd47f6a20 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 25 Nov 2020 17:26:48 +0100 Subject: [PATCH 02/12] Fix path --- luci-app-mptcp/luasrc/view/mptcp/multipath.htm | 6 +++--- 1 file changed, 3 insertions(+), 3 deletions(-) diff --git a/luci-app-mptcp/luasrc/view/mptcp/multipath.htm b/luci-app-mptcp/luasrc/view/mptcp/multipath.htm index 3e72fa34b..8d375c359 100644 --- a/luci-app-mptcp/luasrc/view/mptcp/multipath.htm +++ b/luci-app-mptcp/luasrc/view/mptcp/multipath.htm @@ -906,13 +906,13 @@ window.setTimeout(function() <% if curifname == "all" then %> <%:Download:%> - +
-
<%:Upload:%> - +
-
@@ -920,7 +920,7 @@ window.setTimeout(function() <% else %> - +
-

From 3981d2c0653724822184fb13d55403cc8cd5ab28 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 25 Nov 2020 17:27:14 +0100 Subject: [PATCH 03/12] Use 9 instead of 09 for init --- omr-update/files/etc/init.d/omr-update | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/omr-update/files/etc/init.d/omr-update b/omr-update/files/etc/init.d/omr-update index 3c18cb745..0199bb214 100755 --- a/omr-update/files/etc/init.d/omr-update +++ b/omr-update/files/etc/init.d/omr-update @@ -2,7 +2,7 @@ # Copyright (C) 2018 Ycarus (Yannick Chabanois) # Released under GPL 3. See LICENSE for the full terms. -START=09 +START=9 STOP=98 boot() { From d8e8ce3bb012dd569d38216f546c34598c936e4f Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 25 Nov 2020 17:28:01 +0100 Subject: [PATCH 04/12] Fix system settings --- openmptcprouter/files/etc/uci-defaults/2060-omr-system | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/openmptcprouter/files/etc/uci-defaults/2060-omr-system b/openmptcprouter/files/etc/uci-defaults/2060-omr-system index 2308efa62..3b578e3fc 100755 --- a/openmptcprouter/files/etc/uci-defaults/2060-omr-system +++ b/openmptcprouter/files/etc/uci-defaults/2060-omr-system @@ -6,9 +6,9 @@ uci -q batch <<-EOF >/dev/null commit system set rpcd.@rpcd[0].timeout=120 commit rpcd - luci.apply.timeout='20' + set luci.apply.timeout='20' commit luci - fstab.@global[0].check_fs='1' + set fstab.@global[0].check_fs='1' commit fstab EOF From 3548693eee036886800791264b829af18ad630fc Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Wed, 25 Nov 2020 21:24:46 +0100 Subject: [PATCH 05/12] Restart rpcd if needed --- mptcp/files/usr/share/omr/post-tracking.d/post-tracking | 6 ++++++ 1 file changed, 6 insertions(+) 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 bb686c9fa..e7cd3f311 100755 --- a/mptcp/files/usr/share/omr/post-tracking.d/post-tracking +++ b/mptcp/files/usr/share/omr/post-tracking.d/post-tracking @@ -815,6 +815,12 @@ if [ "$(pgrep v2ray)" = "" ] && [ "$(uci -q get v2ray.main.enabled)" = "1" ] && sleep 5 fi +if [ "$(pgrep rpcd)" = "" ] && [ -f /etc/init.d/rpcd ]; then + _log "Can't find rpcd, restart it..." + /etc/init.d/rpcd restart + sleep 5 +fi + if [ "$(uci -q get v2ray.main.enabled)" = "1" ] && [ -f /etc/init.d/v2ray ] && [ "$(pgrep -f omr-tracker-v2ray)" = "" ]; then _log "Can't find omr-tracker-v2ray, restart omr-tracker..." /etc/init.d/omr-tracker restart From 943a33a4e04fa71a3afd0e3dbd2cbb20b0957898 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 11:13:52 +0100 Subject: [PATCH 06/12] Continue if v2ray ip rule already set --- v2ray-core/files/usr/bin/v2ray-rules | 4 ++-- v2ray-core/files/usr/bin/v2ray-rules6 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/v2ray-core/files/usr/bin/v2ray-rules b/v2ray-core/files/usr/bin/v2ray-rules index b37c8a3ae..2d6642274 100755 --- a/v2ray-core/files/usr/bin/v2ray-rules +++ b/v2ray-core/files/usr/bin/v2ray-rules @@ -229,8 +229,8 @@ v2r_rules_iptchains_init_() { fi ;; udp) - ip rule add fwmark 1 lookup 100 - ip route add local default dev lo table 100 + ip rule add fwmark 1 lookup 100 || true + ip route add local default dev lo table 100 || true forward_rules="-A v2r_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01" ;; esac diff --git a/v2ray-core/files/usr/bin/v2ray-rules6 b/v2ray-core/files/usr/bin/v2ray-rules6 index 31a00da24..14f51e5dd 100755 --- a/v2ray-core/files/usr/bin/v2ray-rules6 +++ b/v2ray-core/files/usr/bin/v2ray-rules6 @@ -215,8 +215,8 @@ v2ray_rules6_iptchains_init_() { fi ;; udp) - ip -f inet6 rule add fwmark 1 lookup 100 - ip -f inet6 route add local default dev lo table 100 + ip -f inet6 rule add fwmark 1 lookup 100 || true + ip -f inet6 route add local default dev lo table 100 || true forward_rules=" -A v2r6_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01 -A v2r6_${rule}_forward -p tcp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01 From cda0689ee634cd3c0b052059b247b4f4b6f91e62 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 11:14:05 +0100 Subject: [PATCH 07/12] Continue if shadowsocks ip rule already set --- shadowsocks-libev/files/ss-rules | 4 ++-- shadowsocks-libev/files/ss-rules6 | 4 ++-- 2 files changed, 4 insertions(+), 4 deletions(-) diff --git a/shadowsocks-libev/files/ss-rules b/shadowsocks-libev/files/ss-rules index 5cb75dd57..732d9d620 100755 --- a/shadowsocks-libev/files/ss-rules +++ b/shadowsocks-libev/files/ss-rules @@ -229,8 +229,8 @@ ss_rules_iptchains_init_() { fi ;; udp) - ip rule add fwmark 1 lookup 100 - ip route add local default dev lo table 100 + ip rule add fwmark 1 lookup 100 || true + ip route add local default dev lo table 100 || true forward_rules="-A ssr_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01" ;; esac diff --git a/shadowsocks-libev/files/ss-rules6 b/shadowsocks-libev/files/ss-rules6 index 729f496c3..1c25b43bf 100755 --- a/shadowsocks-libev/files/ss-rules6 +++ b/shadowsocks-libev/files/ss-rules6 @@ -211,8 +211,8 @@ ss_rules6_iptchains_init_() { fi ;; udp) - ip -f inet6 rule add fwmark 1 lookup 100 - ip -f inet6 route add local default dev lo table 100 + ip -f inet6 rule add fwmark 1 lookup 100 || true + ip -f inet6 route add local default dev lo table 100 || true forward_rules="-A ssr6_${rule}_forward -p udp -j TPROXY --on-port "$o_redir_udp_port" --tproxy-mark 0x01/0x01" ;; esac From 2420f841fe1943918b1a04ae679d16013f7041e6 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 16:27:37 +0100 Subject: [PATCH 08/12] Status logo in settings --- .../luasrc/view/openmptcprouter/wanstatus.htm | 7 ++++--- 1 file changed, 4 insertions(+), 3 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm index f4836fecf..b35f3344f 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wanstatus.htm @@ -32,8 +32,9 @@ -%> <%+header%> <% -local ucic = luci.model.uci.cursor() -menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" +local ucic = luci.model.uci.cursor() +local menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" +local statuslogo = ucic:get("openmptcprouter","settings","statuslogo") or "openmptcprouter.png" %> @@ -107,7 +108,7 @@ menuentry = ucic:get("openmptcprouter","settings","menu") or "openmptcprouter" } } temp += ''; - var equipmentIcon = ''; + var equipmentIcon = ''; var title = String.format("%s (%s)", mArray.openmptcprouter.hostname, mArray.openmptcprouter.local_addr); var statusMessageClass = ""; var statusIcon = "<%=resource%>/openmptcprouter/images/statusOK.png"; From c180f6f3a3f306c3765b1a096ff35d36e7f6826a Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 16:28:21 +0100 Subject: [PATCH 09/12] Remove getting speed from SQM --- .../luasrc/view/openmptcprouter/wizard.htm | 18 +++++++++--------- 1 file changed, 9 insertions(+), 9 deletions(-) diff --git a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm index eecac2bb7..817255650 100644 --- a/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm +++ b/luci-app-openmptcprouter/luasrc/view/openmptcprouter/wizard.htm @@ -737,15 +737,15 @@ local upload = "0" download = uci:get("network",ifname,"downloadspeed") or "0" upload = uci:get("network",ifname,"uploadspeed") or "0" - if download == "0" or upload == "0" then - if nixio.fs.access("/etc/init.d/sqm") then - download = uci:get("sqm",ifname,"download") - upload = uci:get("sqm",ifname,"upload") - else - download = uci:get("qos",ifname,"download") - upload = uci:get("qos",ifname,"upload") - end - end + --if download == "0" or upload == "0" then + -- if nixio.fs.access("/etc/init.d/sqm") then + -- download = uci:get("sqm",ifname,"download") + -- upload = uci:get("sqm",ifname,"upload") + -- else + -- download = uci:get("qos",ifname,"download") + -- upload = uci:get("qos",ifname,"upload") + -- end + --end %>
From 1c68d183801855a9eccb7496947921cd23d79306 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 16:31:13 +0100 Subject: [PATCH 10/12] Add server name in log and openvpn update key function --- .../files/etc/init.d/openmptcprouter-vps | 48 ++++++++++++++----- 1 file changed, 36 insertions(+), 12 deletions(-) diff --git a/openmptcprouter/files/etc/init.d/openmptcprouter-vps b/openmptcprouter/files/etc/init.d/openmptcprouter-vps index c34a0bf8e..3c94e42e0 100755 --- a/openmptcprouter/files/etc/init.d/openmptcprouter-vps +++ b/openmptcprouter/files/etc/init.d/openmptcprouter-vps @@ -6,7 +6,7 @@ START=99 USE_PROCD=1 -EXTRA_COMMANDS="set_pihole backup_send backup_get backup_list set_vps_firewall" +EXTRA_COMMANDS="set_pihole backup_send backup_get backup_list set_vps_firewall get_openvpn_key" _parse_result() { result=$("echo $1 | jsonfilter -q -e '@.result'") @@ -114,6 +114,27 @@ _set_openvpn_vps() { fi } +get_openvpn_key() { + servername=$2 + [ -z "$vps_config" ] && vps_config=$(_get_json "config") + [ -z "$vps_config" ] && return + openvpn_client_key="$(echo "$vps_config" | jsonfilter -q -e '@.openvpn.client_key')" + [ -n "$openvpn_client_key" ] && { + echo $openvpn_client_key | base64 -d > /etc/luci-uploads/client.key + } + openvpn_client_crt="$(echo "$vps_config" | jsonfilter -q -e '@.openvpn.client_crt')" + [ -n "$openvpn_client_crt" ] && { + echo $openvpn_client_crt | base64 -d > /etc/luci-uploads/client.crt + } + openvpn_client_ca="$(echo "$vps_config" | jsonfilter -q -e '@.openvpn.client_ca')" + [ -n "$openvpn_client_ca" ] && { + echo $openvpn_client_ca | base64 -d > /etc/luci-uploads/ca.crt + } + [ -n "$openvpn_client_key" ] && [ -n "$openvpn_client_crt" ] && [ -n "$openvpn_client_ca" ] && { + /etc/init.d/openvpn restart + } +} + _get_ss_redir() { config_get cf_ebpf $1 ebpf [ "$cf_ebpf" = "1" ] && ebpf="true" @@ -166,7 +187,7 @@ _set_ss_server_vps() { if [ "$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":true,"key":"'$key'","ebpf":'$ebpf',"obfs":'$obfs',"obfs_plugin":"'$obfs_plugin'","obfs_type":"'$obfs_type'"}' - echo $(_set_json "shadowsocks" "$settings") + _set_json "shadowsocks" "$settings" fi } @@ -906,7 +927,7 @@ _set_vps_firewall() { vps_config="" _login [ -z "$token" ] && { - logger -t "OMR-VPS" "Can't get token, try later" + logger -t "OMR-VPS" "Can't get ${fwservername} token, try later" uci -q batch <<-EOF >/dev/null set openmptcprouter.${fwservername}.admin_error=1 EOF @@ -967,7 +988,7 @@ _set_config_from_vps() { [ -z "$vps_config" ] && vps_config=$(_get_json "config") [ -z "$vps_config" ] && return - logger -t "OMR-VPS" "Get config from VPS..." + logger -t "OMR-VPS" "Get config from server ${servername}..." noerror=1 # get VPS ip vpsip="$(uci -q get openmptcprouter.${servername}.ip)" @@ -1371,7 +1392,7 @@ _backup_send() { vps_config="" _login [ -z "$token" ] && { - logger -t "OMR-VPS" "Can't get token, try later" + logger -t "OMR-VPS" "Can't get ${servername} token, try later" uci -q batch <<-EOF >/dev/null set openmptcprouter.${servername}.admin_error=1 EOF @@ -1412,7 +1433,7 @@ _backup_get_and_apply() { vps_config="" _login [ -z "$token" ] && { - logger -t "OMR-VPS" "Can't get token, try later" + logger -t "OMR-VPS" "Can't get ${servername} token, try later" uci -q batch <<-EOF >/dev/null set openmptcprouter.${servername}.admin_error=1 EOF @@ -1446,7 +1467,7 @@ _backup_list() { vps_config="" _login [ -z "$token" ] && { - logger -t "OMR-VPS" "Can't get token, try later" + logger -t "OMR-VPS" "Can't get ${servername} token, try later" uci -q batch <<-EOF >/dev/null set openmptcprouter.${servername}.admin_error=1 EOF @@ -1483,6 +1504,7 @@ _config_service() { [ -z "$(uci -q get openmptcprouter.${servername}.password)" ] && return [ -z "$(uci -q get openmptcprouter.${servername}.port)" ] && return [ -z "$(uci -q get openmptcprouter.${servername}.ip)" ] && return + [ "$(uci -q get openmptcprouter.${servername}.disabled)" = "1" ] && return token="" vps_config="" _login @@ -1491,9 +1513,9 @@ _config_service() { _ping_server status=$? if $(exit $status); then - reason="can ping server" + reason="can ping server ${servername}" else - reason="can't ping server" + reason="can't ping server ${servername}" fi port="$(uci -q get openmptcprouter.${servername}.port)" server="$(uci -q get openmptcprouter.${servername}.ip)" @@ -1505,19 +1527,21 @@ _config_service() { if [ "$(uci -q get openmptcprouter.${servername}.username)" != "openmptcprouter" ]; then reason="$reason, custom username" fi - logger -t "OMR-VPS" "Can't get token, try later ($reason)" + logger -t "OMR-VPS" "Can't get ${servername} token, try later ($reason)" uci -q batch <<-EOF >/dev/null set openmptcprouter.${servername}.admin_error=1 EOF return } error=0 - [ "$(uci -q get openmptcprouter.${servername}.get_config)" = "1" ] && { + [ "$(uci -q get openmptcprouter.${servername}.get_config)" = "1" ] && [ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] && { _set_config_from_vps _get_gre_tunnel } - _get_vps_config + [ "$(uci -q get openmptcprouter.${servername}.master)" = "1" ] && { + _get_vps_config + } [ -z "$vps_config" ] && vps_config=$(_get_json "config") [ -z "$vps_config" ] && return user_permission="$(echo "$vps_config" | jsonfilter -q -e '@.user.permission')" From 21c53f2420ac60b3895aceff38a2881c0964bb67 Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 16:31:36 +0100 Subject: [PATCH 11/12] Update OpenVPN key when server change --- omr-tracker/files/bin/omr-tracker-server | 4 +++- 1 file changed, 3 insertions(+), 1 deletion(-) diff --git a/omr-tracker/files/bin/omr-tracker-server b/omr-tracker/files/bin/omr-tracker-server index 7b652c26d..e7c759b16 100755 --- a/omr-tracker/files/bin/omr-tracker-server +++ b/omr-tracker/files/bin/omr-tracker-server @@ -65,6 +65,7 @@ _check_master() { add_list openvpn.omr.remote=$ip commit openvpn EOF + /etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null /etc/init.d/shadowsocks-libev restart >/dev/null 2>/dev/null /etc/init.d/v2ray restart >/dev/null 2>/dev/null /etc/init.d/glorytun restart >/dev/null 2>/dev/null @@ -88,7 +89,7 @@ _check_backup() { _check_server $ip $port [ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss0.server | tr -d '\n')" = "$ip" ] && break [ "$server_ping" = true ] && [ "$(uci -q get shadowsocks-libev.sss0.server | tr -d '\n')" != "$ip" ] && { - logger -t "OMR-Tracker-Server" "User backup server $1 ($ip)" + logger -t "OMR-Tracker-Server" "Use backup server $1 ($ip)" uci -q batch <<-EOF >/dev/null set shadowsocks-libev.sss0.server=$ip commit shadowsocks-libev @@ -105,6 +106,7 @@ _check_backup() { add_list openvpn.omr.remote=$ip commit openvpn EOF + /etc/init.d/openmptcprouter-vps get_openvpn_key $name >/dev/null 2>/dev/null /etc/init.d/shadowsocks-libev restart >/dev/null 2>/dev/null /etc/init.d/v2ray restart >/dev/null 2>/dev/null /etc/init.d/glorytun restart >/dev/null 2>/dev/null From 9521458d674bdfd9ff814384cd3505ac2dc761ff Mon Sep 17 00:00:00 2001 From: "Ycarus (Yannick Chabanois)" Date: Thu, 26 Nov 2020 16:32:15 +0100 Subject: [PATCH 12/12] Add BBR2 dependency --- openmptcprouter-full/Makefile | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/openmptcprouter-full/Makefile b/openmptcprouter-full/Makefile index 8afa8bbcb..0d060fa9a 100644 --- a/openmptcprouter-full/Makefile +++ b/openmptcprouter-full/Makefile @@ -78,7 +78,7 @@ MY_DEPENDS := \ !TARGET_mvebu:kmod-usb-net-huawei-cdc-ncm !TARGET_mvebu:kmod-usb-net-rndis !TARGET_mvebu:kmod-usb-net-cdc-ether !TARGET_mvebu:kmod-usb-net-ipheth !TARGET_mvebu:usbmuxd \ kmod-rt2800-usb kmod-rtl8xxxu kmod-rtl8192cu kmod-net-rtl8192su \ !TARGET_mvebu:luci-proto-qmi wpad-basic kmod-mt7601u kmod-rtl8187 \ - luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang iptables-mod-ipopt igmpproxy ss iptraf-ng \ + luci-app-mlvpn mlvpn 464xlat !TARGET_mvebu:kmod-usb-net-smsc75xx kmod-zram kmod-swconfig swconfig kmod-ipt-nat kmod-ipt-nat6 luci-app-https-dns-proxy kmod-tcp-nanqinlang kmod-tcp-bbr2 iptables-mod-ipopt igmpproxy ss iptraf-ng \ luci-app-acl block-mount blockd fstools luci-app-shutdown libwebp luci-proto-gre tcptraceroute luci-proto-mbim kmod-rtl8xxxu kmod-ath9k-htc luci-app-ttyd luci-mod-dashboard (TARGET_x86||TARGET_x86_64):rtl8192eu-firmware kmod-usb2 libustream-wolfssl (TARGET_x86||TARGET_x86_64):kmod-ixgbevf \ hwinfo (TARGET_x86||TARGET_x86_64):dmidecode # luci-theme-bootstrap luci-theme-openwrt-2020 luci-theme-openwrt luci-app-status