---
title: Subscription
description: راه‌اندازی سرور اشتراک 3x-ui — قالب‌های base64/JSON/Clash، پورت‌ها و مسیرها، TLS، هدرهای پاسخ و قالب‌های سفارشی.
icon: Rss
---

یک **اشتراک** (subscription) یک URL واحد است که همه‌ی پیکربندی‌های یک کلاینت را
برمی‌گرداند. برنامه‌های کلاینت آن را به‌صورت دوره‌ای تازه‌سازی می‌کنند، بنابراین وقتی
یک ورودی را تغییر می‌دهید، کلاینت‌ها این تغییر را به‌صورت خودکار دریافت می‌کنند. سرور
اشتراک به‌عنوان یک سرور **جداگانه** از پنل اجرا می‌شود.

## فعال‌سازی و پیکربندی

سرور اشتراک به‌صورت **پیش‌فرض روشن** است (`subEnable`). آن را در تنظیمات اشتراک
پنل پیکربندی کنید:

| Setting       | Default | Meaning                                                         |
| ------------- | ------- | --------------------------------------------------------------- |
| `subPort`     | `2096`  | پورت گوش‌دادن (جدا از پنل).                                      |
| `subListen`   | _(همه)_ | آدرس اتصال (bind).                                              |
| `subPath`     | _(تصادفی برای هر پنل)_ | مسیر پایه برای URLهای خام اشتراک.                  |
| `subDomain`   | _(هیچ)_ | میزبان عمومی؛ اگر تنظیم شود، سرور فقط به همان Host پاسخ می‌دهد.   |
| `subCertFile` / `subKeyFile` | _(هیچ)_ | گواهی و کلید TLS — هنگام تنظیم، سرور **HTTPS** ارائه می‌دهد. |
| `subEncrypt`  | `true`  | بدنه‌ی خام اشتراک را با base64 رمزگذاری می‌کند.                   |
| `subUpdates`  | `12`    | بازه‌ی پیشنهادی تازه‌سازی (ساعت) که به کلاینت‌ها ارسال می‌شود.    |

یک URL اشتراک به این شکل است:

```text
https://<sub-host>:<sub-port>/<sub-path>/<sub-id>
```

که در آن `<sub-id>` همان **Sub ID** کلاینت است.

همان Sub ID در چند قالب روی مسیرهای مختلف ارائه می‌شود — فهرست **Base64** در
`subPath` و پیکربندی **JSON** (Xray-json) در مسیر JSON. URLها را بسازید و هر دو
بدنه را اینجا پیش‌نمایش کنید:

<SubscriptionBuilder />

## قالب‌های خروجی

**قالب بر اساس مسیر انتخاب می‌شود** و هرکدام کلید فعال‌سازی مخصوص خود را دارند:

| Format                | Path      | Enabled by       | Output                                              |
| --------------------- | --------- | ---------------- | --------------------------------------------------- |
| **لینک‌های خام**       | `subPath`      | همیشه (اگر روشن باشد) | فهرستی از لینک‌های `vless://`، `vmess://`، … (هنگام فعال‌بودن `subEncrypt` با base64 رمزگذاری می‌شود). |
| **JSON**              | `subJsonPath`  | `subJsonEnable`  | پیکربندی(های) کامل کلاینت Xray.                      |
| **Clash / Mihomo**    | `subClashPath` | `subClashEnable` | پروفایل YAML.                                        |

فقط ورودی‌های فعالی که از **VLESS، VMess، Trojan، Shadowsocks یا Hysteria2**
استفاده می‌کنند در یک اشتراک ظاهر می‌شوند و بر اساس شاخص sub-sort آن‌ها مرتب می‌شوند.
درخواست `subPath` همراه با هدر `Accept: text/html` (یا `?html=1`) به‌جای بدنه‌ی خام،
یک صفحه‌ی اطلاعات خوانا برای انسان برمی‌گرداند.

### Base64 vs JSON

بدنه‌ی **Base64** صرفاً همان لینک‌های اشتراک‌گذاری است که با خط جدید به هم پیوسته و
با standard-base64 رمزگذاری شده‌اند (با `subEncrypt` قابل تغییر است). بدنه‌ی **JSON**
هر کلاینت را در یک پیکربندی کامل کلاینت Xray می‌پیچد — یک اسکلت ثابت (ورودی‌های محلی
SOCKS/HTTP روی 127.0.0.1، DNS، مسیریابی، policy) به‌علاوه‌ی یک outbound از نوع `proxy` که به ورودی
اشاره می‌کند. 3x-ui **برای یک کلاینت یک شیء پیکربندی واحد و برای چند کلاینت یک آرایه**
تولید می‌کند، از فرم تخت `settings` در outbound استفاده می‌کند
(`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`** — برندینگ اختیاری که برخی کلاینت‌ها نمایش می‌دهند.

## قالب‌های سفارشی صفحه

برای برندینگ صفحه‌ی HTML اشتراک، `subThemeDir` را به یک پوشه‌ی حاوی قالب سفارشیِ
صفحه‌ی اطلاعات اشاره دهید. توضیح (remark) هر کلاینت روی هر لینک کاملاً قابل
قالب‌بندی است — به [لینک‌های اشتراک‌گذاری ← متغیرهای remark](/docs/config/share-links#remark-template-variables) مراجعه کنید.

<Callout type="info">
  سرور اشتراک را پشت TLS قرار دهید (با تنظیم `subCertFile`/`subKeyFile`، یا یک
  [پروکسی معکوس](/docs/operations/reverse-proxy)) تا محتوای اشتراک در حین انتقال
  افشا نشود.
</Callout>
