mirror of
https://github.com/andrey271192/keenetic_ssh-web.git
synced 2026-11-04 00:43:06 +00:00
auth: ROUTER_HOST как список + диагностика причин в логе
На Keenetic админка часто не слушает loopback — биндится только на LAN-интерфейсах. Делаем ROUTER_HOST списком (через запятую), пробуем все по порядку. - auth.py: keenetic_validate_any() — обходит список, на каждом шаге пишет в лог конкретную причину отказа: unreachable / нет realm / POST HTTP <code> / неверный логин-пароль - app.py: парсит ROUTER_HOST как список (csv); login fail логируется - install.sh: при создании свежего .env подставляет в ROUTER_HOST обнаруженный LAN-IP, my.keenetic.net и loopback (через запятую) - .env.example: тот же дефолт, комментарии обновлены
This commit is contained in:
12
install.sh
12
install.sh
@@ -20,7 +20,17 @@ if [ ! -f "$INST/data/store.json" ]; then
|
||||
fi
|
||||
if [ ! -f "$INST/.env" ]; then
|
||||
cp -f "$ROOT/.env.example" "$INST/.env"
|
||||
echo "!!! Создан $INST/.env — задайте WEB_PASSWORD и при необходимости ALLOWED_IPS"
|
||||
# Подставляем в свежий .env обнаруженный LAN-IP роутера в ROUTER_HOST,
|
||||
# чтобы клиент не оставался на одном лишь loopback (часто закрыт у Keenetic).
|
||||
LAN_IP_GUESS="$(
|
||||
ip -4 -o addr show 2>/dev/null \
|
||||
| awk '$4 ~ /^(192\.168|10|172\.(1[6-9]|2[0-9]|3[01]))\..*\.1\// {sub("/.*","",$4); print $4; exit}'
|
||||
)"
|
||||
if [ -n "$LAN_IP_GUESS" ]; then
|
||||
sed -i "s|^ROUTER_HOST=.*|ROUTER_HOST=http://${LAN_IP_GUESS},http://my.keenetic.net,http://127.0.0.1|" "$INST/.env" 2>/dev/null || true
|
||||
echo "==> .env: ROUTER_HOST подставлен LAN-IP $LAN_IP_GUESS (можно изменить в $INST/.env)"
|
||||
fi
|
||||
echo "!!! Создан $INST/.env — при необходимости задайте WEB_PASSWORD/ALLOWED_IPS"
|
||||
fi
|
||||
|
||||
chmod +x "$INST/run.sh"
|
||||
|
||||
Reference in New Issue
Block a user