forked from MetaCubeX/ClashMetaForAndroid
-
Notifications
You must be signed in to change notification settings - Fork 4
Encrypted Subscriptions zh
Nemu-x edited this page Jul 9, 2026
·
1 revision
ClashFest 支持导入使用 age 加密的订阅——配置以加密块的形式从面板传输到设备,CDN、缓存以及任何中间流量检查者都看不到内容。
你不需要了解其中原理。如果你的服务商启用了加密:
- 从用户面板复制完整的订阅链接(或扫描二维码),形如:
https://panel.example.com/sub/TOKEN#AGE-SECRET-KEY-1XXXX… - 像平常一样在 ClashFest 中导入。应用会自动识别
#后面的密钥,将其保存到配置文件中,并保留干净的 URL。之后的更新会自动正常工作。
如果导入失败并提示 “订阅已使用 age 加密… [E-30]”,说明你导入的链接缺少密钥部分。请回到面板复制完整链接,或手动将密钥粘贴到 配置属性 → Age 密钥。
#之后的部分永远不会离开你的设备——浏览器和 HTTP 客户端在发送请求前会去掉 fragment。
你这边需要做两件事:加密配置、下发密钥。
在 ClashFest 中:设置 → Meta 功能 → Age 密钥 → 选择 X25519(或后量子 MLKEM768-X25519)→ 生成,复制两个密钥。或在服务器上:
age-keygen
# Public key: age1… ← 给面板
# AGE-SECRET-KEY-1… ← 给用户面板(或其前置中间件)用用户的公钥加密下发的 YAML:
age -r age1… -a -o subscription.yaml.age subscription.yaml将 armor 输出(-----BEGIN AGE ENCRYPTED FILE-----…)作为订阅正文下发。响应头(subscription-userinfo、X-Brand-* 等)保持明文——ClashFest 照常读取。
将私钥作为 URL fragment 附加到发给用户的链接上:
https://panel.example.com/sub/TOKEN#AGE-SECRET-KEY-1XXXX…
fragment 不会通过网络发送,也不会出现在日志或 CDN 中。用户只需导入一条链接,一切即可正常工作。
- 每用户独立密钥对——为每个账户生成一对密钥。吊销用户 = 删除其密钥,不影响其他人。
- 解密后的配置保存在设备上应用的私有存储中(与其中包含的节点凭据同等保护级别)。
- 规则/代理提供者文件同样可以加密下发——引擎会用同一密钥解密。
📱 User Guide
- Getting Started
- Profiles & Nodes
- Routing & Rules
- Settings
- Deep Links
- Encrypted Subscriptions
- Troubleshooting
🏢 Operator API
📺 Companion