在 Shadowrocket(小火箭)的 Home 添加已有的 Trojan 参数时,先核对连接地址和端口,再核对 Password、SNI 与证书校验。本篇以用户已有自己的服务商与配置为前提,说明手动填写、导入后复核及握手失败的排查顺序;示例域名只用于解释字段,不能作为可用连接。
Trojan 连接顺序:先建立 TLS,再验证 Password
在 Home → Add Server 选择 Type 为 Trojan 后,填写的是远端服务的连接参数。普通 Trojan 连接先到达 Address 指定的主机与 Port 指定的端口,再进行 TLS 握手,随后在加密通道中提交协议认证信息。Password 正确不等于证书正确,证书有效也不等于账号认证一定成功,两部分应分别核对。
在已有参数中看到 443 时,不要据此判断服务一定可用,也不要把其他端口自动改成这个数值。TLS 可以部署在其他端口;同样,某个端口能建立 TCP 连接,只能说明网络路径与监听服务可能可达,不能证明该端口运行着匹配的 Trojan 服务。
Add Server 字段对照:地址、端口与密码分别填什么
在 Home 点右上角的添加按钮进入 Add Server,先将 Type 设为 Trojan,再按已有参数逐项填写。下面的 connect.example.com 与 tls.example.com 是保留示例域名;表中说明的是填写格式,不是一组可测试的服务参数。不同界面语言或表单布局可能将 SNI 放在 TLS 相关选项内,应按字段含义核对。
| 字段 | 填写内容 | 核对重点 |
|---|---|---|
Type | Trojan | 必须与远端服务类型一致。 |
Address | 已有服务的域名或 IP,例如 connect.example.com | 不附加 https://、端口或网页路径。 |
Port | 服务商给出的数字,例如 443 | 与 Address 分开填写,不能使用全角数字。 |
Password | 该 Trojan 服务的完整密码 | 区分大小写,核对首尾空格与复制时带入的换行。 |
SNI | 已有配置指定的 TLS 主机名,例如 tls.example.com | 填写主机名,不填写 URL、路径或端口。 |
Allow Insecure | 正常使用保持关闭 | 不要用跳过证书校验代替修正名称、有效期或证书链。 |
在 Password 粘贴密码后,应回到原始资料核对内容,而不是凭长度判断。Trojan 的 Password 不是 App Store 购买凭据,也不是自行生成的 UUID。若资料只有服务商网站的登录密码,没有明确的 Trojan 参数,应先取得对应连接配置,不能将网站登录密码直接填入。
在 Address 填域名时,设备需要先解析该域名才能建立连接;填 IP 则直接连接对应地址,但不会因此免除 TLS 名称校验。若服务使用域名证书而连接地址是 IP,通常仍需要按照已有配置指定正确的 SNI,不能把 IP 原样当作证书域名。
SNI 与证书校验:连接地址和验证名称可以不同
在 SNI 填入服务商指定的主机名后,TLS 握手会携带该名称,远端可据此选择对应的证书或服务。Address 负责“连接到哪里”,SNI 负责告知 TLS 服务预期访问的主机名;在通常的 TLS 配置中,该主机名也参与证书身份核对。两个字段相同很常见,但不是必须相同。
证书校验开启
推荐保持 Allow Insecure 关闭,使用正确的 SNI,并由系统信任机制核对远端证书。遇到过期、名称不匹配或不受信任的证书时,应修正配置或远端证书。
适合:日常连接与正式配置验证
跳过证书校验
Allow Insecure 开启会放宽证书验证,削弱对远端身份的确认。它不会修复密码、端口或传输方式错误,也不能将连接成功当作配置正确的依据。
适合:理解既有配置的风险差异,不作为常规修复方案
结论:先改正 SNI,不绕过校验
出现证书名称不匹配时,先把 SNI 与已有配置、证书覆盖的域名逐项核对;名称正确仍失败,再检查设备时间、证书有效期与服务端证书链。
在 SNI 留空时,不应假定任何连接地址都能通过验证。默认名称的选取与具体配置有关;对于明确提供 SNI 的服务,应保留原值。若证书仅覆盖 tls.example.com,把 SNI 改成其他网站的域名并不能让它自动获得相应身份。
- 核对证书名称时,区分完整域名与通配符覆盖范围;通配符并不覆盖任意深度的子域名。
- 核对设备时间时,检查系统日期与时区是否正确;时间偏差可能导致有效期判断失败。
- 核对证书链时,要求远端提供正确的中间证书;本地反复重填 Password 不能补全服务端证书链。
手动添加与首次验证:保存后再确认实际使用的节点
在 Home 完成 Add Server 后,先保存,再选中刚添加的条目进行验证。只修改一个可疑字段并记录结果,避免同时改密码、SNI 和端口后无法判断哪个变更起作用。首次连接按系统提示允许添加 VPN 配置,之后回到 Shadowrocket 核对连接状态。
-
选择类型
进入 Home → 右上角添加按钮 → Add Server → Type,选择 Trojan。先确认已有资料的协议类型,不把其他协议参数套入此表单。
-
填写连接
将已有主机名填入 Address,将服务端口填入 Port,将完整密码填入 Password。地址中去掉 URL 协议头,端口单独填写。
-
核对 TLS
在 SNI 或相应 TLS 主机名字段填写已有值,保持 Allow Insecure 关闭;若资料附有传输参数,同时核对相应设置。
-
保存并选中
保存后回到 Home,选中该 Trojan 条目,再检查 Global Routing。排查时可临时使用 Proxy,减少规则对测试路径的影响。
-
验证后恢复
发起一次正常访问,并核对连接记录中的实际目标、所用节点与错误阶段。完成验证后恢复原来的 Global Routing 姿态及自动连接设置。
在 Global Routing 使用 Config 时,请求按当前配置中的规则匹配,可能由 DOMAIN-SUFFIX、GEOIP、IP-CIDR 或 FINAL 指向不同策略;页面能打开不代表它一定经过刚添加的 Trojan 条目。Direct 用于直连,不能拿直连成功证明该条目可用。Scene 则应按实际场景设置核对,不能默认等同于 Proxy。
握手失败怎么查:按网络、TLS、认证的顺序缩小范围
在连接记录中看到错误后,先分清失败发生在解析、连接还是 TLS 阶段,再修改对应字段。下表列的是常见可观察现象,不代表某一种提示只能由单一原因造成;具体措辞可能随系统和远端响应而变化。不要仅凭延迟数值或一次超时认定 Password 错误。
| 观察到的现象 | 优先核对 | 下一步操作 |
|---|---|---|
| 域名解析失败,尚未连接到远端 | Address 拼写、当前网络 DNS | 先确认主机名能够解析,不要修改 Password 或关闭证书校验。 |
| 连接超时或连接被拒绝 | Address、Port、远端监听与网络路径 | 对照已有端口,切换另一条可用网络进行对照,避免连续改动 TLS 字段。 |
| 提示证书名称不匹配 | SNI 与证书覆盖域名 | 恢复服务指定的主机名,确认没有带入协议头、路径或多余空格。 |
| 提示证书过期或不受信任 | 设备时间、证书有效期、证书链 | 核对系统时间,向自己的服务商反馈证书问题,保持校验开启。 |
| TLS 后连接立即结束,或认证未通过 | Password、Type、服务状态与传输参数 | 重新核对原始参数;连接结束本身不能单独证明密码错误。 |
| 连接建立但指定网页打不开 | 实际选中节点、规则策略、目标 DNS 与远端访问 | 先查看该请求的实际路径,再区分规则问题与目标站点问题。 |
在反馈故障时,提供错误出现的阶段、网络类型与脱敏后的字段差异即可。Password、完整分享链接、订阅地址中的 token 都属于敏感信息;不要把它们连同截图公开发送。需要向自己的服务商核实时,说明证书错误或连接中断的具体表现,比只描述“不能用”更便于定位。
已有配置导入后:检查覆盖与更新来源
在 Home 使用已有分享链接、二维码或订阅导入 Trojan 后,仍应打开条目编辑页复核 Type、Address、Port、SNI 与 Allow Insecure。导入可以减少手抄错误,但不能证明远端参数仍有效,也不能保证链接包含完整的附加传输设置。
- 先识别链接类型:
trojan://是单条配置的常见分享协议头,不等于订阅地址。订阅通常返回一组条目,不能把订阅 URL 填进 Address。 - 保留原始依据:手动修改前记录原配置的非敏感字段,确认改动针对的是本地条目,还是由订阅管理的条目。
- 更新后再复核:订阅刷新可能重新生成条目或覆盖本地修改。若问题在刷新后复现,应核对自己的订阅源内容,而不是反复修改同一处字段。
- 分开管理用途:Home 用于节点选择与连接,Config 用于配置文件及规则管理,Settings 用于应用设置;Trojan 认证问题不应通过随意删除分流规则来处理。
在需要进一步区分分流与连接问题时,可继续阅读连接排查说明与规则与策略说明。先证明单个条目的连接参数正确,再回到日常 Config 规则验证目标请求,能够避免把节点参数、DNS 与策略选择混成同一个问题。