← на главную
Документация · 3x-ui

Подключение Clearway к 3x-ui

3x-ui устроен иначе, чем Remnawave: панель не разделяет «инбаунд на сервере» и «адрес для клиента» — она считает, что клиент подключается напрямую туда же, где стоит сервер. Мы подключаемся через CDN-домен, поэтому нужен один ручной шаг, которого в Remnawave нет.

Путь (path) у вас будет не литеральным /api/v1/sync/, а случайным — например /api/v1/x7k2p9qr/sync/. Это не секрет для авторизации (доступ проверяется UUID клиента, а не путём) — так каждый оператор получает уникальный traffic-паттерн, и DPI не может заблокировать всех разом по одной сигнатуре. Везде ниже подставляйте значение из вашего реального ответа регистрации.
Важно сразу: в 3x-ui пока нет функции «подставить другой домен для клиентской ссылки» — это открытый запрос функции у разработчиков, ещё не реализован. Автогенерированная ссылка/QR-код в самой панели будет вести на ваш сервер напрямую — использовать её как есть нельзя. Ниже — как собрать рабочую ссылку вручную. Делается один раз на инбаунд, не на каждого клиента.

1. Добавьте инбаунд на сервере

3x-ui → InboundsAdd Inbound: Protocol — VLESS, Listening IP — 0.0.0.0, Port — значение из inbound_json.port, Network — xhttp.

У нашего инбаунда есть XHTTP-параметры в поле extra (режим packet-up, аплинк через тело запроса), под которые в обычной форме 3x-ui нет полей. Не ищите их в GUI — переключите редактор инбаунда в режим JSON (иконка </> рядом с формой) и вставьте inbound_json целиком:

{
  "tag": "CLEARWAY",
  "listen": "0.0.0.0",
  "port": 25454,
  "protocol": "vless",
  "settings": { "clients": [], "decryption": "none" },
  "streamSettings": {
    "network": "xhttp",
    "security": "none",
    "xhttpSettings": { "mode": "packet-up", "path": "/api/v1/sync/", "extra": { "...": "..." } }
  }
}

Сохраните. security: "none" здесь верно — TLS терминирует CDN-edge, а не ваш сервер.

2. Добавьте клиента (UUID)

В этом же инбаунде, вкладка ClientsAdd Client → создайте UUID как обычно. 3x-ui покажет свою автогенерированную ссылку — не используйте её, она ведёт на IP вашего сервера напрямую, без CDN.

3. Соберите клиентскую ссылку вручную

Возьмите UUID из шага 2 и подставьте вместо {UUID}, а {subdomain} замените на значение subdomain из ответа регистрации:

vless://{UUID}@{subdomain}:443?encryption=none&security=tls&type=xhttp&mode=packet-up&path=%2Fapi%2Fv1%2Fsync%2F&host={subdomain}&sni={subdomain}&fp=chrome&alpn=h2%2Chttp%2F1.1#Clearway
Пример с реальными значениями:

vless://a1b2c3d4-e5f6-7890-abcd-ef1234567890@a7f3k2.whitechannel-x1-cdn.ru:443?encryption=none&security=tls&type=xhttp&mode=packet-up&path=%2Fapi%2Fv1%2Fsync%2F&host=a7f3k2.whitechannel-x1-cdn.ru&sni=a7f3k2.whitechannel-x1-cdn.ru&fp=chrome&alpn=h2%2Chttp%2F1.1#Clearway

Вставьте строку в клиент (v2rayNG, Happ, NekoBox — любой, поддерживающий импорт по vless://-ссылке или QR). Шаблон собирается один раз на инбаунд — для новых клиентов меняется только {UUID}, остальное одинаково для всех.

Рекомендация: закройте origin от прямых обращений

Уникальный путь защищает от DPI-фингерпринтинга, но не от прямого обращения к серверу мимо CDN — если порт открыт всему интернету, до него можно достучаться напрямую по IP. Настройте файрвол так, чтобы порт принимал соединения только с нашего gateway 159.194.204.83 — именно он обращается к вашей ноде (не Yandex CDN напрямую). На работу через CDN это не влияет.

Частые ошибки