Настройка Remnawave
Чтобы RVC получал от Remnawave полную конфигурацию, нужно одно правило в Response Rules. Остальное — имя провайдера, объявления, маршрутизация, настройки приложения — задаётся заголовками подписки.
Response Rules
RVC всегда представляется как RVC/<версия> (например, RVC/1.0.3). Добавьте в Subscription → Response Rules правило выше стандартного Fallback Base64 (правила проверяются сверху вниз до первого совпадения):
{
"name": "RVC",
"description": "Xray JSON для клиента RVC",
"enabled": true,
"operator": "AND",
"conditions": [
{ "headerName": "user-agent", "operator": "REGEX", "value": "^RVC", "caseSensitive": false }
],
"responseType": "XRAY_JSON",
"responseModifications": {
"additionalExtendedClientsRegex": ["^RVC/"]
}
}Или допишите ^RVC в регулярку существующего правила — и туда же responseModifications. При caseSensitive: false панель сравнивает значения в нижнем регистре, поэтому ^RVC совпадёт с RVC/1.0.5.
Описание серверов
Remnawave отдаёт «Описание сервера» хостов (serverDescription) только «расширенным клиентам»: встроенный список панели RVC не содержит, поэтому его нужно добавить через additionalExtendedClientsRegex, как в примере выше. Без этого под именем локации будет только протокол (VLESS).
С XRAY_JSON клиент получает ваш шаблон целиком: маршрутизацию, DNS и балансировщики. Если в шаблоне виртуального хоста есть балансировщик (например, leastLoad с burstObservatory, см. Xray JSON Advanced), RVC покажет его как «Автовыбор».
Без правила
RVC попадёт под стандартное правило Fallback Base64 и получит XRAY_BASE64. Подписка будет работать, но без балансировщиков из шаблона и без описаний серверов. Настройка «Serve JSON at base subscription» тут не поможет: панель применяет её только к своему встроенному списку клиентов.
Лимит устройств
Включите Subscription → Settings → HWID Device Limit: RVC всегда присылает x-hwid, отключить это нельзя. Без x-hwid панель с включённым лимитом отвечает 404. Как считается HWID — в разделе Запрос подписки.
Дополнительные заголовки
В Subscription → Settings → Response headers добавьте нужные заголовки из справочника:
profile-title: base64:<base64 от "Мой VPN\nБыстрые серверы в Европе">
support-url: https://t.me/my_support_bot
profile-web-page-url: https://my-vpn.example
profile-logo-url: https://my-vpn.example/logo.png
announce: rwEncodeBase64:Текст объявления
routing: rvc://routing/onadd/<base64 JSON профиля>Кириллица в заголовках
HTTP-заголовки не могут содержать кириллицу напрямую. Префикс rwEncodeBase64: просит Remnawave закодировать значение само — клиент получит base64:…. Можно передать и готовое base64:…, например когда в profile-title нужна вторая строка с описанием.
Шаблон XRAY_JSON
Шаблон используется почти без изменений: routing, dns, балансировщики и observatory работают как есть. RVC меняет только то, что нужно для безопасности:
- SOCKS/HTTP-входы шаблона (
10808,10809) заменяются встроенным TUN — локальных портов нет; - секции
api,metricsи правила для служебных входов удаляются; - геотеги, которых нет во встроенных базах, докачиваются из Loyalsoldier, а неизвестные — отбрасываются, чтобы ядро всё равно запустилось.
Имя локации берётся из remarks, описание — из meta.serverDescription. Флаг — из эмодзи в начале remarks.