Подписки и правила ответов
Правила ответов решают, что панель отдаёт на каждый запрос подписки. Приложению клиента нужен конфиг, браузеру достаточно красивой страницы, а чужому скрипту, который перебирает украденные ссылки, лучше всего получить 404 и уйти ни с чем. Модуль показывает текущее состояние одним экраном, применяет готовые наборы правил и включает привязку подписки к устройствам. Всё меняется через API панели, конфиги вручную править не нужно.
Как это устроено
Заголовок раздела «Как это устроено»Панель оценивает каждый запрос подписки по заголовкам: какое приложение его прислало и с какого устройства. Правило состоит из условий по заголовкам и типа ответа. Правила проверяются по порядку сверху вниз, срабатывает первое подходящее, и его тип ответа уходит клиенту.
Привязка устройств работает рядом с правилами. Happ и INCY передают панели заголовок x-hwid с идентификатором устройства. Когда лимит включён, подписка выдаётся не больше чем N устройствам одного пользователя, остальные получают вежливое сообщение вместо конфигов. Список занятых мест виден в карточке пользователя в панели, потерянное устройство оттуда можно удалить и освободить слот. Отдельным пользователям лимит можно поменять или отключить персонально, это делается в панели.
Всё хранится в панели, те же настройки доступны в её веб-интерфейсе в разделе подписок. Модуль лишь удобная обёртка: меняет значения через API, показывает результат и хранит копии. Если вы пользуетесь внешними группами панели, учтите, что правила ответов главнее их настроек.
Что панель может отдать
Заголовок раздела «Что панель может отдать»Тип ответа в правиле решает, что именно получит клиент. Наборы правил модуля используют часть типов, свои правила в панели можно собрать из полного списка.
| Тип ответа | Что получает клиент |
|---|---|
| Xray JSON | Полный конфиг Xray одним файлом, с правилами маршрутизации. Так работают Happ, INCY и v2rayN |
| Base64 | Базовый список серверов в кодировке Base64. Его понимает любое приложение, это безопасный выбор по умолчанию |
| Mihomo, Clash, Stash, Sing-box | Конфиг в формате конкретного семейства клиентов |
| Страница в браузере | HTML-страница подписки со списком серверов и инструкциями |
| Блок 403, 404, 451 | Пустой отказ. Для чужих запросов 404 выглядит естественнее всего: будто по этому адресу ничего и не было |
| Обрыв соединения | Панель молча разрывает соединение, без кода ответа |
Настройка
Заголовок раздела «Настройка»-
Откройте пункт
5«Подписки: правила и страница» главного меню и выберите «Подписки и правила ответов»:REMNAWAVE REVERSE-PROXY by eGames Версия: 3.8.1 Wiki: https://wiki.egam.es/ 5.Подписки: правила и страница 6.WARP Native 8.Xray Checker: мониторинг подписки 0.Выход Выберите действие (0-13):5
Подписки: правила и страница 1.Подписки и правила ответов какой конфиг получит каждый клиент, лимит устройств, JSON и пути 2.Страница подписки шаблон Orion и возврат стандартной страницы 0.Выход Выберите действие (0-2):1
-
Модуль сразу показывает состояние: какие правила работают, включён ли лимит устройств, что отдаётся на базовом пути. Ниже действия:
Подписки и правила ответов Подробности в wiki: https://wiki.egam.es/ru/configuration/subscription-rules/ Правила ответов: не настроены свежие версии панели без правил отвечают 403 на запросы подписки, примените пресет ниже ✗ Лимит устройств (HWID): выключен JSON на базовом пути подписки: выключен Доп. пути /json, /stash, /mihomo: открыты 1.Показать правила подробно 2.Пресет «Клиенты и браузеры» браузер получает страницу подписки, все приложения получают конфиги Base64 3.Пресет «Строгий: Happ и INCY + устройства» конфиги получают только Happ/INCY с привязкой устройства и известные приложения, остальным возвращается 404 4.Разрешить всех одним правилом 5.Лимит устройств (HWID): включить 6.JSON на базовом пути: включить 7.Доп. пути /json, /stash, /mihomo: закрыть 8.Восстановить сохранённые правила 0.Выход Выберите действие (0-8):2
-
Пресет «Клиенты и браузеры» подходит большинству установок: браузер получает страницу подписки, все приложения получают конфиги в формате Base64, который понимает каждый клиент:
[?] Заменить текущие правила (0 шт.) на пресет «Клиенты и браузеры» из 2 правил? Текущие правила будут сохранены в файл. (y/n):y Текущие правила сохранены: rules-20261009-143210.json Пресет применён Изменения вступают в силу сразу, приложения увидят их при следующем обновлении подписки.
-
Экран состояния обновился. Пункт 1 показывает каждое правило с условиями:
Правила ответов: 2 1. ✓ Браузеры → страница в браузере 2. ✓ Все остальные → Base64 ✗ Лимит устройств (HWID): выключен Выберите действие (0-8):1 ✓ 1. Браузеры [AND → страница в браузере] user-agent CONTAINS "Mozilla" (без учёта регистра) ✓ 2. Все остальные [AND → Base64] условий нет, правило подходит любому запросу Нажмите любую клавишу, чтобы вернуться…
Строгий пресет
Заголовок раздела «Строгий пресет»Пресет «Строгий: Happ и INCY + устройства» рассчитан на продажу подписок. Он отдаёт конфиги только проверенным запросам, а всем остальным возвращает 404. Набор правил выглядит так:
| Кто спрашивает | Условие | Что получает |
|---|---|---|
| Happ и INCY | user-agent начинается с Happ/ или INCY/, есть корректный x-hwid |
Полный конфиг Xray JSON |
| Клиенты Clash | user-agent начинается с FlClashX/, koala-clash/, prizrak-box/, rabbithole/, clash-mi/ или ClodClash/, есть корректный x-hwid |
Конфиг Mihomo под ядро Clash |
| Karing и InHive | user-agent начинается с Karing/ или InHive/, есть корректный x-hwid |
Конфиг Sing-box |
| Известные приложения | user-agent начинается с названия из списка: v2rayN, v2rayNG, V2Box, Streisand, sing-box, Karing, FlClash, Flowvy, prizrak-box, Koala Clash, Clod Clash, sfa, sfi, sfm, sft, rabbithole |
Список Base64 |
| Браузер | user-agent содержит Mozilla |
Страницу подписки |
| Все остальные | условий нет | 404 |
Правила ответов: 6 1. ✓ Клиенты Xray JSON с устройством → Xray JSON 2. ✓ Клиенты Clash с устройством → Mihomo 3. ✓ Karing и InHive с устройством → Sing-box 4. ✓ Известные приложения → Base64 5. ✓ Браузеры → страница в браузере 6. ✓ Все остальные → 404
Строгий пресет имеет смысл включать вместе с лимитом устройств: тогда украденная ссылка бесполезна даже с подменённым названием приложения, потому что чужое устройство не пройдёт лимит. Клиенты Clash и Sing-box, RenoarX, Happ и INCY сообщают панели идентификатор устройства: со включённым лимитом они проходят проверку и получают конфиг в своём формате.
Лимит устройств
Заголовок раздела «Лимит устройств»Включается пунктом 5. Панель спросит допустимое число устройств на пользователя и покажет предупреждение:
[?] Лимит устройств на пользователя (1-20, Enter подставит 3):3 Клиенты без заголовка x-hwid (v2rayN, v2rayNG, FlClash, Stash) не смогут получить подписку. Таким пользователям лимит отключается в панели персонально. [?] Включить лимит устройств: до 3 на пользователя? (y/n):y Лимит устройств включён: до 3 на пользователя Изменения вступают в силу сразу, приложения увидят их при следующем обновлении подписки.
Что панель знает об устройстве:
| Заголовок | Что содержит | Пример |
|---|---|---|
x-hwid |
Идентификатор устройства, обязательный для лимита | UE42LJXu4DbiCaBv |
x-device-os |
Система устройства | iOS или Android |
x-ver-os |
Версия системы | 18.3 |
x-device-model |
Модель устройства | iPhone 14 Pro Max |
Happ, INCY, RenoarX, DeskBox, v2RayTun, Flowvy, Clod Clash и клиенты Clash присылают эти заголовки сами. Throne, Shadowrocket, Clash Mi и Karing тоже поддерживают привязку, но шлют заголовок только после её включения в настройках приложения. Без заголовка остаются v2rayN, v2rayNG, FlClash, Stash и официальный sing-box: с включённым лимитом их владельцы подписку не получат. Такому пользователю лимит отключается персонально в карточке в панели, на остальных ограничение продолжит действовать.
Лимит считается по разным устройствам. Если пользователь сменил телефон и старый занимает слот, лишнее устройство удаляется из списка в карточке, и новое сразу проходит.
Восстановление
Заголовок раздела «Восстановление»Перед каждой заменой правил модуль кладёт текущий набор в /usr/local/remnawave_reverse/subscription-rules/ с отметкой времени. Пункт 8 показывает копии списком, выбранная возвращается на панель, а состояние на момент восстановления тоже сохраняется. Хранятся десять последних копий.
Восстановление правил из копии 1.2026-10-09 14:32:10 · правил: 4 2.2026-10-09 14:20:03 · правил: 2 0.Выход Выберите действие (0-2):1 [?] Восстановить правила из rules-20261009-143210.json (4 правил)? (y/n):y Текущие правила сохранены: rules-20261009-144502.json Правила восстановлены
