From e955c928d39a4c3d41588aded0943ef1a4629394 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=92=D0=B8=D1=82=D0=B0=D0=BB=D0=B8=D0=B9=20=D0=9D=D0=B8?= =?UTF-8?q?=D0=BA=D0=B8=D1=82=D0=B5=D0=BD=D0=BA=D0=BE?= Date: Mon, 8 Jun 2026 12:14:47 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20=D1=81=D0=BE=D1=85=D1=80=D0=B0=D0=BD?= =?UTF-8?q?=D0=B5=D0=BD=D0=B8=D0=B5=20=D0=BA=D0=BE=D0=BD=D1=84=D0=B8=D0=B3?= =?UTF-8?q?=D0=B0=20=D0=B2=20/etc/ru-bypass.conf=20=D0=B4=D0=BB=D1=8F=20sy?= =?UTF-8?q?stemd/NM=20dispatcher?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit ru-bypass.sh теперь сохраняет параметры (GATEWAY, DEV, LOCAL_DNS, AMNEZIA_SERVER, KILL_SWITCH_EXCEPTIONS) в /etc/ru-bypass.conf при каждом запуске, и читает их оттуда при старте из systemd/NM dispatcher (без env). ENV-переменные имеют приоритет. setup.sh: read -e -i для KS_EXCEPTIONS - редактирование значения инлайн вместо показа текущего значения в скобках. Co-Authored-By: Claude Sonnet 4.6 --- scripts/ru-bypass.sh | 27 +++++++++++++++++++++++++++ setup.sh | 3 +-- 2 files changed, 28 insertions(+), 2 deletions(-) diff --git a/scripts/ru-bypass.sh b/scripts/ru-bypass.sh index 995e914..751c37c 100644 --- a/scripts/ru-bypass.sh +++ b/scripts/ru-bypass.sh @@ -11,11 +11,38 @@ # # Использование: sudo bash ru-bypass.sh +# Сохраняем env-переменные до загрузки конфига (env имеет приоритет) +_env_gw="${GATEWAY:-}" +_env_dev="${DEV:-}" +_env_local_dns="${LOCAL_DNS:-}" +_env_amn_srv="${AMNEZIA_SERVER:-}" +_env_ks_exc="${KILL_SWITCH_EXCEPTIONS:-}" + +# Загружаем сохранённый конфиг (для запуска из systemd/NM dispatcher без env) +[ -f /etc/ru-bypass.conf ] && . /etc/ru-bypass.conf + +# ENV-переменные имеют приоритет над конфигом +[ -n "$_env_gw" ] && GATEWAY="$_env_gw" +[ -n "$_env_dev" ] && DEV="$_env_dev" +[ -n "$_env_local_dns" ] && LOCAL_DNS="$_env_local_dns" +[ -n "$_env_amn_srv" ] && AMNEZIA_SERVER="$_env_amn_srv" +[ -n "$_env_ks_exc" ] && KILL_SWITCH_EXCEPTIONS="$_env_ks_exc" + +# Дефолты (если ни конфиг, ни env не задали значение) GATEWAY="${GATEWAY:-192.168.1.1}" DEV="${DEV:-wlp1s0}" LOCAL_DNS="${LOCAL_DNS:-}" AMNEZIA_SERVER="${AMNEZIA_SERVER:-}" KILL_SWITCH_EXCEPTIONS="${KILL_SWITCH_EXCEPTIONS:-}" + +# Сохраняем конфиг для будущих запусков (systemd, NM dispatcher) +cat > /etc/ru-bypass.conf <<_CONF +GATEWAY="$GATEWAY" +DEV="$DEV" +LOCAL_DNS="$LOCAL_DNS" +AMNEZIA_SERVER="$AMNEZIA_SERVER" +KILL_SWITCH_EXCEPTIONS="$KILL_SWITCH_EXCEPTIONS" +_CONF SETNAME="ru-direct" CACHE="/var/cache/ru-delegations.txt" IPSET_SAVE="/etc/ipset.conf" diff --git a/setup.sh b/setup.sh index 683ea76..bd1b438 100755 --- a/setup.sh +++ b/setup.sh @@ -113,7 +113,7 @@ case "$choice" in read -rp "DEV (интерфейс) [${auto_dev}]: " dev read -rp "LOCAL_DNS (DNS для *.loc) [${saved_local_dns:-пусто}]: " local_dns read -rp "AMNEZIA_SERVER (IP/домен сервера Amnezia) [${saved_amn_srv:-пусто}]: " amn_srv - read -rp "KS_EXCEPTIONS (исключения kill switch: IP/домены через пробел) [${saved_ks_exc:-пусто}]: " ks_exc + read -e -rp "KS_EXCEPTIONS (исключения kill switch: IP/домены через пробел): " -i "${saved_ks_exc}" ks_exc gw="${gw:-$auto_gw}" dev="${dev:-$auto_dev}" [ "$local_dns" = "пусто" ] && local_dns="" @@ -121,7 +121,6 @@ case "$choice" in [ "$amn_srv" = "пусто" ] && amn_srv="" amn_srv="${amn_srv:-$saved_amn_srv}" [ "$ks_exc" = "пусто" ] && ks_exc="" - ks_exc="${ks_exc:-$saved_ks_exc}" printf 'GATEWAY=%s\nDEV=%s\nLOCAL_DNS=%s\nAMNEZIA_SERVER=%s\nKILL_SWITCH_EXCEPTIONS=%s\n' "$gw" "$dev" "$local_dns" "$amn_srv" "$ks_exc" > "$net_conf" echo "" sudo GATEWAY="$gw" DEV="$dev" LOCAL_DNS="$local_dns" AMNEZIA_SERVER="$amn_srv" KILL_SWITCH_EXCEPTIONS="$ks_exc" USER_HOME="$HOME" bash scripts/ru-bypass.sh