本文适合已经持有自己的服务商配置或订阅、准备在 iPad 或 iPhone 上导入 Shadowrocket(小火箭)的用户。先用链接前缀区分单条节点与订阅,再逐项识别地址、端口、凭据及传输参数,最后说明导入、更新与故障检查。所有示例都是不可用于实际连接的假值,本站不提供、不销售、不推荐节点、订阅或其他连接服务。
一、单条分享链接与订阅地址的区别
单条分享链接描述一个连接条目,通常包含协议、服务器地址、端口和认证信息。订阅地址则是获取配置内容的入口:Shadowrocket 请求这个地址,再把返回内容解析成一个或多个条目。因此,复制一条 ss:// 链接与保存一条订阅地址,导入对象和后续更新机制不同。
| 输入形式 | 主要内容 | 更新方式 |
|---|---|---|
ss:// | Shadowsocks 的连接参数 | 通常重新导入或手动编辑 |
vmess:// | VMess 的编码配置,常见为 Base64 包装的 JSON | 通常重新导入或手动编辑 |
vless:// | VLESS 的 UUID、端点与查询参数 | 通常重新导入或手动编辑 |
trojan:// | Trojan 的密码、端点与查询参数 | 通常重新导入或手动编辑 |
https://example.com/sub?token=xxxx | 返回配置内容的示例地址 | 通过订阅更新重新获取 |
不能仅凭 https:// 就判定地址是订阅。普通网页、账户页面与订阅入口都可能使用 HTTPS;只有服务商明确提供的订阅地址,且响应内容能被当前客户端解析,才适合作为 Subscribe 导入。订阅响应也不必然包含多条节点,只有一条时仍然可以保留远端更新机制。
判断:需要同步变化就保留订阅入口
如果手里同时有订阅地址和从中复制出的单条链接,应按需求选择:需要同步条目变更时保存订阅;只需独立保留一条配置时导入单条链接。单独复制出来的条目不会因此自动关联原订阅。
二、先读懂链接的公共结构
多数 URI 形式的分享链接可以分成 scheme、认证信息、主机与端口、查询参数以及备注。不同协议对这些部分的定义不同,不能把一个协议的用户名位置直接当成另一个协议的密码位置。下例用 Trojan 展示结构,密码与地址均为假值。
trojan://[email protected]:443?security=tls&sni=example.com#Demo-Trojan
trojan://:scheme,用于识别链接格式。demo-password:认证密码;包含特殊字符时需要按 URI 规则进行百分号编码。example.com:443:连接地址与端口;443 只是本例设置,不是所有协议固定使用的端口。?security=tls&sni=example.com:查询参数;具体字段能否被识别取决于导入格式与客户端支持。#Demo-Trojan:备注,通常用于显示名称,不是服务器地址的一部分。
百分号编码与 Base64 是两件事。比如备注中的空格可写为 %20;Base64 则把一段字节转换为可传递的字符文本。两者都不是凭据加密。分享链接、二维码和订阅 URL 可能直接携带访问凭据,不宜发到公开评论区,也不要粘贴到来源不明的在线解码页面。
三、ss://:辨认加密方法与编码范围
Shadowsocks 常见的 SIP002 分享形式是 ss://userinfo@host:port#remark。对于常见的 AEAD 配置,userinfo 通常是 method:password 的 URL-safe Base64 编码。下面的编码部分解码后为 aes-128-gcm:demo-password。
ss://[email protected]:8388#Demo-SS
解码后的认证字段:
aes-128-gcm:demo-password
服务器:example.com
端口:8388
加密方法:aes-128-gcm
密码:demo-password
另外也会遇到把 method:password@host:port 整体编码的旧式链接。这两种形式不能通过“固定截取前几个字符”来解析。Base64 文本末尾的 = 填充有时会省略,URL-safe 形式也可能使用 - 和 _,不能仅因缺少填充就断定链接损坏。
- 导入后同时核对加密方法与密码;密码正确但加密方法不一致,仍不能完成预期连接。
- 如果链接包含
plugin参数,应核对所需插件及其参数是否受到支持,不能直接删除后当成等价配置。 - 不要把 Shadowsocks 的加密方法套用到 VLESS 或 Trojan;协议字段的含义不同。
四、vmess://:Base64 外层与 JSON 内层
常见的 VMess 分享格式是在 vmess:// 后放置 Base64 编码的 JSON。此时表面上看不到 @host:port 不代表缺少地址,而是地址和端口位于 JSON 字段中。以下只展示一种常见格式解码后的内容,不是可以直接粘贴导入的完整 URI。
{
"v": "2",
"ps": "Demo-VMess",
"add": "example.com",
"port": "443",
"id": "00000000-0000-4000-8000-000000000000",
"aid": "0",
"scy": "auto",
"net": "ws",
"type": "none",
"host": "example.com",
"path": "/demo",
"tls": "tls",
"sni": "example.com"
}
这个示例中的 add 是连接地址,id 是明显虚构的 UUID,net 表示 WebSocket 传输,path 是 WebSocket 路径。host 与 sni 分别可能参与 HTTP Host 和 TLS SNI,并不必然等于连接地址。字段 v 描述这种分享结构,不是 Shadowrocket 的应用版本号。
- 先检查 Base64 是否完整,再检查解码结果是否为合法 JSON;不能只确认它“能解码”。
- 地址和端口相同,不代表配置相同;UUID、传输类型、路径、TLS 与 SNI 都可能影响连接。
- 不要随意增删 JSON 内的引号或逗号,也不要把聊天软件产生的换行、中文标点混入原始链接。
五、vless:// 与 trojan://:结构相近,凭据不同
这两种分享链接常采用可直接阅读的 URI 结构。VLESS 通常在 @ 之前放 UUID,Trojan 则放密码。两者都可能带传输与 TLS 参数,但不能只更换前缀就把一种协议转换为另一种。
vless://[email protected]:443?encryption=none&security=tls&type=ws&host=example.com&path=%2Fdemo&sni=example.com#Demo-VLESS
trojan://[email protected]:443?security=tls&sni=example.com#Demo-Trojan
| 检查项 | VLESS 示例 | Trojan 示例 |
|---|---|---|
| 认证信息 | UUID | 密码 |
| 传输方式 | type=ws 表示 WebSocket | 本例没有指定额外传输封装 |
| TLS | security=tls | security=tls |
| 名称校验相关字段 | sni=example.com | sni=example.com |
VLESS 的 encryption=none 不能解读成“整个连接没有 TLS”。它与 security=tls 属于不同层次的设置。也不能根据端口为 443 就推断证书一定有效;证书、SNI 和实际服务配置必须相符。遇到校验错误时应检查已有配置,不应把关闭证书校验作为常规修复步骤。
本文四种前缀不是完整的协议清单。Hysteria2、WireGuard 等有各自的参数模型与导入要求,不能拿本文的字段表机械套用。即使是同一种协议,分享格式也可能存在扩展;能解析成条目,只说明导入完成,不等于所有参数都已匹配服务器。
六、在 iPad 与 iPhone 上导入并更新
Shadowrocket 的 Home 用于查看连接状态与服务器条目,Config 用于管理配置文件,Settings 用于应用设置。订阅 URL 不应当作服务器域名填写,也不应仅凭扩展名认定为 Config 文件。先确定手里的内容是单条链接、订阅入口还是完整配置,再选择入口。
-
核对应用
从 App Store 获取 Shadowrocket,核对开发者 Shadow Launch Technology Limited。应用为一次性买断的闭源商业应用;客户端买断 ≠ 线路套餐。iPhone、iPad 的系统要求以 App Store 页面标注为准。
-
导入单条
复制自己已有的完整分享链接,回到 Home;出现剪贴板导入提示时核对后添加。若没有提示,可通过 Home 右上角「+」选择对应 Type,按原始配置逐项填写,不把整条 URI 填入服务器地址栏。
-
添加订阅
Home 右上角「+」→ Type → Subscribe,在 URL 中粘贴自己的订阅地址并保存。示例地址为
https://example.com/sub?token=xxxx,仅用于说明结构。 -
检查更新
回到 Home 下拉刷新订阅,检查该订阅组是否得到条目。更新可能增加、移除或修改条目;对需要保留的手工配置先做好单独记录,再执行更新。
-
验证连接
选择一个已有条目,连接时按系统提示允许 VPN 配置,再使用 Home → Connectivity Test 检查。同步核对 Home → Global Routing;Direct 不会因为导入了节点就自动变成 Proxy 或 Config。
订阅主要解决条目的获取与同步,不等于已经建立完整的规则分流。使用 Global Routing → Config 时,还应检查 Config 中正在使用的配置与目标策略。DOMAIN-SUFFIX、GEOIP、IP-CIDR 和 FINAL 是规则关键字,不是节点分享协议;订阅更新成功不能证明规则也已按预期匹配。
七、导入失败、更新失败与连接失败分别查什么
应按发生阶段排查:保存前提示格式问题,优先检查链接文本;订阅请求失败,检查入口与网络路径;条目已经出现但不能连接,则检查认证、传输和路由。把三个阶段混在一起,容易反复改动本来正确的设置。
复制后没有识别,是链接坏了吗?
先检查前缀是否完整,清除文本外围的引号、说明文字与代码围栏,确认没有把整条链接中的 & 变成字面文本 &。若只是剪贴板提示未出现,可从 Home →「+」手动核对对应 Type,不要因此改掉协议前缀。
订阅更新超时,应该先换协议吗?
先核对 Subscribe 的 URL 是否仍有效、token 是否完整,以及当前网络是否能访问该入口。只有已有可用代理且订阅入口需要经代理访问时,才到 Settings → Subscribe 检查 Update via Proxy;该选项不能修复失效的凭据或错误地址。
条目能导入,为什么还是不能连接?
打开条目核对地址、端口、密码或 UUID,再核对 TLS、SNI、传输类型与路径。然后在 Home 使用 Connectivity Test,检查 Global Routing。导入成功仅表示文本被解析,不表示认证信息有效,也不表示目标服务器可达。
改了名称,更新订阅后为什么又变了?
订阅更新可能依据远端内容重建或覆盖条目,不能把订阅组中的手工修改视为永久保存。需要独立维护时,先单独保存已有条目的完整参数;之后分别管理独立条目与原订阅,避免把两者当作同一份配置。
App Store 正版核验与导入教程
先核对 Shadowrocket 的 App Store 应用身份与购买信息,再按教程导入自己已有的订阅或配置。唯一获取入口是 App Store;购买客户端不包含连接服务,兼容性与系统要求以 App Store 页面标注为准。
去正版核验页 看教程