From 21e35494ae72bd51e194af253f52fdf8c39cafa9 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?=D0=90=D0=BD=D0=B4=D1=80=D0=B5=D0=B9=20=D0=91=D0=BE=D0=B1?= =?UTF-8?q?=D1=8B=D1=80=D0=B5=D0=B2?= Date: Tue, 28 Apr 2026 20:38:30 +0300 Subject: [PATCH] =?UTF-8?q?fix:=20RCI=20=E2=80=94=20=D0=B4=D0=B8=D0=BD?= =?UTF-8?q?=D0=B0=D0=BC=D0=B8=D1=87=D0=B5=D1=81=D0=BA=D0=B8=D0=B9=20=D0=BF?= =?UTF-8?q?=D0=BE=D0=B8=D1=81=D0=BA=20LAN=20IP=20=D1=87=D0=B5=D1=80=D0=B5?= =?UTF-8?q?=D0=B7=20ip=20addr=20(=D1=83=D0=B1=D1=80=D0=B0=D0=BB=D0=B8=2019?= =?UTF-8?q?2.168.1.1)?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- server/main.py | 23 ++++++++--------------- 1 file changed, 8 insertions(+), 15 deletions(-) diff --git a/server/main.py b/server/main.py index 4ddc939..421492a 100644 --- a/server/main.py +++ b/server/main.py @@ -753,27 +753,20 @@ echo '[3/3] Настройка WireGuard через Keenetic RCI...' DONE=0 # === Keenetic RCI API (нативная интеграция, интерфейс виден в UI) === -# Keenetic слушает на LAN IP, не на localhost — перебираем варианты +# Keenetic слушает на LAN IP роутера — определяем его динамически RCI_BASE="" -for _url in "http://127.0.0.1" "http://localhost" "http://192.168.1.1"; do - _auth=$(curl -s --connect-timeout 2 "$_url/auth" 2>/dev/null) +AUTH="" +# Собираем все локальные IPv4 (кроме 127.x) из ip addr +_local_ips=$(ip addr show 2>/dev/null | grep 'inet ' | awk '{{print $2}}' | cut -d/ -f1 | grep -v '^127\.') +for _ip in 127.0.0.1 $_local_ips; do + _auth=$(curl -s --connect-timeout 2 "http://$_ip/auth" 2>/dev/null) if printf '%s' "$_auth" | grep -q '"realm"'; then - RCI_BASE="$_url" + RCI_BASE="http://$_ip" AUTH="$_auth" + echo "RCI найден на http://$_ip" break fi done -# Если стандартные IP не помогли — пробуем адрес br0 (LAN-интерфейс роутера) -if [ -z "$RCI_BASE" ]; then - _lanip=$(ip addr show br0 2>/dev/null | grep 'inet ' | awk '{{print $2}}' | cut -d/ -f1 | head -1) - if [ -n "$_lanip" ]; then - _auth=$(curl -s --connect-timeout 2 "http://$_lanip/auth" 2>/dev/null) - if printf '%s' "$_auth" | grep -q '"realm"'; then - RCI_BASE="http://$_lanip" - AUTH="$_auth" - fi - fi -fi echo "RCI base: [$RCI_BASE] Auth: $AUTH" REALM=$(printf '%s' "$AUTH" | grep -o '"realm":"[^"]*"' | cut -d'"' -f4) CHAL=$(printf '%s' "$AUTH" | grep -o '"challenge":"[^"]*"' | cut -d'"' -f4)