订阅
运行 3x-ui 订阅服务器 —— base64/JSON/Clash 格式、端口与路径、TLS、响应头以及自定义模板。
订阅是一个返回客户端全部配置的单一 URL。客户端应用会定期刷新它,因此当你修改某个入站时,客户端会自动获取这些变更。订阅服务器作为一个独立于面板的服务器运行。
启用与配置
订阅服务器默认开启(subEnable)。在面板的订阅设置中进行配置:
| 设置 | 默认值 | 含义 |
|---|---|---|
subPort | 2096 | 监听端口(与面板分开)。 |
subListen | (全部) | 绑定地址。 |
subPath | (每个面板随机生成) | 原始订阅 URL 的基础路径。 |
subDomain | (无) | 公开主机名;若设置,服务器仅响应该 Host。 |
subCertFile / subKeyFile | (无) | TLS 证书 + 密钥 —— 设置后,服务器以 HTTPS 提供服务。 |
subEncrypt | true | 对原始订阅内容进行 base64 编码。 |
subUpdates | 12 | 发送给客户端的建议刷新间隔(小时)。 |
一个订阅 URL 形如:
https://<sub-host>:<sub-port>/<sub-path>/<sub-id>其中 <sub-id> 是客户端的 Sub ID。
同一个 Sub ID 会在不同路径上以多种格式提供 —— subPath 上的 Base64 列表和 JSON 路径上的 JSON(Xray-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/your-sub-path/user-1https://sub.example.com:2096/your-json-path/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": [
{
"listen": "127.0.0.1",
"port": 10808,
"protocol": "socks",
"settings": {
"auth": "noauth",
"udp": true,
"userLevel": 8
},
"sniffing": {
"destOverride": [
"http",
"tls",
"quic",
"fakedns"
],
"enabled": true
},
"tag": "mixed"
},
{
"listen": "127.0.0.1",
"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"
}
}
}
]
}输出格式
格式由路径决定,每种格式都有各自的启用开关:
| 格式 | 路径 | 启用方式 | 输出 |
|---|---|---|---|
| 原始链接 | subPath | 始终(若已开启) | 一组 vless://、vmess:// 等链接的列表(当 subEncrypt 开启时进行 base64 编码)。 |
| JSON | subJsonPath | subJsonEnable | 完整的 Xray 客户端配置。 |
| Clash / Mihomo | subClashPath | subClashEnable | 完整的 Mihomo 兼容 YAML 配置。 |
| Mihomo(明确端点) | /mihomo/ | subClashEnable | 完整 subClashPath 配置的别名。 |
| Clash for Windows(旧版) | /clash-legacy/ | subClashEnable | 仅包含旧 Clash 内核支持的代理类型、传输方式和加密算法。 |
只有使用 VLESS、VMess、Trojan、Shadowsocks、WireGuard、AmneziaWG、MTProto、TUIC 或 Hysteria2 的已启用入站才会出现在订阅中,并按其订阅排序索引排列(TUIC 和 AmneziaWG 包含在原始链接和 Clash/Mihomo 配置中,但在 JSON 端点中被省略;MTProto 包含在原始链接中)。使用 Accept: text/html 头(或 ?html=1)请求 subPath 会返回一个人类可读的信息页面,而非原始内容。
Clash Verge Rev、Mihomo 及其他仍在维护的 Mihomo 客户端应使用
/mihomo/<sub-id>。已经停止维护的 Clash for Windows 应使用
/clash-legacy/<sub-id>;旧版端点只保留兼容的 VMess、Trojan 和
Shadowsocks 节点,并排除 VLESS、Hysteria2、Reality、XHTTP、HTTPUpgrade
和 Shadowsocks 2022。如果没有任何兼容节点,端点会明确返回 422,而不是返回一份无法导入的 YAML。
为避免 Mihomo 专用语法进入旧版配置,此端点始终使用最小的 PROXY 策略组与
MATCH,PROXY 规则,并忽略自定义 Clash 路由设置。
如果管理员已经把 /mihomo/ 或 /clash-legacy/ 分配给其他可配置订阅路径,
系统会保留原有路径,并在启动时记录警告、跳过发生冲突的别名。
Clash 格式自动识别保留原有的 (?i)(clash|mihomo) 默认匹配器,确保已有订阅 URL
继续返回 YAML。它不区分旧版客户端与 Mihomo 系客户端;Clash for Windows 用户
必须使用 /clash-legacy/<sub-id> 获取兼容配置。
Base64 与 JSON
Base64 内容只是用换行符连接的分享链接,经标准 base64 编码(通过 subEncrypt 开关控制)。JSON 内容则将每个客户端包装为一份完整的 Xray 客户端配置 —— 一套固定的骨架(绑定到 127.0.0.1 的本地 SOCKS/HTTP 入站、DNS、路由、策略)加上一个指向该入站的 proxy 出站。3x-ui 对单个客户端输出单个配置对象,对多个客户端输出数组,使用扁平的出站 settings 形式(address/port/id,level: 8),并从 streamSettings 中剥离 sockopt。
响应头
订阅会返回兼容应用可读取的标准响应头:
Subscription-Userinfo——upload、download、total(字节;total=0表示无限制)以及expire(Unix 秒)。Profile-Update-Interval—— 刷新间隔,以小时为单位(subUpdates)。Profile-Title、Support-Url、Profile-Web-Page-Url、Announce—— 部分客户端会显示的可选品牌信息。
资料页链接与升级说明
在 订阅 → 资料 → 资料页方式 中选择 subProfileMode,对所有订阅客户端生效:
- 不提供(
none,默认):不发送Profile-Web-Page-Url。 - 内置订阅页(
builtin):提供该客户端的内置订阅页链接。 - 自定义网站(
custom):使用subProfileUrl;地址留空时不发送该响应头。
升级提示: 旧版在 subProfileUrl 留空时会自动提供内置订阅页链接。升级后,尚未设置模式且地址为空或仅含空白字符的配置会使用 不提供;已有非空地址继续使用 自定义网站。需要恢复内置入口时,在上述位置选择 内置订阅页 并保存设置。
内置订阅页会公开订阅地址和节点配置,Happ 加密订阅也不例外;请在确定需要提供这些内容时开启。
自定义页面模板
将 subThemeDir 指向一个包含自定义信息页模板的文件夹,即可为 HTML 订阅页面定制品牌。每条链接上的客户端备注完全支持模板化 —— 参见分享链接 → 备注变量。
将订阅服务器置于 TLS 之后(设置 subCertFile/subKeyFile,或使用
反向代理),以免订阅内容在传输过程中被暴露。

3x-ui