Кабинет провайдера¶
Кабинет на provider.smproxy.io — самообслуживание: регистрация, Provider ID, статистика, сообщения пользователям и генераторы ссылок. Бесплатно, регистрация занимает минуту.
Разделы кабинета¶
Кабинет позволяет не только смотреть статистику, но и управлять настройками приложения для своих подписок, оформлением карточки подписки, резервными адресами и сообщениями пользователям.
| Раздел | Что можно сделать |
|---|---|
| Главная | Посмотреть Provider ID, состояние аккаунта и сводную информацию. |
| Статистика | Посмотреть устройства, новые появления, активность, платформы и версии приложения; открыть историю конкретного HWID. |
| Сообщения | Создать сообщение внутри приложения, выбрать получателей и условия доставки. |
| Домены | Подтвердить владение доменами, настроить переезд и запасные адреса подписок, открыть настройки конкретного домена. |
| Настройки клиента | Задать общие значения для своих доменов и переопределения для отдельных доменов: обход блокировок, маршрутизацию, оформление и контакты. |
| Крипто-ссылка | Сформировать зашифрованную ссылку; подробности — в документации генераторов ссылок. |
| HWID-ссылка | Сформировать ссылку с привязкой к устройству. |
| Аккаунт | Настроить собственный Provider ID, описание, логотип, сайт, Telegram и двухфакторную аутентификацию. |
Кабинет доступен на русском и английском языках. На мобильном экране разделы открываются через меню.
Статистика за три шага¶
- Зарегистрируйтесь.
- Скопируйте свой Provider ID или задайте собственный.
- Добавьте его в подписку как заголовок ответа
provideridилиs-providerid.
Приложения ваших пользователей начнут наполнять статистику, которую вы видите в кабинете. Подробности про идентификатор — в разделе Provider ID, а про то, какие возможности он включает, — в разделе Что требует активного Provider ID.
Настройки клиента¶
Где находятся настройки¶
Откройте «Настройки клиента» в меню кабинета. Здесь задаются общие настройки провайдера.
Чтобы изменить настройки отдельного домена, откройте «Домены» → «Настройки» у нужного домена. Они действуют для подписок, чей хост соответствует этому подтверждённому домену.
Для управления через кабинет не требуется вручную добавлять выбранные поля в ответ вашего сервера подписки. Значения относятся к подпискам на подтверждённых доменах вашего аккаунта. Кабинет не редактирует конфигурацию вашей панели. Прямая настройка через заголовки подписки — отдельный способ интеграции, описанный в справочнике метаданных.
Применение зависит от версии приложения, получения им ответа сервиса и правил конкретной настройки. Сохранение формы не означает, что все устройства уже получили изменения. Для изменений подключения может потребоваться переподключение.
Общие значения и настройки домена¶
Есть два уровня:
- Общие настройки — базовые значения для доменов провайдера.
- Настройки домена — переопределяют общие значения только для выбранного домена.
На общем уровне «не задано» означает отсутствие значения. На уровне домена «наследовать» оставляет значение общих настроек. Рядом с полем показывается наследуемое значение, если оно есть.
Не путайте три действия:
| Действие | Что произойдёт |
|---|---|
| Наследовать | Домен использует общее значение. |
| Выключить | Отправляется явное выключение, например off; это позволяет отменить общее включение на одном домене. |
| Не отдавать | Для полей, где предусмотрено такое состояние, заголовок не отправляется, даже если он задан на общем уровне. Это не обязательно сбрасывает уже сохранённое состояние клиента. |
Весь уровень настроек можно временно выключить, сохранив введённые значения. При выключении уровня домена снова применяются общие настройки. При выключении общего уровня его значения пропускаются, но собственные настройки доменов продолжают действовать.
Копирование и шифрование¶
Настройки можно скопировать из общих настроек или другого своего домена в текущий уровень. Это замена набора, а не добавление только отсутствующих полей. Перед копированием проверьте выбранный источник.
У некоторых полей есть шифрование значения. Кабинет формирует crypt1/…, который понимает приложение. Это шифрование отдельного значения настройки; оно отличается от генерации зашифрованной ссылки на всю подписку.
У фрагментации, шума, DNS и пре-резолва можно выбрать «свои параметры». Введённые параметры сохраняются как черновик при переключении на «включить» или «выключить»; сам черновик клиенту не отправляется.
Обход блокировок¶
| Поле | Ключ | Назначение и пример |
|---|---|---|
| Фрагментация TLS | s-fragment |
Дробит TLS ClientHello. Включение с параметрами по умолчанию или собственные параметры: packets=tlshello;length=50-100;interval=10-20. |
| REALITY: отключить постквантовый обмен | s-reality-disable-pq |
Убирает ML-KEM из REALITY-хендшейка, сохраняя выбранный fingerprint. Может помочь при зависаниях и таймаутах. Обычный TLS не меняется. Включение/выключение без собственных параметров. |
| Шумовые пакеты | s-noise |
Добавляет шум перед соединением. Пример: type=rand;packet=50-100;delay=10-20. |
| DNS внутри туннеля (DoH) | s-dns |
Задаёт DoH для DNS внутри туннеля с учётом правил конфигурации. Можно включить встроенный резолвер или задать свой DoH URL. |
| Пре-резолв адреса сервера | s-resolve |
Разрешает адрес VPN-сервера через DoH до поднятия туннеля. Можно перечислить несколько резолверов через запятую и задать bootstrap-IP: https://doh.ffmuc.net/dns-query. |
Для s-reality-disable-pq поддерживаются on/off, true/false, 1/0 без учёта регистра. Явное выключение сохраняет исходный пресет, даже если пользователь включил локальный переключатель. Отсутствие значения оставляет локальное поведение приложения. После изменения нужно переподключиться.
Для управления REALITY из кабинета используйте Apple 2.0.40 (376), Android 2.0.6 (503) или Windows/Linux 2.0.2 (259) и активный аккаунт провайдера, как для фрагментации. У прямого заголовка подписки, URL и файла другие условия: они работают без активного Provider ID. Для остальных полей ограничения перечислены в таблице возможностей.
Подробности и ограничения: Обход блокировок, в том числе раздел REALITY: отключение постквантового обмена.
Маршрутизация¶
| Поле | Ключ | Назначение |
|---|---|---|
| Профиль маршрутизации | routing |
Ссылка на файл, base64 или JSON профиля. Обновляется вместе с подпиской. |
| Профиль с автообновлением | autorouting |
Адрес профиля, который приложение затем обновляет самостоятельно. |
| Адрес обновления профиля | routing-update-url |
Откуда получать обновления профиля; может задаваться отдельно. |
| Интервал обновления | routing-update-interval |
От 12 до 168 часов; по умолчанию 24. |
| Имя профиля | routing-profile |
Выбор профиля для серверов этой подписки; переопределяет пользовательский выбор. До 64 символов по проверке кабинета. |
Не путайте интервал обновления маршрутизации и интервал обновления подписки: это разные поля. Подробнее — Профили маршрутизации.
Витрина подписки¶
| Поле | Ключ | Назначение |
|---|---|---|
| Название подписки | profile-title |
Название в списке подписок. До 128 символов. |
| Название сервиса | s-sitename |
Имя сервиса на карточке подписки. До 128 символов. |
| Сайт | s-siteurl |
Ссылка на сайт сервиса. |
| Telegram | s-tgbot |
Бот или канал; можно указать @username. |
| Страница подписки | profile-web-page-url |
Ссылка на личный кабинет пользователя с карточки подписки. |
| Обновление подписки | profile-update-interval |
Положительное целое число часов между обновлениями подписки. |
Обычный текст вводится без ручного base64-кодирования: кабинет кодирует соответствующие текстовые заголовки сам.
Объявление и баннер¶
| Поле | Ключ | Назначение |
|---|---|---|
| Объявление | announce |
Текст над списком серверов. |
| Ссылка объявления | announce-url |
Делает объявление кликабельным; без текста объявления ничего не показывает. |
| Баннер | banner-text |
Текст блока на карточке подписки. |
| Кнопка баннера | banner-button-text |
Надпись кнопки, до 25 символов. |
| Ссылка кнопки | banner-button-url |
Обычная ссылка или deep-link. |
| Фон баннера | banner-bg-color |
Цвет в формате #RRGGBB. |
| Цвет кнопки | banner-button-color |
Цвет в формате #RRGGBB; цвет надписи приложение подбирает автоматически. |
Для объявления и текста баннера кабинет допускает до пяти строк и до 500 символов. Цвета задаются шестизначным hex-кодом: короткие формы и имена цветов не подходят.
Контакты и доступ к подписке¶
| Поле | Ключ | Назначение |
|---|---|---|
| Ссылка поддержки | support-url |
Адрес обращения в поддержку. |
| Email поддержки | support-email |
Кнопка обращения по email на карточке подписки. |
| Доступ к подписке в приложении | hide-settings |
Управляет отображением адреса подписки и действиями с ним. |
У «Доступа к подписке» особые состояния:
- Скрыть (
1) — скрывает адрес подписки, копирование ссылки, просмотр конфига и изменение адреса. Подключение, серверы, статистика и профили остаются доступны. - Показывать (
0) — возвращает доступ и снимает блокировку импортированной ссылки, если она была установлена. - Не отправлять — не посылает значение; уже установленное скрытие само по себе не снимает.
Это «липкая» настройка: для отмены ранее отправленного скрытия нужно явно отправить «показывать».
Практический пример¶
- Подтвердите домены подписок в разделе «Домены».
- В «Настройках клиента» включите общую фрагментацию TLS и сохраните форму.
- У домена, где фрагментация не нужна, откройте «Настройки», выберите «выключить» и сохраните.
- На остальных доменах оставьте «наследовать» — они получат общее включение.
- Проверьте получение настроек на тестовом устройстве; для изменения транспортных параметров переподключитесь.
Если нужно временно убрать исключение, выключите уровень настроек этого домена: он снова начнёт наследовать общие значения. Чтобы вернуть исключение, включите уровень обратно.
Домены, переезд и резервные адреса¶
В разделе «Домены» есть два способа подтверждения:
- DNS TXT — добавьте указанную кабинетом TXT-запись и нажмите «Проверить». Для Cloudflare есть автоматическое добавление записи после выдачи разрешения.
- HTML-файл — разместите выданный файл
smproxy-verify.htmlна нужном хосте. Можно скачать готовый файл. Этот способ подтверждает только конкретный хост, а не весь основной домен и другие поддомены.
Подтверждение хоста файлом: пошагово¶
Этот вариант подходит, если можно разместить файл на сайте, но нет доступа к DNS-записям.
- Откройте «Домены» и выберите способ подтверждения HTML-файлом.
- Укажите точный хост подписки, например
sub.example.com, и добавьте его. - Скачайте предложенный кабинетом файл
smproxy-verify.html. Файл уже содержит нужный проверочный токен в<meta>— не заменяйте его своим текстом. - Разместите файл в корне сайта этого хоста, чтобы он открывался по адресу
https://sub.example.com/smproxy-verify.htmlбез входа в аккаунт. - Убедитесь, что сервер возвращает содержимое файла, а не страницу авторизации, заглушку или редирект на другой хост.
- В кабинете нажмите «Проверить». После успешной проверки появится статус «подтверждён» и отметка «точный хост».
Проверка сначала использует HTTPS с действительным сертификатом, затем пробует HTTP, если по HTTPS файл не удалось получить. Если файл найден, но токен не совпадает, скачайте актуальный файл из кабинета и замените содержимое.
Подтверждение sub.example.com файлом не подтверждает example.com, other.example.com и поддомены самого sub.example.com. Для другого хоста требуется отдельное подтверждение. Если нужно подтвердить основной домен с поддоменами, используйте DNS TXT.
Область действия и дополнительные возможности¶
DNS-подтверждение основного домена охватывает его поддомены; HTML-подтверждение ограничено конкретным хостом.
Для подтверждённых доменов можно настроить:
- Переезд — правило старого и нового адреса, которое приложение получает как
new-domain. - Запасные адреса домена — список fallback-адресов для подписок выбранного домена.
- Общие запасные домены подписки — задаются в общих настройках клиента и дописываются в конец списка запасных адресов каждого домена. Они используются после адресов, заданных для самого домена. Допускаются только подтверждённые домены своего аккаунта.
Переезд меняет основной адрес, а fallback даёт запасной путь при недоступности основного. Это разные механизмы.
Подробнее: Подтверждение домена и Перевод на другой домен.
Статистика¶
Раздел показывает не просто общее число устройств. Доступны графики по дням, неделям и месяцам, новые и возвращающиеся устройства, фильтры списка по периоду, ОС, модели и HWID, а также фильтр «только новые».
Новое устройство считается в рамках конкретного провайдера — по первому появлению HWID у него, а не по первому появлению этого HWID во всей базе приложения. Устройство, ранее использовавшее другого провайдера, может быть новым для вашего сервиса. Метка «новое» относится к выбранному периоду; без фильтра дат — к текущему дню.
В таблице можно посмотреть ОС, модель, версию приложения, последнюю активность и идентификатор подписки, если он доступен. Доступны переходы к истории HWID и журналу обновления подписки.
Набор доступных сведений зависит от версии приложения. Отсутствующее значение само по себе не означает неисправность.
Статистика показывает данные, полученные от клиентов, и не является биллингом VPN-панели или проверкой доступности каждого VPN-сервера.
Сообщения¶
В «Сообщениях» можно создать сообщение с заголовком, текстом, типом, ссылкой и настройкой уведомления. Оно доставляется внутри приложения; это не email-рассылка и не Telegram-рассылка.
Для выбора аудитории доступны:
- пользователи своего провайдера;
- конкретный HWID;
- домен подписки или известный поддомен;
- платформа;
- условие по номеру сборки приложения для платформы;
- язык интерфейса.
При выборе домена вариант *.example.com предусмотрен для DNS-подтверждения. Для хоста, подтверждённого HTML-файлом, выбирается конкретный хост.
В форме доступны ID и дата сообщения. Дата относится к сообщению и сама по себе не гарантирует отправку в заданный момент. Сообщение появляется при получении его приложением.
Для обычного провайдера действует настраиваемый интервал между отправками; он распространяется и на адресные сообщения. Не указывайте одно фиксированное число минут как универсальный лимит.
Аккаунт и безопасность¶
Доступны регистрация по email, вход по email/паролю и через Google, восстановление пароля по письму.
В «Аккаунте» можно:
- задать собственный Provider ID;
- включить двухфакторную аутентификацию TOTP;
- получить резервные одноразовые коды и отключить 2FA с подтверждением;
- заполнить описание сервиса;
- загрузить логотип или указать адрес картинки;
- указать сайт и Telegram;
- задать заголовок и описание для Telegram-канала.
Резервные коды показываются при настройке: сохраните их отдельно, каждый код используется один раз. Код TOTP требуется и после входа через Google, если 2FA включена.
Для логотипа интерфейс рекомендует квадратное изображение 512×512 в PNG/JPG/GIF.
Не смешивайте профиль аккаунта провайдера и параметры оформления отдельной подписки: описание/логотип находятся в «Аккаунте», а заголовки карточки подписки — в «Настройках клиента».