Subscription
راهاندازی سرور اشتراک 3x-ui — قالبهای base64/JSON/Clash، پورتها و مسیرها، TLS، هدرهای پاسخ و قالبهای سفارشی.
یک اشتراک (subscription) یک URL واحد است که همهی پیکربندیهای یک کلاینت را برمیگرداند. برنامههای کلاینت آن را بهصورت دورهای تازهسازی میکنند، بنابراین وقتی یک ورودی را تغییر میدهید، کلاینتها این تغییر را بهصورت خودکار دریافت میکنند. سرور اشتراک بهعنوان یک سرور جداگانه از پنل اجرا میشود.
فعالسازی و پیکربندی
سرور اشتراک بهصورت پیشفرض روشن است (subEnable). آن را در تنظیمات اشتراک
پنل پیکربندی کنید:
| Setting | Default | Meaning |
|---|---|---|
subPort | 2096 | پورت گوشدادن (جدا از پنل). |
subListen | (همه) | آدرس اتصال (bind). |
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"
}
}
}
]
}قالبهای خروجی
قالب بر اساس مسیر انتخاب میشود و هرکدام کلید فعالسازی مخصوص خود را دارند:
| Format | Path | Enabled by | Output |
|---|---|---|---|
| لینکهای خام | /sub/ | همیشه (اگر روشن باشد) | فهرستی از لینکهای vless://، vmess://، … (هنگام فعالبودن subEncrypt با base64 رمزگذاری میشود). |
| JSON | /json/ | subJsonEnable | پیکربندی(های) کامل کلاینت Xray. |
| Clash / Mihomo | /clash/ | subClashEnable | پروفایل YAML. |
فقط ورودیهای فعالی که از VLESS، VMess، Trojan، Shadowsocks یا Hysteria2
استفاده میکنند در یک اشتراک ظاهر میشوند و بر اساس شاخص sub-sort آنها مرتب میشوند.
درخواست /sub/ همراه با هدر Accept: text/html (یا ?html=1) بهجای بدنهی خام،
یک صفحهی اطلاعات خوانا برای انسان برمیگرداند.
Base64 vs JSON
بدنهی Base64 صرفاً همان لینکهای اشتراکگذاری است که با خط جدید به هم پیوسته و
با standard-base64 رمزگذاری شدهاند (با subEncrypt قابل تغییر است). بدنهی JSON
هر کلاینت را در یک پیکربندی کامل کلاینت Xray میپیچد — یک اسکلت ثابت (ورودیهای محلی
mixed/HTTP، 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 مراجعه کنید.
سرور اشتراک را پشت TLS قرار دهید (با تنظیم subCertFile/subKeyFile، یا یک
پروکسی معکوس) تا محتوای اشتراک در حین انتقال
افشا نشود.

3x-ui test