На этой странице
Документация Wrabbit
Wrabbit — это бесплатный прокси-клиент для iPhone и Mac на ядре Xray. Он не предоставляет серверы: вы подключаете собственные конфигурации и подписки. Эта страница описывает, как пользоваться клиентом и как провайдерам подготовить подписку под Wrabbit.
Что такое Wrabbit
Wrabbit — клиент, а не VPN-сервис. У него нет собственных серверов и он не продаёт доступ. Вы добавляете свои vless://, trojan://, ss:// или ссылку на подписку — ключи и конфигурации хранятся только на устройстве.
- Ядро — Xray-core, протоколы VLESS, Trojan, Shadowsocks.
- Платформы: iPhone / iPad (iOS 16 и новее) и Mac (macOS 13 и новее) — одно приложение, одинаковые конфиги и подписки.
- Гибкая маршрутизация по спискам IP и авто-выбор сервера.
- Совместимость с подписками панелей (Remnawave и совместимых) — без аккаунта и регистрации.
wrab- и являются аддитивными: незнакомые поля другие клиенты (Happ, v2rayNG, Streisand и т.п.) просто игнорируют — одну и ту же подписку можно отдавать всем.Быстрый старт
- Установите Wrabbit из App Store: iPhone / iPad (iOS 16 и новее) или Mac (macOS 13 и новее).
- Нажмите «+» и добавьте конфигурацию: вставьте ссылку из буфера, отсканируйте QR-код или вставьте URL подписки. Формат определяется автоматически.
- Выберите сервер или режим «Авто» и нажмите «Подключить». При первом подключении iOS или macOS попросит разрешить VPN-профиль.
macOS
- Тот же клиент в Mac App Store (Mac Catalyst): импорт, подписки, авто-режим и маршрутизация работают так же, как на iPhone.
- В строке меню — иконка Wrabbit: быстрое подключение/отключение, статус, открыть окно, настройки и выход — без разворачивания приложения.
- QR-код сканируется камерой Mac (при первом использовании система запросит разрешение; текст запроса локализован под язык интерфейса).
Если подписка перестала отдавать серверы (истёк срок или исчерпан трафик), в карточке появится баннер и кнопка «Продлить» — данные о доступе берутся из ответа подписки, см. раздел «Подписки для провайдеров».
Импорт конфигов и подписок
Поддерживаемые форматы
| Формат | Поддержка |
|---|---|
vless:// (одиночная ссылка) | Да |
trojan:// | Да |
ss:// (SIP002 и legacy base64) | Да |
Ссылка на подписку http(s):// | Да |
| Base64-блоб подписки | Да — декодируется автоматически |
| Многострочный список ссылок | Да |
vmess:// | Не поддерживается |
| Clash / sing-box / XRAY JSON | Не поддерживается |
| Импорт из файла | Не поддерживается (буфер, QR, текст) |
Способы добавления
- Вставка из буфера обмена или в текстовое поле импорта.
- Сканирование QR-кода камерой.
- Ручной редактор конфигурации (VLESS / Trojan / Shadowsocks).
Клиент сам различает: одиночная http(s)://-ссылка без переносов строк → подписка; одиночная vless:// → отдельный сервер; многострочный текст или trojan:///ss:// → массовый разбор.
Обновление подписки
- Запрос идёт с User-Agent
Wrabbitи без кеша (Cache-Control: no-cache), таймаут 20 секунд. - Успешный ответ полностью заменяет список серверов подписки; ручной выбор сохраняется, если тот же сервер остался.
- Сетевые ошибки и коды 4xx/5xx старый список не трогают — показывается тост «Не удалось обновить».
- Авто-обновление — раз в сутки, глобальный тумблер в настройках. Заголовок интервала обновления из ответа подписки сейчас не учитывается.
Протоколы и транспорты
| Протокол | Импорт | Транспорты |
|---|---|---|
| VLESS | vless:// | REALITY (gRPC, TCP), xHTTP/CDN (TLS), WebSocket (TLS) |
| Trojan | trojan:// | TCP/TLS, WebSocket/TLS, gRPC/TLS, TCP без TLS |
| Shadowsocks | ss:// | TCP (без SIP003-плагинов) |
| VMess | — | Не поддерживается |
Для VLESS+REALITY нужны параметры pbk и sni (опционально sid, flow, fp, servicename). Для xHTTP/CDN — path и sni/host. Флоу: none или xtls-rprx-vision.
vmess://, Shadowsocks с плагинами (SIP003), WebSocket без TLS, REALITY поверх WebSocket, а также security=none для VLESS. Такие ссылки отклоняются с ошибкой транспорта.Маршрутизация
По умолчанию весь трафик идёт через туннель. Локальные/частные сети исключаются автоматически. Дополнительно можно вывести выбранные адреса напрямую, мимо туннеля (split-tunnel по IP).
Списки маршрутизации
- Формат — IPv4 CIDR (одиночный IP трактуется как
/32). Разделители: перенос строки, запятая, пробел или;. - Списки добавляются текстом или по ссылке (обычный текстовый файл) и обновляются по этой ссылке.
- Для русской локали один раз подсевается готовый пресет RU-зоны; маршрутизация включается тумблером.
Доменная маршрутизация из подписки (стандарт Happ)
Провайдер может доставить правила маршрутизации прямо с подпиской — заголовком routing (тот же формат, что у Happ: happ://routing/onadd/<base64-json>). Wrabbit применяет DirectSites/ProxySites/BlockSites (домены) и DirectIp/ProxyIp/BlockIp (CIDR). Доменные правила работают за счёт sniffing'а соединений. Управление и состав — в Настройки → Маршрутизация доменов.
geosite:cn, geoip:*) требуют гео-файлов (.dat), которые в клиент не загружаются (память Network Extension), поэтому такие теги пропускаются — применяются только явные домены и адреса. Полные гео-категории работают в Happ, который качает базы сам. Per-app split-tunnel в клиенте не используется.Авто-режим и выбор сервера
В режиме «Авто» перед подключением клиент пингует серверы группы через прокси (поднимает эфемерный Xray и проверяет доступность), затем выбирает быстрейший живой сервер.
Серверам можно задать роль: обычные (direct) — быстрые прямые серверы, и особые (wl) — резервные серверы для авто-режима. Приоритет — быстрейший живой обычный сервер; если таких нет, клиент берёт особый. На iPhone и Mac при нескольких серверах туннель умеет сам перезапускаться и переключаться между ними при просадке связи.
Для хостов с несколькими edge-входами (балансировщик настроен в панели) Wrabbit дополнительно подтягивает ту же подписку в формате xray-json (<url>/json) и использует нативный пул балансировки — паритет с Happ. Если /json недоступен или подписка чужая, клиент просто работает с одиночным выходом. Отдельной настройки на стороне провайдера не требуется.
Подписки для провайдеров
Wrabbit читает метаданные подписки двумя каналами: через HTTP-заголовки ответа (приоритетный источник) и, как фолбэк, через строку в теле подписки с префиксом # (например #wrab-mode: auto-only). Заголовок всегда важнее строки тела.
brand/hide/routing). Premium-заголовки без валидного токена wrab-license клиент просто игнорирует. Подробно — в разделе «Лицензирование провайдеров».| Ключ | Источник | Что делает | Доступ |
|---|---|---|---|
wrab-mode | Заголовок или #wrab-mode: | auto-only — скрывает отдельные серверы, показывает только «Авто», выбор фиксируется на «Авто». | Бесплатно |
Profile-Title | Заголовок | Название подписки. Поддерживает base64:<...>. | Бесплатно |
Subscription-Userinfo | Заголовок | Трафик и срок: upload=…; download=…; total=…; expire=…. | Бесплатно |
hide-settings | Заголовок или #hide-settings: | 1/true/yes/on — скрывает технические поля серверов, копирование, QR, шаринг и редактирование. | Лицензия · hide |
Announce | Заголовок | Объявление в карточке подписки. Поддерживает base64:<...>. | Лицензия · brand |
Support-Url | Заголовок | Правая кнопка: поддержка/«Продлить». Если ссылка ведёт на t.me, показывается иконка Telegram. Только http/https. | Лицензия · brand |
Profile-Web-Page-Url | Заголовок | Левая (i)-кнопка: сайт/личный кабинет провайдера. Только http/https. | Лицензия · brand |
wrab-logo | Заголовок | URL логотипа в шапке подписки (http/https). | Лицензия · brand |
routing | Заголовок или строка happ://routing/… | Правила маршрутизации сайтов/IP (стандарт Happ): happ://routing/onadd/<base64-json>. Применяются явные домены (DirectSites/ProxySites/BlockSites) и CIDR (DirectIp/ProxyIp/BlockIp). Теги geosite:/geoip: пропускаются (работают в Happ). | Лицензия · routing |
wrab-license | Заголовок или #wrab-license: | Подписанный токен лицензии Wrabbit — включает premium-возможности (brand/hide/routing) для подписок с этого домена. Без валидного токена они выключены. См. «Лицензирование провайдеров». | — |
wrab-zone — роль сервера (в самой ссылке)
Роль сервера в авто-режиме можно задать явно — query-параметром в vless://: wrab-zone=direct (обычный) или wrab-zone=wl (особый/резервный). Роль также распознаётся по метке в названии сервера (например, WL). Без метки сервер считается обычным (direct).
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
Profile-Title: base64:V3JhYg==
Subscription-Userinfo: upload=0; download=0; total=0; expire=1788000000
wrab-mode: auto-only
vless://uuid@nl1.example.com:443?type=grpc&security=reality&pbk=KEY&sni=cloudflare.com&sid=ab&wrab-zone=direct#NL-1
vless://uuid@cdn.example.com:443?type=xhttp&security=tls&sni=edge.example.com&path=/xh&host=edge.example.com&wrab-zone=wl#NL-1 CDNИстёкшая или отключённая подписка
Если подписка перестала быть активной, панель отдаёт HTTP 200 с метаданными, но без серверов. Wrabbit считает это сигналом «доступа сейчас нет» (не ошибкой): серверы убираются, показывается баннер и кнопка продления (ведёт на Support-Url), активный туннель на исчезнувшем сервере отключается. Поле восстанавливается при следующем обновлении, когда серверы снова появятся.
Лицензирование провайдеров (premium-интеграция)
Wrabbit — нейтральный бесплатный клиент: оплату с пользователей мы не берём, в приложении нет платных функций. Часть возможностей интеграции — premium и доступна провайдерам по лицензии (B2B, вне приложения). Это и есть монетизация клиента: платит провайдер за расширенную интеграцию, конечный пользователь — никогда.
Что бесплатно, а что по лицензии
| Фича | Что включает | Заголовки |
|---|---|---|
| Базовое (бесплатно) | Импорт серверов и подписок, авто-режим и выбор сервера, роли серверов, название и трафик/срок подписки. Работает у всех и всегда. | Profile-Title, Subscription-Userinfo, wrab-mode, wrab-zone |
brand | Брендинг подписки: логотип в шапке, объявление, кнопки поддержки и сайта/кабинета провайдера. | wrab-logo, Announce, Support-Url, Profile-Web-Page-Url |
hide | Скрытие данных серверов в UI: адрес/SNI/UUID/транспорт, копирование, QR, шаринг и редактирование (показывается замок). | hide-settings |
routing | Доставка доменного роутинг-профиля прямо с подпиской (стандарт Happ). | routing |
Как это работает
Лицензия — это подписанный токен, привязанный к домену вашей подписки и сроку действия. Вы кладёте его в заголовок ответа подписки wrab-license (или строкой #wrab-license: в теле — для статических файлов). Клиент проверяет подпись офлайн встроенным ключом (Ed25519) — к нашим серверам он при этом не обращается. Если токен валиден, не истёк, а его домен совпадает с host вашей подписки — соответствующие premium-возможности включаются. Нет токена или он невалиден — эти возможности просто выключены, остальная подписка работает как обычно.
HTTP/1.1 200 OK
Content-Type: text/plain; charset=utf-8
Profile-Title: base64:V3JhYg==
Subscription-Userinfo: upload=0; download=0; total=0; expire=1788000000
wrab-logo: https://cdn.example.com/logo.png
Announce: base64:0J/RgNC40LLQtdGCIQ==
Support-Url: https://t.me/example_support
hide-settings: 1
routing: happ://routing/onadd/<base64-json>
wrab-license: v1.<base64url(payload)>.<base64url(sig)>
vless://uuid@nl1.example.com:443?type=grpc&security=reality&pbk=KEY&sni=cloudflare.com#NL-1Формат токена
Токен: v1.<base64url(payload)>.<base64url(подпись Ed25519)>. payload — компактный JSON: dom (домен подписки), feat (массив фич — brand/hide/routing), exp (Unix-срок действия), kid (идентификатор ключа). Подпись считается над строкой v1.<base64url(payload)>. Выпускаем токены только мы: подделать подпись, имея лишь публичный ключ внутри клиента, нельзя.
Как получить лицензию
Self-serve-кабинета пока нет — лицензии выдаём вручную. Напишите нам (см. Поддержку): пришлите домен(ы) вашей подписки и нужный набор фич — мы выпустим токен на согласованный срок. Продление и отзыв — на нашей стороне.
exp premium-фичи выключаются автоматически, поэтому продлевайте заранее. Проверка офлайн, поэтому мгновенного отзыва нет — отозванный токен перестаёт действовать по exp.Интеграция с Remnawave
Всё настраивается штатными средствами панели, без форков. Метки доставляются тремя способами:
- Глобально по клиенту — Subscription Response Rules: правило с условием
user-agent CONTAINS wrabbitи заголовком, напримерwrab-mode: auto-only. Прочих клиентов правило не задевает. - Точечно per-user / по группе — External Squads: поле
responseHeaders, например{ "wrab-mode": "auto-only" }, назначается выбранным пользователям. - Роль сервера — меткой в названии (например,
WL) или параметромwrab-zoneв самой ссылке.
Брендинг в Remnawave: Announce ← happAnnounce, Support-Url ← supportLink (оба в subscription-settings); Profile-Web-Page-Url и wrab-logo ← customResponseHeaders или responseHeaders External Squad.
Доменная маршрутизация: заголовок routing берётся из Subscription Settings → Happ Routing (happRouting). Профиль настраивается в конструкторе на routing.happ.su и доставляется одной строкой — один и тот же профиль применяют и Happ, и Wrabbit (Wrabbit — явные домены/CIDR, без гео-категорий).
Announce/Support-Url/Profile-Web-Page-Url/wrab-logo), скрытие (hide-settings) и роутинг (routing) — premium-возможности и в новых версиях Wrabbit включаются только при валидном токене wrab-license. Сам токен доставляется тем же механизмом, что и прочие заголовки: customResponseHeaders, responseHeaders у External Squad или Subscription Response Rules ({ "wrab-license": "v1.…" }). Как получить токен — раздел «Лицензирование провайдеров».Приватность и устройство
Wrabbit не ведёт логи трафика и не передаёт конфигурации третьим сторонам. При запросе подписки по умолчанию отправляются идентификатор устройства (HWID) и модель в заголовках x-hwid, x-device-os, x-ver-os, x-device-model — это нужно для корректного учёта устройств в панели. Отправку HWID можно отключить в настройках.
- Платформы: iPhone / iPad (iOS 16 и новее) и Mac (macOS 13 и новее). Туннель — Packet Tunnel / Network Extension на обеих платформах.
- На Mac — виджет в строке меню для быстрого управления VPN без открытия окна.
- Без аналитики и трекеров; собираются только обезличенные отчёты о сбоях.
- Локализация: русский и английский (плюс системный язык). Запросы разрешений ОС (камера, VPN) показываются на языке интерфейса приложения.
Дополнительные функции
- Защита при разрыве (kill-switch) и автоподключение (on-demand).
- macOS: виджет в строке меню — подключение/отключение, статус, открыть окно и настройки.
- Статистика трафика сессии и пинг серверов через прокси.
- Импорт и экспорт по QR-коду, копирование и шаринг ссылок.
- Локальное редактирование конфигураций (если не скрыто провайдером).
- Фрагментация TLS ClientHello для CDN-серверов — опция совместимости соединения (глобальный тумблер и параметр
fragmentв ссылке). - Журнал туннеля и логи Xray с экспортом для диагностики.
Чек-лист совместимости
- Возьмите ссылку подписки из панели и проверьте её в другом клиенте (например Happ) —
wrab-*поля не должны ломать разбор. - Откройте подписку в Wrabbit без
wrab-mode— обычный список серверов и «Авто». - Добавьте
wrab-mode: auto-only— должна остаться только строка «Авто», серверы и пинги скрыты. - Проверьте роли серверов: «Авто» предпочитает обычный (
direct), при недоступности берёт особый (wl). - Сравните пинг «via Proxy» в Wrabbit и Happ — порядок величины должен совпадать.
- Лицензия: без
wrab-licenseбрендинг/скрытие/роутинг выключены (это ожидаемо). С валидным токеном на ваш домен — включаются. Если домен в токене не совпадает с host подписки или токен истёк — фичи останутся выключенными.