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
+616
-454
No files matched your search
+614
-452
File diff suppressed because it is too large.
Load diff
+2
-2
@@ -471,8 +471,8 @@ Telegram идёт через него, пока тот отвечает. Steer
|
||||
быстрый, а порядок решает, когда разница меньше 50 мс.
|
||||
|
||||
Если в этот раз ни один туннель не разведывался заново, порядок остаётся прежним. Иначе
|
||||
каждое «Применить» переставляло бы туннели по случайному дрожанию пинга, и Steer
|
||||
перезапускался бы с обрывом соединений. Если хоть один туннель разведан заново, остальные
|
||||
каждое «Применить» переставляло бы туннели по случайному дрожанию пинга, и ядро steer
|
||||
переводило бы трафик на другой туннель с обрывом соединений. Если хоть один туннель разведан заново, остальные
|
||||
перемеряются тремя пингами изнутри, и список строится с нуля.
|
||||
|
||||
---
|
||||
|
||||
Reference in new issue
Block a user