Steer: бекенд на ядре steer 2.0 через один слой
Весь разговор с ядром steer — в одном блоке функций stl_* (слой steer): бекенд отдаёт ему свою модель (выход WARP или VPN, сервисы и их списки, подписка с узлом и маркерами) и спрашивает состояние на своём языке, а слой пишет спеку v2 в /etc/steer/spec.json и зовёт клиент steer, который отдаёт команды демону steerd. - Ядро: steer-core и только нужные модули (VLESS — когда есть подписка) вместо steer-extended; версия — stable 2.x из splify2/releases (version.json, с проверкой sha256), не ниже 2.0.0. Переход с 1.x: apk — одной транзакцией, opkg — снятием прежнего пакета; спека остаётся. Удаляются только пакеты, которые ставил Zapret Manager. - Применение: проверка демоном (ctl check), затем steer apply через демона — он сам трогает только изменившееся. Убраны костыли 1.5.9: srs-read и перевод .srs в текст, сумма спеки и сверка outputs, выбор между reload и restart, перезапуск при fail-open, kmod-tun руками, чтение набора nft. - WARP — группа pick: latency из туннелей (один туннель — выход-устройство), без IPv6, как и прежде. VPN — tunnel vless: маркеры узлов уходят в exclude_name, скрытые и закреплённый узел — в nodes без предела 16. - Состояние — из steer status (failed, device, probe), diag и explain — через слой. Блокер: ядро ведёт steer-box-connector (podkop, forkop) или чужая спека v1/v2/yaml. - Прежняя спека ZM (v1) ядро 2.0 читает как есть; при первом применении слой пишет её заново в v2. Автоперезапуск по cron и обновление панели идут через backend.sh. - Фронтенд: три подсказки про steer-extended переписаны под ядро 2.0. - docs/autobypass: перестановка туннелей рвёт соединения сменой туннеля, а не перезапуском ядра. Committed-by: agy-cli (autonomous, run #96)
This commit is contained in:
1 parent
dcce004e60
commit
d7ebb0e0a3
2 files changed
+620
-458
No files matched your search
+618
-456
File diff suppressed because it is too large.
Load diff
Reference in new issue
Block a user