--- title: Подписка description: Запуск сервера подписок 3x-ui — форматы base64/JSON/Clash, порты и пути, TLS, заголовки ответа и пользовательские шаблоны. icon: Rss --- **Подписка** — это единый URL, который возвращает все конфигурации клиента. Клиентские приложения периодически обновляют его, поэтому при изменении входящего соединения клиенты подхватывают изменения автоматически. Сервер подписок работает как **отдельный** сервер от панели. ## Включение и настройка Сервер подписок **включён по умолчанию** (`subEnable`). Настройте его в параметрах подписки панели: | Параметр | По умолчанию | Назначение | | ------------- | ------- | --------------------------------------------------------------- | | `subPort` | `2096` | Порт прослушивания (отдельный от панели). | | `subListen` | _(все)_ | Адрес привязки. | | `subPath` | _(случайный для каждой панели)_ | Базовый путь для необработанных URL подписок. | | `subDomain` | _(нет)_ | Публичный хост; если задан, сервер отвечает только для этого Host. | | `subCertFile` / `subKeyFile` | _(нет)_ | Сертификат + ключ TLS — когда заданы, сервер работает по **HTTPS**. | | `subEncrypt` | `true` | Кодировать тело необработанной подписки в base64. | | `subUpdates` | `12` | Рекомендуемый интервал обновления (часы), отправляемый клиентам. | URL подписки выглядит так: ```text https://:// ``` где `` — это **Sub ID** клиента. Один и тот же Sub ID отдаётся в нескольких форматах по разным путям — список **Base64** по `subPath` и конфигурация **JSON** (Xray-json) по пути JSON. Соберите URL и предпросмотрите оба тела здесь: ## Форматы вывода **Формат выбирается по пути**, у каждого свой переключатель включения: | Формат | Путь | Включается | Вывод | | --------------------- | --------- | ---------------- | --------------------------------------------------- | | **Необработанные ссылки** | `subPath` | всегда (если включён) | Список ссылок `vless://`, `vmess://`, … (закодированных в base64, когда включён `subEncrypt`). | | **JSON** | `subJsonPath` | `subJsonEnable` | Полные клиентские конфигурации Xray. | | **Clash / Mihomo** | `subClashPath` | `subClashEnable` | YAML-профиль. | В подписке появляются только включённые входящие соединения, использующие **VLESS, VMess, Trojan, Shadowsocks или Hysteria2**, упорядоченные по их индексу сортировки подписки. Запрос `subPath` с заголовком `Accept: text/html` (или `?html=1`) возвращает удобочитаемую информационную страницу вместо необработанного тела. ### Base64 vs JSON Тело **Base64** — это просто ссылки для обмена, объединённые через перевод строки и закодированные в стандартный base64 (переключается через `subEncrypt`). Тело **JSON** оборачивает каждого клиента в полную клиентскую конфигурацию Xray — фиксированный каркас (локальные входящие SOCKS/HTTP, DNS, маршрутизация, policy) плюс исходящее соединение `proxy`, указывающее на входящее. 3x-ui выдаёт **единый объект конфигурации для одного клиента и массив для нескольких**, использует плоскую форму `settings` исходящего соединения (`address`/`port`/`id`, `level: 8`) и удаляет `sockopt` из `streamSettings`. ## Заголовки ответа Подписки возвращают стандартные заголовки, которые читают совместимые приложения: - **`Subscription-Userinfo`** — `upload`, `download`, `total` (байты; `total=0` означает без ограничений) и `expire` (Unix-секунды). - **`Profile-Update-Interval`** — интервал обновления в часах (`subUpdates`). - **`Profile-Title`**, **`Support-Url`**, **`Profile-Web-Page-Url`**, **`Announce`** — необязательный брендинг, отображаемый некоторыми клиентами. ## Пользовательские шаблоны страниц Укажите в `subThemeDir` папку с пользовательским шаблоном информационной страницы, чтобы оформить HTML-страницу подписки в фирменном стиле. Примечание для каждого клиента на каждой ссылке полностью шаблонизируется — см. [Ссылки для обмена → переменные примечаний](/docs/config/share-links#remark-template-variables). Разместите сервер подписок за TLS (задайте `subCertFile`/`subKeyFile` или [обратный прокси](/docs/operations/reverse-proxy)), чтобы содержимое подписки не передавалось в открытом виде.