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:
Виталий Никитенко
2026-06-08 12:14:47 +03:00
parent 775bca1cee
commit e955c928d3
2 changed files with 28 additions and 2 deletions

View File

@@ -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"