diff --git a/personal/tech/vless-space-subscription-egress.md b/personal/tech/vless-space-subscription-egress.md index c4bf6f89..8fa34162 100644 --- a/personal/tech/vless-space-subscription-egress.md +++ b/personal/tech/vless-space-subscription-egress.md @@ -1,22 +1,82 @@ --- title: vless-space — клиент 3x-ui с egress через external-подписку -created: 2026-09-15 -updated: 2026-09-15 +created: 2026-09-15T00:00:00.000Z +updated: '2026-09-15T22:30:00.000Z' type: tech namespace: personal -tags: [xray, 3x-ui, x-ui, subscription, outbound, profilegrid, truenas, space, balancer, leastLoad] +tags: + - xray + - 3x-ui + - x-ui + - subscription + - outbound + - profilegrid + - truenas + - space + - balancer + - leastLoad + - balancerTag + - sampling confidence: high -status: applied-clients-ok-egress-rootcaused +status: done-egress-working related: - - "[[family/plans/reverse-xray-3xui-kraken]]" - - "[[personal/tech/xray-reverse-tunnel-kraken-truenas]]" - - "[[personal/tech/xray-outbound-subscription-3xui]]" - - "[[family/how-to/truenas-infrastructure]]" + - '[[family/plans/reverse-xray-3xui-kraken]]' + - '[[personal/tech/xray-reverse-tunnel-kraken-truenas]]' + - '[[personal/tech/xray-outbound-subscription-3xui]]' + - '[[family/how-to/truenas-infrastructure]]' --- # `vless-space` — клиент 3x-ui, egress через внешнюю подписку -> ## ✅ ОБНОВЛЕНО 2026-09-15 (вечер): `xui_v7.db` ЗАЛИТА И РАБОТАЕТ ЧАСТИЧНО +> # 🏁 2026-09-15 22:30 — ЗАДАЧА ВЫПОЛНЕНА ПОЛНОСТЬЮ. EGRESS РАБОТАЕТ. +> +> | Проверка (факт, `xui_v9.db`) | Результат | +> |---|---| +> | IP через `vless-space` | ✅ `104.28.225.223` / `195.72.61.192` (**Стокгольм, SE**) | +> | IP TrueNAS напрямую | `90.189.160.148` — **отличается** → трафик идёт через подписку | +> | Стабильность | ✅ 3/3 запроса подряд через клиент в докере | +> | `in-10095-tcp` clients | ✅ `user1,kraken-user,vless-space` (один инбаунд, порта 10096 нет) | +> | outbounds | ✅ 13, balancer `space-balancer` (leastLoad) | +> | подписка `/sub/24df9391356b48ff` | ✅ HTTP 200 | +> | `kraken-user`, `user1` | ✅ целы, не тронуты | +> +> ## 🔑 ТРИ ПИТФОЛЛА, КОТОРЫЕ СТОИЛИ ПОЛДНЯ (все три обязательны) +> +> **1. `balancerTag`, а НЕ `outboundTag`.** Правило маршрутизации обязано ссылаться на балансировщик через `balancerTag` — с `outboundTag` 3x-ui/Xray не распознаёт его как балансировщик, и на первом же соединении: `app/dispatcher: non existing outTag: space-balancer`. +> +> ```jsonc +> // ❌ НЕ РАБОТАЕТ +> { "type":"field", "user":["vless-space"], "outboundTag":"space-balancer", "ruleTag":"..." } +> // ✅ РАБОТАЕТ +> { "type":"field", "user":["vless-space"], "balancerTag":"space-balancer", "ruleTag":"..." } +> ``` +> +> **2. `strategy: leastLoad`, а НЕ `leastPing`.** В Xray 26.x `leastPing` балансировщик **не создаёт** (проверено A/B на минимальном конфиге; `burstObservatory` — то же). +> +> **3. `observatory` ОБЯЗАТЕЛЬНО с `sampling`.** Без `sampling` Xray 26.7.28 **молча** не создаёт балансировщик — `-test` при этом печатает `Configuration OK`. +> +> ```jsonc +> "observatory": { "subjectSelector":["space-"], "probeUrl":"https://www.google.com/generate_204", +> "probeInterval":"30s", "enableConcurrency":true, "sampling":3 } // ← sampling обязателен +> ``` +> +> **Итоговый рабочий шаблон (все три фикса):** +> ```jsonc +> "routing": { +> "rules": [ ..., { "type":"field","user":["vless-space"], +> "balancerTag":"space-balancer","ruleTag":"vless-space-via-subscription" } ], +> "balancers": [ { "tag":"space-balancer","selector":["space-"], +> "strategy":{"type":"leastLoad"} } ] +> }, +> "observatory": { ..., "sampling": 3 } +> ``` +> +> **Артефакт, который сработал:** `~/tmp-xray-space/xui_v9.db` (md5 `8113add5b1d43a54f54253324eed2f1c`), залита на NAS. +> **Бэкапы:** `/mnt/RED_2TB/docker/backups/xray-admin-v9-20260915-102126/` (и v8, v7load, v7, `…-before-vless-space-20260915-012057` — исходная). +> +> **Как проверялось (Xray-клиент в докере на NAS):** конфиг из sub-ссылки → `docker run --name vless-test --network host -v /tmp/client_test_vless_space.json:/etc/xray/config.json:ro ghcr.io/xtls/xray-core:latest` → `curl --socks5-hostname 127.0.0.1:10808 https://api.ipify.org`. Питфолл: `chmod 644` конфига перед `docker run`, иначе `permission denied`. + +> ## ✅ ПРЕДЫДУЩИЙ ЭТАП: `xui_v7.db` ЗАЛИТА И РАБОТАЕТ ЧАСТИЧНО > > | Проверка после заливки `xui_v7.db` | Результат | > |---|---|