Files
Zapret-Manager/docs
xyzmean d7ebb0e0a3 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)
2026-10-03 16:38:37 +03:00
..