Подписка
Запуск сервера подписок 3x-ui — форматы base64/JSON/Clash, порты и пути, TLS, заголовки ответа и пользовательские шаблоны.
Подписка — это единый URL, который возвращает все конфигурации клиента. Клиентские приложения периодически обновляют его, поэтому при изменении входящего соединения клиенты подхватывают изменения автоматически. Сервер подписок работает как отдельный сервер от панели.
Включение и настройка
Сервер подписок включён по умолчанию (subEnable). Настройте его в
параметрах подписки панели:
| Параметр | По умолчанию | Назначение |
|---|---|---|
subPort | 2096 | Порт прослушивания (отдельный от панели). |
subListen | (все) | Адрес привязки. |
subPath | /sub/ | Базовый путь для необработанных URL подписок. |
subDomain | (нет) | Публичный хост; если задан, сервер отвечает только для этого Host. |
subCertFile / subKeyFile | (нет) | Сертификат + ключ TLS — когда заданы, сервер работает по HTTPS. |
subEncrypt | true | Кодировать тело необработанной подписки в base64. |
subUpdates | 12 | Рекомендуемый интервал обновления (часы), отправляемый клиентам. |
URL подписки выглядит так:
https://<sub-host>:<sub-port>/sub/<sub-id>где <sub-id> — это Sub ID клиента.
Один и тот же Sub ID отдаётся в нескольких форматах по разным путям — список
Base64 по subPath и конфигурация JSON (Xray-json) по пути JSON.
Соберите URL и предпросмотрите оба тела здесь:
Subscription & sub-JSON builder
Build the subscription URLs and preview both body formats — the Base64 link list and the JSON (Xray-json) config.
https://sub.example.com:2096/sub/user-1https://sub.example.com:2096/json/user-1Clients in this subscription
vless://11111111-2222-3333-4444-555555555555@a.example.com:443?type=tcp&security=reality&sni=www.microsoft.com#HK-01dmxlc3M6Ly8xMTExMTExMS0yMjIyLTMzMzMtNDQ0NC01NTU1NTU1NTU1NTVAYS5leGFtcGxlLmNvbTo0NDM/dHlwZT10Y3Amc2VjdXJpdHk9cmVhbGl0eSZzbmk9d3d3Lm1pY3Jvc29mdC5jb20jSEstMDE={
"remarks": "HK-01",
"dns": {
"tag": "dns_out",
"queryStrategy": "UseIP",
"servers": [
{
"address": "8.8.8.8",
"skipFallback": false
}
]
},
"inbounds": [
{
"port": 10808,
"protocol": "mixed",
"settings": {
"auth": "noauth",
"udp": true,
"userLevel": 8
},
"sniffing": {
"destOverride": [
"http",
"tls",
"quic",
"fakedns"
],
"enabled": true
},
"tag": "mixed"
},
{
"port": 10809,
"protocol": "http",
"settings": {
"userLevel": 8
},
"tag": "http"
}
],
"log": {
"loglevel": "warning"
},
"policy": {
"levels": {
"8": {
"connIdle": 300,
"downlinkOnly": 1,
"handshake": 4,
"uplinkOnly": 1
}
},
"system": {
"statsOutboundUplink": true,
"statsOutboundDownlink": true
}
},
"routing": {
"domainStrategy": "AsIs",
"rules": [
{
"type": "field",
"network": "tcp,udp",
"outboundTag": "proxy"
}
]
},
"stats": {},
"outbounds": [
{
"protocol": "vless",
"tag": "proxy",
"streamSettings": {
"network": "tcp",
"security": "reality",
"tcpSettings": {
"header": {
"type": "none"
}
},
"realitySettings": {
"fingerprint": "chrome",
"serverName": "www.microsoft.com"
}
},
"settings": {
"address": "a.example.com",
"port": 443,
"id": "11111111-2222-3333-4444-555555555555",
"encryption": "none",
"level": 8
}
},
{
"tag": "direct",
"protocol": "freedom",
"settings": {
"domainStrategy": "AsIs",
"redirect": "",
"noises": []
}
},
{
"tag": "block",
"protocol": "blackhole",
"settings": {
"response": {
"type": "http"
}
}
}
]
}Форматы вывода
Формат выбирается по пути, у каждого свой переключатель включения:
| Формат | Путь | Включается | Вывод |
|---|---|---|---|
| Необработанные ссылки | /sub/ | всегда (если включён) | Список ссылок vless://, vmess://, … (закодированных в base64, когда включён subEncrypt). |
| JSON | /json/ | subJsonEnable | Полные клиентские конфигурации Xray. |
| Clash / Mihomo | /clash/ | subClashEnable | YAML-профиль. |
В подписке появляются только включённые входящие соединения, использующие
VLESS, VMess, Trojan, Shadowsocks или Hysteria2, упорядоченные по их индексу
сортировки подписки. Запрос /sub/ с заголовком Accept: text/html (или
?html=1) возвращает удобочитаемую информационную страницу вместо
необработанного тела.
Base64 vs JSON
Тело Base64 — это просто ссылки для обмена, объединённые через перевод
строки и закодированные в стандартный base64 (переключается через subEncrypt).
Тело JSON оборачивает каждого клиента в полную клиентскую конфигурацию
Xray — фиксированный каркас (локальные входящие mixed/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-страницу подписки в фирменном стиле. Примечание
для каждого клиента на каждой ссылке полностью шаблонизируется — см.
Ссылки для обмена → переменные примечаний.
Разместите сервер подписок за TLS (задайте subCertFile/subKeyFile или
обратный прокси), чтобы содержимое подписки
не передавалось в открытом виде.
Клиенты
Управление клиентами 3x-ui — учётные данные, лимиты трафика и срока действия, ограничения по IP, группы, массовые операции, внешние ссылки и статус онлайн.
Ссылки для обмена
Форматы ссылок для обмена в 3x-ui (vless, vmess, trojan, ss, hysteria2, mtproto), переменные шаблона примечания и инспектор ссылок в браузере.

3x-ui test