[2026-09-15] eagle: family/how-to/truenas-infrastructure.md personal/tech/vless-space-subscription-egress.md personal/tech/xray-outbound-subscription-3xui.md
This commit is contained in:
@@ -410,7 +410,35 @@ Alex восстановил БД из бэкапа. **Проверено фак
|
||||
|
||||
**Пережило откат (единственный полезный артефакт в системе):** `/mnt/RED_2TB/docker/xray-admin/docker-compose.yml` — восстановленный compose, `docker compose config` валиден, `docker compose ps` распознаёт контейнер.
|
||||
|
||||
> 🔴 **Хард-вывод для будущих сессий: НЕ тратить попытки на правку клиентов 3x-ui через SQLite. Сразу просить доступ к панели (пароль или API-токен).** Пять подходов в этой сессии (копия БД, прямой SQL, `auth`/`reverse`, `security`, `password`) — все отбились, при том что БД каждый раз была полностью корректна. Провал не в данных, а в архитектуре 3x-ui.
|
||||
> 🔴 **Хард-вывод для будущих сессий: НЕ тратить попытки на правку клиентов 3x-ui через SQLite. Сразу просить доступ к панели (пароль или API-токен).** Шесть подходов в этой сессии (копия БД, прямой SQL, `auth`/`reverse`, `security`, `password`, инбаунд-в-шаблоне) — все отбились, при том что БД каждый раз была полностью корректна. Провал не в данных, а в архитектуре 3x-ui.
|
||||
|
||||
## 🔴 ПИТФОЛЛ 2026-09-15 (найден на 6-й попытке): инбаунд ВНУТРИ `xrayTemplateConfig` ломает своих клиентов
|
||||
|
||||
**Что делалось:** собрана БД `xui_v6.db`, где `vless-space` положен в **существующий** `in-10095-tcp` — но не в таблицу `inbounds`, а **в сам `settings.xrayTemplateConfig`** (инбаунд `in-10095-tcp` объявлен внутри шаблона рядом с `api`, с тремя клиентами).
|
||||
|
||||
**Симптом у Alex после заливки:** `kraken-user` отвалился. Вывод `jq` показывал `in-10095-tcp` **дважды** — с `user1,kraken-user,vless-space` (из шаблона) и с `user1,kraken-user` (из таблицы `inbounds`).
|
||||
|
||||
**Причина:** 3x-ui **мёржит** шаблон с таблицей `inbounds`. Инбаунд с тем же тегом (`in-10095-tcp`) из шаблона **перебивает** тот, которым управляет панель: панель рендерит клиентов из своего кэша (`client_traffics`/`client_inbounds`), а шаблонная версия инбаунда их **перетирает** — egress-правила привязываются к email, которых в активном инбаунде не остаётся.
|
||||
|
||||
**Как выглядела рабочая (живая) БД — эталон:**
|
||||
|
||||
```
|
||||
шаблон (xrayTemplateConfig): api + 13 outbounds + 5 routing-rules + balancer + observatory
|
||||
⛔ in-10095-tcp В ШАБЛОНЕ НЕТ ВООБЩЕ
|
||||
таблица inbounds (id=1): in-10095-tcp port=10095 clients=user1,kraken-user
|
||||
```
|
||||
|
||||
**Вывод — как правильно:**
|
||||
|
||||
| Что | Где держать |
|
||||
|---|---|
|
||||
| `space-01…10`, правило `vless-space-via-subscription`, `space-balancer`, `observatory` | ✅ **в `xrayTemplateConfig`** (работает) |
|
||||
| `in-10095-tcp` **сам инбаунд** | ⛔ **НЕ в шаблоне** — только в таблице `inbounds`, которой владеет панель |
|
||||
| клиент `vless-space` | ⛔ извне не добавляется (см. выше) — **только панель/API** |
|
||||
|
||||
> 🔴 **Сухой остаток сессии: не мешать два механизма.** Шаблон = только «дополнение» (outbound'ы/правила). Всё, что касается инбаундов и их клиентов, — эксклюзивно панель. Попытка протащить инбаунд через шаблон ломает чужих клиентов (`kraken-user`), а не решает задачу.
|
||||
|
||||
**Откат:** Alex восстановил БД из бэкапа; система вернулась к `user1` + `kraken-user`, 3 outbound'а.
|
||||
|
||||
## Открытые риски (проверено)
|
||||
|
||||
|
||||
Reference in New Issue
Block a user