fix: сохранение конфига в /etc/ru-bypass.conf для systemd/NM dispatcher
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 <noreply@anthropic.com>
This commit is contained in:
@@ -11,11 +11,38 @@
|
|||||||
#
|
#
|
||||||
# Использование: sudo bash ru-bypass.sh
|
# Использование: 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}"
|
GATEWAY="${GATEWAY:-192.168.1.1}"
|
||||||
DEV="${DEV:-wlp1s0}"
|
DEV="${DEV:-wlp1s0}"
|
||||||
LOCAL_DNS="${LOCAL_DNS:-}"
|
LOCAL_DNS="${LOCAL_DNS:-}"
|
||||||
AMNEZIA_SERVER="${AMNEZIA_SERVER:-}"
|
AMNEZIA_SERVER="${AMNEZIA_SERVER:-}"
|
||||||
KILL_SWITCH_EXCEPTIONS="${KILL_SWITCH_EXCEPTIONS:-}"
|
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"
|
SETNAME="ru-direct"
|
||||||
CACHE="/var/cache/ru-delegations.txt"
|
CACHE="/var/cache/ru-delegations.txt"
|
||||||
IPSET_SAVE="/etc/ipset.conf"
|
IPSET_SAVE="/etc/ipset.conf"
|
||||||
|
|||||||
3
setup.sh
3
setup.sh
@@ -113,7 +113,7 @@ case "$choice" in
|
|||||||
read -rp "DEV (интерфейс) [${auto_dev}]: " dev
|
read -rp "DEV (интерфейс) [${auto_dev}]: " dev
|
||||||
read -rp "LOCAL_DNS (DNS для *.loc) [${saved_local_dns:-пусто}]: " local_dns
|
read -rp "LOCAL_DNS (DNS для *.loc) [${saved_local_dns:-пусто}]: " local_dns
|
||||||
read -rp "AMNEZIA_SERVER (IP/домен сервера Amnezia) [${saved_amn_srv:-пусто}]: " amn_srv
|
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}"
|
gw="${gw:-$auto_gw}"
|
||||||
dev="${dev:-$auto_dev}"
|
dev="${dev:-$auto_dev}"
|
||||||
[ "$local_dns" = "пусто" ] && local_dns=""
|
[ "$local_dns" = "пусто" ] && local_dns=""
|
||||||
@@ -121,7 +121,6 @@ case "$choice" in
|
|||||||
[ "$amn_srv" = "пусто" ] && amn_srv=""
|
[ "$amn_srv" = "пусто" ] && amn_srv=""
|
||||||
amn_srv="${amn_srv:-$saved_amn_srv}"
|
amn_srv="${amn_srv:-$saved_amn_srv}"
|
||||||
[ "$ks_exc" = "пусто" ] && ks_exc=""
|
[ "$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"
|
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 ""
|
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
|
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
|
||||||
|
|||||||
Reference in New Issue
Block a user