Интеграция с Remnawave
1. Применение HTTP-заголовков
Заголовок раздела «1. Применение HTTP-заголовков»Remnawave поддерживает два способа применения HTTP-заголовков к профилям подписки.
Способ 1 — Глобально (для всех приложений)
Заголовок раздела «Способ 1 — Глобально (для всех приложений)»В панели администратора Remnawave откройте Подписка → Настройки → Заголовки ответа. Добавьте нужные заголовки — они будут возвращаться всем клиентам при каждом запросе подписки.
Для Внешних сквадов заголовки настраиваются отдельно для каждого сквада: Пользователи → Внешние сквады → Заголовки.
Способ 2 — Точечно для Prizrak-Box через Правила ответов
Заголовок раздела «Способ 2 — Точечно для Prizrak-Box через Правила ответов»Правила ответов позволяют применять заголовки только тогда, когда запрос поступает от конкретного клиента,
определяемого по заголовку User-Agent. Это позволяет отправлять настройки именно для Prizrak-Box,
не затрагивая другие приложения.
Откройте Подписка → Правила ответов и создайте новое правило. Добавьте его в начало списка для обеспечения приоритета.
Prizrak-Box представляется заголовком User-Agent следующего формата на всех платформах:
| Платформа | User-Agent |
|---|---|
| Desktop | prizrak-box/{версия} (Desktop Build; {ОС} OS; Prizrak-Core {ядро}) |
| Android | prizrak-box/{версия} (Android Build; Prizrak-Core {ядро}) |
| Apple | prizrak-box/{версия} (Apple Build; Prizrak-Core {ядро}) |
Например, prizrak-box/1.0.21-beta06 (Desktop Build; Windows OS; Prizrak-Core v1.19.33-r1).
Условие prizrak-box/ подходит для всех платформ. В старых версиях строка начиналась
с префикса Clash-Meta/ (Clash-Meta/Prizrak-Box (...)), поэтому правило с условием Clash-Meta/Prizrak-Box ( перестанет
срабатывать на новых версиях — используйте prizrak-box/.
Используйте следующий JSON как шаблон — он охватывает все заголовки, поддерживаемые Prizrak-Box:
{ "name": "Prizrak-Box", "description": "Заголовки для клиентов Prizrak-Box", "enabled": true, "operator": "AND", "conditions": [ { "headerName": "user-agent", "operator": "CONTAINS", "value": "prizrak-box/", "caseSensitive": false } ], "responseType": "MIHOMO", "responseModifications": { "headers": [ { "key": "profile-logo", "value": "https://example.com/logo.png" }, { "key": "announce-url", "value": "https://t.me/your_channel" }, { "key": "fallback-domain", "value": "backup.example.com" }, { "key": "pxa-latency-dots", "value": "1" }, { "key": "pxa-simple-mode", "value": "1" }, { "key": "pxa-global-mode-mp", "value": "1" }, { "key": "pxa-conns-view-mp", "value": "1" }, { "key": "pxa-rp-mp", "value": "1" } ] }}Удалите ненужные заголовки. Описание каждого заголовка — в разделе Поддерживаемые заголовки.
2. Кастомный шаблон Mihomo
Заголовок раздела «2. Кастомный шаблон Mihomo»Чтобы отдавать Prizrak-Box полностью кастомный Mihomo-конфиг — например,
с прокси группой Smart — укажите subscriptionTemplate в Правиле ответа:
{ "name": "Prizrak-Box Smart Template", "description": "Кастомный шаблон Mihomo с прокси группой Smart для Prizrak-Box", "enabled": true, "operator": "AND", "conditions": [ { "headerName": "user-agent", "operator": "CONTAINS", "value": "prizrak-box/", "caseSensitive": false } ], "responseType": "MIHOMO", "responseModifications": { "subscriptionTemplate": "SmartPrizrak" }}Значение subscriptionTemplate (SmartPrizrak в примере) должно совпадать с именем шаблона,
настроенного в панели Remnawave.
Подробнее о типе прокси группы Smart и параметрах её конфигурации — в разделе Прокси группа Smart.
3. Шифрование конфигов методом AGE
Заголовок раздела «3. Шифрование конфигов методом AGE»Remnawave может зашифровать Mihomo-конфиг с помощью age перед отправкой клиенту Prizrak-Box. Расшифровать и применить конфиг сможет только клиент, у которого есть соответствующий секретный ключ.
Полное руководство по настройке — генерация ключей, конфигурация правила ответа в Remnawave и настройка клиента Prizrak-Box — в разделе Шифрование AGE.
4. Специфичные ключи Remnawave для шаблонов подписки
Заголовок раздела «4. Специфичные ключи Remnawave для шаблонов подписки»Remnawave поддерживает специальные ключи, расширяющих стандартную конфигурацию Mihomo и доступных внутри шаблонов подписки. Эти ключи позволяют гибко управлять прокси группами и провайдерами напрямую из шаблона.
Полная документация: docs.rw/guides/templates/mihomo
5. Описания прокси и групп
Заголовок раздела «5. Описания прокси и групп»Prizrak-Box показывает короткое описание рядом с сервером или прокси группой в списке прокси. Делайте его не длиннее 30 символов — таков лимит поля в панели Remnawave.
Описание сервера (прокси)
Заголовок раздела «Описание сервера (прокси)»Задаётся в настройках хоста в панели Remnawave:
- Откройте хост на редактирование.
- В блоке Опции нажмите Добавить.
- В разделе Подписка выберите пункт Описание сервера.
- Введите текст (не больше 30 символов) и сохраните хост.
Prizrak-Box читает его из ключа serverDescription прокси в подписке.
Remnawave отправляет этот ключ только клиентам, которых он узнаёт, а User-Agent, начинающийся с
prizrak-box/, входит в их число, поэтому дополнительная настройка не нужна.
Описание группы
Заголовок раздела «Описание группы»Описание прокси группы добавляется в шаблон Mihomo, как и другие параметры групп,
с помощью ключа description:
proxy-groups: - name: 👻 Prizrak type: select description: Лучшая локация автоматически proxies: - 🇩🇪 Germany - 🇫🇮 FinlandОписание группы показывается в строке группы, если она вложена в другую прокси группу.
Все ключи и правила отображения описаны в разделе Описания прокси и групп.
6. Поддержка функционала Prizrak-Core
Заголовок раздела «6. Поддержка функционала Prizrak-Core»Prizrak-Box работает на ядре Prizrak-Core. В нём есть возможности, которых нет в обычном Mihomo. Чтобы пользователи получили их через подписку, нужные параметры добавляются к прокси через маппер хоста Remnawave, в список mihomo.
- Меняется только подписка в формате Mihomo. Подписки Xray JSON и base64 остаются как были, если их списки в маппере пустые.
- Клиенты на обычном Mihomo незнакомые ключи игнорируют и работают как раньше.
Как настроить маппер хоста
Заголовок раздела «Как настроить маппер хоста»- Откройте Хосты и выберите хост для редактирования.
- В блоке Опции нажмите Добавить и в группе Расширенные выберите Маппер.
- В разделе Расширенные появится строка Маппер со статусом Не задано. Нажмите на неё, откроется JSON-редактор маппера.
- Вставьте JSON из примеров ниже и нажмите Сохранить в карточке хоста. Статус маппера сменится на Настроено.
Мультиплексирование mux.cool
Заголовок раздела «Мультиплексирование mux.cool»Prizrak-Core поддерживает мультиплексирование mux.cool, совместимое с Xray. Серверам Xray, которыми управляет Remnawave, дополнительная настройка не нужна: они принимают mux.cool сами.
{ "xrayJson": [], "mihomo": [ { "op": "set", "value": { "enabled": true, "max-carriers": 4, "max-concurrency": 8, "max-connections": 3, "xudp-concurrency": 16, "xudp-proxy-udp443": "reject" }, "to": "['mux.cool']" } ], "base64": []}Правило set записывает объект value в ключ mux.cool прокси этого хоста. В подписке Mihomo прокси получит такой блок:
proxies: - name: 🇩🇪 Germany type: vless # ... mux.cool: enabled: true max-carriers: 4 max-concurrency: 8 max-connections: 3 xudp-concurrency: 16 xudp-proxy-udp443: rejectREALITY ML-DSA-65
Заголовок раздела «REALITY ML-DSA-65»Если в REALITY-инбаунде сервера Xray задан mldsa65Seed, сервер подписывает сертификат REALITY постквантовой подписью ML-DSA-65. Prizrak-Core проверяет эту подпись, если в reality-opts прокси указан публичный ключ mldsa65-verify.
В value укажите публичный ключ ML-DSA-65 в формате base64url. Это значение mldsa65Verify, которое xray mldsa65 выводит вместе с mldsa65Seed для инбаунда.
{ "xrayJson": [], "mihomo": [ { "op": "set", "value": "<mldsa65Verify>", "to": "['reality-opts']['mldsa65-verify']" } ], "base64": []}Правило записывает ключ в reality-opts прокси этого хоста:
proxies: - name: 🇩🇪 Germany type: vless # ... reality-opts: public-key: <X25519 public key> short-id: <short id> mldsa65-verify: <mldsa65Verify>Регулятор потока XHTTP (h2-flow)
Заголовок раздела «Регулятор потока XHTTP (h2-flow)»Для хостов с транспортом XHTTP Prizrak-Core умеет включать регулятор потока HTTP/2. С ним сервер присылает данные не быстрее, чем клиент их читает, и не заполняет большие окна HTTP/2. Это снижает расход памяти на клиенте и помогает на слабых устройствах. Сервер Xray настраивать не нужно: регулятор работает на стороне клиента через стандартное управление потоком HTTP/2. Если на сервере стоит Jolymmiles/Xray-core со своим регулятором (h2Flow), они работают вместе, и включать регулятор можно с любой стороны или с обеих.
Регулятор выключен по умолчанию и действует только в режиме h2. Это ALPN h2 или пустой ALPN. При ALPN h3 или http/1.1 параметр ни на что не влияет.
{ "xrayJson": [], "mihomo": [ { "op": "set", "value": { "enabled": true, "max-stream-receive-window": 16777216, "max-connection-receive-window": 33554432 }, "to": "['xhttp-opts']['h2-flow']" } ], "base64": []}Правило записывает блок h2-flow в xhttp-opts прокси этого хоста:
proxies: - name: 🇩🇪 Germany type: vless network: xhttp # ... xhttp-opts: # ... h2-flow: enabled: true max-stream-receive-window: 16777216 max-connection-receive-window: 33554432max-stream-receive-window и max-connection-receive-window — необязательные окна приёма HTTP/2 в байтах на поток и на соединение, от 65535 до 1 ГиБ. С регулятором это потолок окна. Если их не указывать, действуют окна Go по умолчанию (4 МиБ на поток), а в value достаточно "enabled": true.