Минут десять, три шага: инбаунд на сервере, хост с адресом входа и проверка. Дальше ссылки и подписку для абонентов выдаёт сама панель — собирать ничего вручную не нужно.
метка.edge-assets.ru,
отправка методом PUT), такой хост больше не работает. Настройте его заново по разделу
«Вход 2»: у него общий адрес, ваш собственный путь и три параметра сессии.
Абонентам нужно приложение на ядре Xray 26.6 или новее.Uplink Data Placement → headerМакс. размер загрузки (байт) → 4096Server Max Header Bytes → 262144От версии зависит, умеет ли панель сама выдавать правильные ссылки. Номер версии виден на главной странице панели.
| Версия | Как настраивать |
|---|---|
| 3.4 и новее | Шаги 1–3 ниже как есть. Ссылки и подписку выдаёт панель. |
| 3.2–3.3 | Шаги 1 и 3 как есть. В шаге 2 вместо «Хостов» — External Proxy. |
| 3.0–3.1 | Шаг 1, затем ссылку — вручную (раздел «Ссылка вручную»): эти версии не передают в ссылку метод GET, и ссылки из панели через CDN не работают. |
| 2.9 и старше | Сначала обновите панель (команда x-ui update): эти версии при сохранении стирают часть нужных полей, и новую схему в них не включить. |
Пять минут на эту схему экономят полдня. Почти все ошибки в настройке — это ошибки в представлении о том, кто с кем соединяется.
абонент ──TLS──▶ ваш-поддомен.whitechannel-x1-cdn.ru:443 (адрес CDN)
│
▼
наш шлюз 159.194.204.83
│ обычный HTTP, без TLS
▼
ваш сервер IP:ПОРТ_ИНБАУНДА
С прямым адресом шлюза в цепочке нет: CDN подключается к вашему серверу сам, по тому же порту и пути.
Отсюда три вещи, о которые чаще всего спотыкаются.
none.
TLS снимается на стороне CDN, до вашего сервера идёт обычный HTTP. Инбаунд с TLS ответит нам
«Client sent an HTTP request to an HTTPS server», и туннель не соберётся. TLS для абонента
включается в хосте (шаг 2), а не в инбаунде.
/api/v1/x7k2p9qr/sync/.
Везде ниже подставляйте значение со страницы сервера в кабинете, символ в символ, вместе со
слэшем в конце.
Входящие → Добавить. Протокол — VLESS, порт — тот, что вы указали в кабинете при добавлении сервера, транспорт — xhttp, безопасность — none. В разделе XHTTP заполните:
| Поле | Значение |
|---|---|
| Путь | ваш путь из кабинета |
| Режим | packet-up |
| HTTP-метод Uplink | GET (packet-up only) |
| Uplink Data Placement | header |
| Макс. размер загрузки (байт) | 4096 |
| Server Max Header Bytes | 262144 |
Остальные поля оставьте как есть. Обфускацию padding не включайте. Клиентов (UUID) добавляйте в этот инбаунд как обычно. Названия полей — по последней версии панели; в старых 3.x подписи могут немного отличаться, но поля те же.
packet-up, поэтому сначала режим, потом метод.auto ядро на стороне абонента понимает как «данные в теле
запроса», а такие запросы Билайн и МегаФон режут. Нужен именно header.Меню Хосты → Добавить хост. Хост говорит панели, что абоненты подключаются не к IP вашего сервера, а к нашему входу. После этого все ссылки и подписка из панели сразу ведут через CDN.
| Раздел | Поле | Значение |
|---|---|---|
| Основное | Входящие | ваш XHTTP-инбаунд из шага 1 |
| Основное | Адрес | ваш поддомен, например a7f3k2.whitechannel-x1-cdn.ru |
| Основное | Порт | 443 |
| Безопасность | Безопасность | tls |
| Безопасность | SNI | ваш поддомен (или «Использовать адрес как SNI») |
| Безопасность | Fingerprint | chrome |
| Безопасность | ALPN | h2, http/1.1 |
| Дополнительно | Заголовок Host | ваш поддомен |
| Дополнительно | Путь | пусто — возьмётся из инбаунда |
Настройки XHTTP (метод, данные в заголовках, размер загрузки) хост берёт из инбаунда — дублировать их не нужно.
TLS,
адрес — ваш поддомен, порт — 443.
Два способа, оба занимают секунды и точнее любых догадок.
Нужна для версий 3.0–3.1 — или если хотите собирать ссылки сами. Замените {UUID} на UUID клиента, {subdomain} — на ваш поддомен, а путь %2Fapi%2Fv1%2Fsync%2F — на ваш (слэши записываются как %2F). Больше ничего не меняйте:
vless://{UUID}@{subdomain}:443?encryption=none&type=xhttp&mode=packet-up&security=tls&fp=chrome&alpn=h2%2Chttp%2F1.1&path=%2Fapi%2Fv1%2Fsync%2F&host={subdomain}&sni={subdomain}&extra=%7B%22xmux%22%3A%7B%22cMaxLifetimeMs%22%3A0%2C%22cMaxReuseTimes%22%3A%2236-96%22%2C%22maxConcurrency%22%3A%228-32%22%2C%22maxConnections%22%3A0%2C%22hMaxRequestTimes%22%3A%22320-640%22%2C%22hMaxReusableSecs%22%3A%22720-1800%22%7D%2C%22uplinkHTTPMethod%22%3A%22GET%22%2C%22uplinkDataPlacement%22%3A%22header%22%2C%22uplinkChunkSize%22%3A4096%2C%22scMaxEachPostBytes%22%3A4096%7D#Clearway
Если все ссылки вы собираете вручную, в инбаунде можно поставить Uplink Data Placement = auto вместо header (остальные поля — как в шаге 1). Тогда сервер принимает и старые, и новые ссылки, и абонентов можно переводить постепенно, без перерыва. Но ссылки, которые при этом покажет сама панель, будут со старой схемой — ими не пользуйтесь.
В кабинете на странице сервера есть блок «Вход 2 — хост в панели». У этого входа общий адрес, ваш собственный путь вида /e/<токен>/… и свои параметры сессии в extra.
extra, а UUID и остальные ваши настройки сохранит. Ссылка считается в браузере и никуда не отправляется.Это персональный адрес сервера вида метка.nordtile.ru — копия хоста Входа 1, через которую CDN подключается прямо к вашей ноде, без нашего шлюза. По замерам это самый стабильный путь у мобильных операторов. Инбаунд, путь, пользователи и настройки XHTTP остаются прежними.
ufw allow ВАШ_ПОРТ/tcp. Узлы CDN подключаются к ноде напрямую, их список не публикуется. Инбаунд и его настройки не трогайте.К вашей ноде подключаются три наших адреса: 159.194.204.83, 141.133.200.63 и 177.3.209.116. Если прямой адрес не включён, откройте порт инбаунда только для них — так до ноды нельзя достучаться мимо нас:
ufw allow from 159.194.204.83 to any port ВАШ_ПОРТ proto tcp && \
ufw allow from 141.133.200.63 to any port ВАШ_ПОРТ proto tcp && \
ufw allow from 177.3.209.116 to any port ВАШ_ПОРТ proto tcp
Если включён прямой адрес, порт должен быть открыт для всех: к ноде подключаются узлы CDN, а их список не публикуется. Абонента по-прежнему проверяет Xray по UUID, а уникальный путь защищает от сканирования.
ufw allow ВАШ_ПОРТ/tcp
Uplink Data Placement не header (или «Default (auto)»). Поправьте три поля из блока «Обновление 25 сентября» и обновите подписку у абонентов.Макс. размер загрузки = 4096 или Server Max Header Bytes = 262144.443), метод (GET) или путь.ufw allow ВАШ_ПОРТ/tcp.none: TLS для абонентов задаётся в хосте.