代理订阅是代理服务商提供的一个私密 URL,返回你的服务器列表。 代理 App 下载它,一次性导入所有服务器,之后还会定期重新下载,新增或变更的服务器会自动出现。Clash 订阅链接也是同样的思路,只不过这个 URL 返回的是一份完整的 Clash 配置,除了服务器,还有代理组和规则。
本文介绍订阅里包含什么、三种常见格式、App 如何获取和更新订阅,以及如何保护好你的订阅链接。
代理订阅是什么?
单台服务器可以用一条分享链接来分享,例如 ss://… 或 vless://…。对于你自己搭建的一台服务器,这样就够了。但服务商通常会给你很多位于不同地区的服务器,而且时不时会更换地址、端口和密钥。每次都给你发新链接,显然行不通。
所以他们会给你一个 URL,例如:
https://sub.example.com/api/v1/client/subscribe?token=abc123
这个 URL 背后是一份列出你的服务器的文档。其中的 token 部分用来识别你的账号,所以同一个 URL 只会返回你自己的服务器,不会返回别人的。你只需把它粘贴到 App 里一次,App 就会保持同步。
| 分享链接 | 订阅 URL | |
|---|---|---|
| 包含 | 一台服务器 | 服务器列表,常常还有代理组和规则 |
| 形式 | ss://、vless://、trojan:// 等 |
https://… |
| 是否变化 | 从不:新服务器意味着新链接 | 服务商会更新返回的内容 |
| 在 App 中更新 | 否 | 是,按计划或在你手动更新时 |
常见的订阅格式
订阅没有统一的标准。以下三种格式覆盖了大多数服务商。
Base64 订阅(V2Ray、Xray、Shadowsocks)
最早也最简单的格式,是一份每行一条分享链接的纯文本列表,并经过 Base64 编码。解码后是这样的:
ss://YWVzLTI1Ni1nY206c2VjcmV0@ss.example.com:8388#Tokyo
vless://3971e1b2-18a3-4f83-8fa6-bf9b142ee258@vless.example.com:443?security=tls&sni=vless.example.com#Singapore
trojan://secret@trojan.example.com:443?sni=trojan.example.com#Frankfurt
任何 App 都能轻松读取,但它只列出服务器,没有代理组也没有规则,流量怎么路由由 App 自己决定。
Clash 与 Mihomo YAML
Clash 订阅返回的是一份 YAML 配置。Mihomo 是当前大多数 Clash 类 App 背后的内核,它读取同样的格式,并支持更多协议。下面是一个精简的示例:
proxies:
- name: Tokyo
type: ss
server: ss.example.com
port: 8388
cipher: aes-256-gcm
password: secret
proxy-groups:
- name: Auto
type: url-test
proxies: [Tokyo]
url: https://www.gstatic.com/generate_204
interval: 300
rules:
- DOMAIN-SUFFIX,example.org,DIRECT
- MATCH,Auto
除了 proxies,Clash 配置还可以包含 proxy-groups(手动选择、自动选最快或故障转移)、决定哪些流量走代理的 rules、从其他 URL 拉取更多列表的 rule-providers 和 proxy-providers,以及 dns 设置。这就是为什么服务商提供 Clash 订阅时大家更愿意用它:你拿到的是一套现成的分流方案,而不只是服务器。
Surge 配置
Surge 使用 INI 风格的文本文件,包含 [Proxy]、[Proxy Group] 和 [Rule] 等段落。很多服务商也提供这种格式。Surge 以外的 App 可以读取通用部分,但脚本、URL 重写等 Surge 独有的段落,在其他 App 中没有对应功能。
App 如何获取订阅
App 下载订阅时,发送的是一个普通的 HTTPS 请求。其中有两个细节值得注意。
User-Agent 决定返回格式
很多服务商面板会根据请求的 App 返回不同格式,并通过 User-Agent 请求头来区分 App。自称 Clash 客户端的请求会拿到 YAML,其他请求则可能拿到 Base64 列表。有些面板还允许你在 URL 中加一段参数来指定格式,请查看服务商的说明。
Potatso 下载订阅时会把自己标识为 clash.meta。因此,按 App 选择格式的面板也会把带有代理组和规则的 Clash / Mihomo 配置发给 Potatso。
响应头里带着流量信息
很多面板会在响应中加上一个 subscription-userinfo 头:
subscription-userinfo: upload=1234; download=5678; total=107374182400; expire=1798761600
upload 和 download 是你已使用的字节数,total 是套餐的总流量,expire 是套餐到期时间的 Unix 时间戳。能读取这个头的 App 可以直接显示已用流量和到期日期,无需登录服务商网站。带有文件名的 Content-Disposition 头通常会成为配置的名称。

自动更新
订阅只有保持最新才有用。App 会按计划重新下载订阅(通常是每天一次),用新的服务器列表替换旧的。大多数 App 也允许你在某台服务器失效时手动更新。
好的 App 还会保留你自己做的修改。如果你重命名了某个代理组或添加了一条规则,你肯定不希望下次更新把它撤销。以 Potatso 为例,它会把你的修改记录为覆写,并在每次更新后重新应用,而不会改动原始订阅。
保护好你的订阅 URL
订阅 URL 实际上就是一个密码:
- 拿到它的人就能使用你的账号。 他们可以导入你的服务器,耗光你的流量。
- 不要公开发布。 包括截图、二维码、问题反馈和群聊。
- 优先使用 HTTPS。 通过明文
http://获取的订阅可能在传输途中被读取和篡改。配置通过明文 HTTP 获取时,Potatso 会显示提示。 - 泄露后立即重置。 大多数服务商控制面板都有重置订阅链接的按钮。重置后导入新的 URL。
- 小心在线转换工具。 把 URL 粘贴到第三方转换网站,就等于把你的服务器交给了那个网站。
订阅与协议
订阅只是一个容器。其中的服务器使用 Shadowsocks、VLESS、Trojan、Hysteria 2 或 AnyTLS 等协议,App 必须支持相应协议才能使用这些服务器。App 通常会跳过无法使用的服务器,并告诉你原因。这些协议有何不同,见代理协议对比;最常见的协议见 Shadowsocks 是什么?
在 iPhone 上使用订阅
Potatso 是一款免费的 iPhone 和 iPad 代理客户端,可以导入 Clash / Mihomo YAML、Base64 订阅、V2Ray / Xray JSON、Surge 配置和 Shadowsocks SIP008。它会在导入前显示预览,显示已用流量和到期时间,默认每天更新。
按照分步教程操作:iPhone 如何导入 Clash 订阅,或在导入订阅和配置中查看完整的格式列表。
常见问题
- Clash 订阅链接是什么?
- 它是代理服务商提供的一个 URL,返回一份 Clash 或 Mihomo 的 YAML 配置。文件中列出了你的服务器,通常还有代理组和规则,App 会定期重新下载它以保持最新。
- 订阅 URL 和分享链接是一回事吗?
- 不是。ss:// 或 vless:// 这样的分享链接描述的是一台服务器,而且永远不变。订阅 URL 指向服务商服务器上的一份列表,服务商可以增加、删除或修改其中的服务器,App 重新获取后就能拿到这些变化。
- 为什么我的订阅在浏览器里打开是一堆乱码?
- 很多 V2Ray 和 Shadowsocks 订阅是经过 Base64 编码的分享链接列表,代理 App 会负责解码。有些服务商还会根据请求的 App 返回不同格式,所以浏览器看到的可能和 App 拿到的不一样。
- 订阅 URL 被别人拿到会怎样?
- 对方可以导入你的服务器、消耗你的流量,因为 URL 中通常带有一个作用相当于密码的令牌。如果泄露了,请在服务商的控制面板中重置订阅链接,然后导入新的链接。