v1.61
This commit is contained in:
1 parent
2e390c3ba8
commit
0a60df09a3
1 file changed
+27
-6
+27
-6
@@ -1,5 +1,5 @@
|
|||||||
#!/bin/sh
|
#!/bin/sh
|
||||||
# Version: 1.60
|
# Version: 1.61
|
||||||
set -e
|
set -e
|
||||||
|
|
||||||
GREEN="\033[1;32m"; CYAN="\033[1;36m"; YELLOW="\033[1;33m"; MAGENTA="\033[1;35m"; BLUE="\033[0;34m"; NC="\033[0m"; DGRAY="\033[38;5;244m"
|
GREEN="\033[1;32m"; CYAN="\033[1;36m"; YELLOW="\033[1;33m"; MAGENTA="\033[1;35m"; BLUE="\033[0;34m"; NC="\033[0m"; DGRAY="\033[38;5;244m"
|
||||||
@@ -70,7 +70,7 @@ cat > '/opt/zapret-manager-luci/backend.sh' << 'ZM_INSTALLER_EOF'
|
|||||||
umask 022
|
umask 022
|
||||||
|
|
||||||
CONF="/etc/config/zapret"
|
CONF="/etc/config/zapret"
|
||||||
ZM_VERSION="1.60"
|
ZM_VERSION="1.61"
|
||||||
ZM_SCRIPT_URL="https://raw.githubusercontent.com/StressOzz/Zapret-Manager/refs/heads/main/ZapretManager_LuCI.sh"
|
ZM_SCRIPT_URL="https://raw.githubusercontent.com/StressOzz/Zapret-Manager/refs/heads/main/ZapretManager_LuCI.sh"
|
||||||
GH_RAW="https://raw.githubusercontent.com"
|
GH_RAW="https://raw.githubusercontent.com"
|
||||||
GH_MAIN="https://github.com"
|
GH_MAIN="https://github.com"
|
||||||
@@ -5316,8 +5316,10 @@ _st_install_steer() {
|
|||||||
return 0
|
return 0
|
||||||
fi
|
fi
|
||||||
fi
|
fi
|
||||||
local arch tmp base url ver was_on=""
|
local arch tmp base url ver was_on="" old_plain="" dropped=""
|
||||||
command -v steer >/dev/null 2>&1 && /etc/init.d/steer enabled 2>/dev/null && was_on=1
|
command -v steer >/dev/null 2>&1 && /etc/init.d/steer enabled 2>/dev/null && was_on=1
|
||||||
|
# Обычный пакет steer конфликтует с steer-extended — его надо убрать перед установкой
|
||||||
|
command -v steer >/dev/null 2>&1 && ! _st_is_ext && _pkg_is_installed steer && old_plain="$(_st_steer_ver)"
|
||||||
arch="$(_rb_arch)"
|
arch="$(_rb_arch)"
|
||||||
[ -n "$arch" ] || { echo "ОШИБКА: не удалось определить архитектуру роутера"; return 1; }
|
[ -n "$arch" ] || { echo "ОШИБКА: не удалось определить архитектуру роутера"; return 1; }
|
||||||
tmp="$ST_RUN/steer.$RAZ"
|
tmp="$ST_RUN/steer.$RAZ"
|
||||||
@@ -5332,8 +5334,25 @@ _st_install_steer() {
|
|||||||
echo "$ver" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$' || continue
|
echo "$ver" | grep -qE '^[0-9]+\.[0-9]+\.[0-9]+$' || continue
|
||||||
_rb_fetch_pkg "$base/${pkg}-${ver}-1_${arch}.${RAZ}" "$tmp" || continue
|
_rb_fetch_pkg "$base/${pkg}-${ver}-1_${arch}.${RAZ}" "$tmp" || continue
|
||||||
fi
|
fi
|
||||||
|
if [ -n "$old_plain" ] && [ -z "$dropped" ]; then
|
||||||
|
# новый пакет уже скачан — только теперь убираем старый; правила Steer сохраняем и возвращаем
|
||||||
|
_rb_say "Удаляем старый пакет steer $old_plain — он мешает установке steer-extended"
|
||||||
|
[ -s "$ST_STEER_SPEC" ] && cp -f "$ST_STEER_SPEC" "$ST_RUN/spec.keep"
|
||||||
|
/etc/init.d/steer stop >/dev/null 2>&1
|
||||||
|
if ! $DELETE steer >&2; then
|
||||||
|
rm -f "$tmp" "$ST_RUN/spec.keep"
|
||||||
|
echo "ОШИБКА: старый пакет steer не удалился — удалите его вручную и повторите"
|
||||||
|
return 1
|
||||||
|
fi
|
||||||
|
dropped=1
|
||||||
|
fi
|
||||||
if $INSTALL "$tmp" >&2; then
|
if $INSTALL "$tmp" >&2; then
|
||||||
rm -f "$tmp"
|
rm -f "$tmp"
|
||||||
|
if [ -s "$ST_RUN/spec.keep" ]; then
|
||||||
|
mkdir -p "$(dirname "$ST_STEER_SPEC")"
|
||||||
|
cp -f "$ST_RUN/spec.keep" "$ST_STEER_SPEC"
|
||||||
|
rm -f "$ST_RUN/spec.keep"
|
||||||
|
fi
|
||||||
_st_own "pkg steer"
|
_st_own "pkg steer"
|
||||||
_st_own "pkg steer-extended"
|
_st_own "pkg steer-extended"
|
||||||
_st_tun_ensure
|
_st_tun_ensure
|
||||||
@@ -5350,6 +5369,7 @@ _st_install_steer() {
|
|||||||
fi
|
fi
|
||||||
done
|
done
|
||||||
rm -f "$tmp"
|
rm -f "$tmp"
|
||||||
|
[ -n "$dropped" ] && _rb_warn "Старый steer $old_plain уже удалён, а новый не поставился — нажмите установку ещё раз, когда появится интернет"
|
||||||
echo "ОШИБКА: не удалось установить движок Steer"
|
echo "ОШИБКА: не удалось установить движок Steer"
|
||||||
return 1
|
return 1
|
||||||
}
|
}
|
||||||
@@ -5675,7 +5695,8 @@ _st_warp_ports() { # ИНТЕРФЕЙС КЛЮЧ_УЗЛА АДРЕС
|
|||||||
}
|
}
|
||||||
|
|
||||||
_st_warp_scan() { # ИНТЕРФЕЙС КЛЮЧ_УЗЛА ЗАНЯТЫЕ_КОЛОНИИ ЗАНЯТЫЕ_АДРЕСА [ФАЙЛ_ОБЩЕГО_СПИСКА]
|
_st_warp_scan() { # ИНТЕРФЕЙС КЛЮЧ_УЗЛА ЗАНЯТЫЕ_КОЛОНИИ ЗАНЯТЫЕ_АДРЕСА [ФАЙЛ_ОБЩЕГО_СПИСКА]
|
||||||
local dev="$1" peer="$2" busy=" $3 " busyip=" $4 " r="$ST_RUN/scan.$1" cand ip ports port loss rtt colo pick f cls
|
# $5 запоминаем сразу: ниже «set --» затирает позиционные параметры
|
||||||
|
local dev="$1" peer="$2" busy=" $3 " busyip=" $4 " pool="$5" r="$ST_RUN/scan.$1" cand ip ports port loss rtt colo pick f cls
|
||||||
mkdir -p "$ST_RUN"
|
mkdir -p "$ST_RUN"
|
||||||
: > "$r"; : > "$r.same"; : > "$r.nc"; : > "$r.ru"; : > "$r.notls"
|
: > "$r"; : > "$r.same"; : > "$r.nc"; : > "$r.ru"; : > "$r.notls"
|
||||||
cand=$(awk -v p="$ST_WARP_POOLS" -v n="$ST_WARP_RAND" 'BEGIN { srand(); c = split(p, a, " ");
|
cand=$(awk -v p="$ST_WARP_POOLS" -v n="$ST_WARP_RAND" 'BEGIN { srand(); c = split(p, a, " ");
|
||||||
@@ -5711,12 +5732,12 @@ _st_warp_scan() { # ИНТЕРФЕЙС КЛЮЧ_УЗЛА ЗАНЯТЫЕ_КОЛО
|
|||||||
done
|
done
|
||||||
# Все найденные точки — в общий список, лучшие первыми: остальные туннели возьмут точки
|
# Все найденные точки — в общий список, лучшие первыми: остальные туннели возьмут точки
|
||||||
# оттуда, без своей разведки (точка входа не зависит от ключей WARP)
|
# оттуда, без своей разведки (точка входа не зависит от ключей WARP)
|
||||||
if [ -n "$5" ]; then
|
if [ -n "$pool" ]; then
|
||||||
for f in "$r" "$r.same" "$r.nc" "$r.ru" "$r.notls"; do
|
for f in "$r" "$r.same" "$r.nc" "$r.ru" "$r.notls"; do
|
||||||
[ -s "$f" ] || continue
|
[ -s "$f" ] || continue
|
||||||
case "$f" in *.nc) cls=1 ;; *.ru) cls=2 ;; *.notls) cls=3 ;; *) cls=0 ;; esac
|
case "$f" in *.nc) cls=1 ;; *.ru) cls=2 ;; *.notls) cls=3 ;; *) cls=0 ;; esac
|
||||||
awk -v c="$cls" '{ printf "%d %s %s %s\n", c * 100000000 + $1 * 100000 + $2, $3, $4, $5 }' "$f"
|
awk -v c="$cls" '{ printf "%d %s %s %s\n", c * 100000000 + $1 * 100000 + $2, $3, $4, $5 }' "$f"
|
||||||
done | sort -n | awk '{ print $2, $3, $4, $1 }' > "$5"
|
done | sort -n | awk '{ print $2, $3, $4, $1 }' > "$pool"
|
||||||
fi
|
fi
|
||||||
for f in "$r" "$r.same" "$r.nc" "$r.ru" "$r.notls"; do
|
for f in "$r" "$r.same" "$r.nc" "$r.ru" "$r.notls"; do
|
||||||
[ -s "$f" ] || continue
|
[ -s "$f" ] || continue
|
||||||
|
|||||||
Reference in new issue
Block a user