本文适用于已经持有自己服务商提供的 Trojan 参数或订阅、需要在 Shadowrocket(小火箭)中核对配置的用户。先区分连接地址、TLS 身份与认证密码,再按 Add Server 的字段检查;遇到超时、证书错误或认证失败时,可按连接阶段缩小范围,而不是反复切换所有选项。
Trojan 参数的三层关系:连接、TLS 与认证
常见 Trojan 连接先通过 TCP 到达服务器的指定端口,再建立 TLS 会话,随后在加密通道内提交 Trojan 认证信息并传输代理请求。因此,地址可达不等于 TLS 成功,TLS 成功也不等于密码正确。填写时应把这三个阶段分开核对。
TLS 用于保护传输并验证对端身份;Trojan 密码用于应用层认证,两者不能相互替代。服务器证书有效,不代表所填密码有效;密码正确,也无法修复证书名称不匹配。本文讨论常见的 Trojan over TLS 配置,额外的传输选项应严格沿用用户已有订阅或服务商提供的说明。
判断:先定位失败阶段
若出现证书名称错误,先核对 SNI 与证书,而不是更换密码;若连接始终超时,先查地址、端口和当前网络,暂不调整 TLS 安全选项。
Add Server 字段:地址、端口与密码怎样填写
从 Home 右上角的“+”进入 Add Server,将 Type 设为 Trojan,再逐项录入。已有订阅能够直接生成条目时,优先保留原条目作对照;手动检查可使用独立条目,避免订阅更新覆盖临时修改。字段的显示位置可能随界面调整,核对时以英文名称及其用途为准。
| 字段 | 填写内容 | 常见误填 |
|---|---|---|
| Type | 选择 Trojan,与已有配置的协议保持一致。 | 只看条目名称,没有确认实际协议。 |
| Address | 服务商给出的服务器域名或 IP 地址。 | 粘贴整条订阅 URL,或带入 https://、路径与查询参数。 |
| Port | 服务器实际监听的端口,例如 443 或 8443,以原参数为准。 | 看到 TLS 就统一改成 443,或把端口重复写进 Address。 |
| Password | 该 Trojan 条目的完整认证密码。 | 使用服务商网站登录密码,或漏掉符号、带入首尾空格。 |
| SNI | 服务商指定的 TLS 服务器名称,通常为域名。 | 填写 URL、端口或任意网站名称。 |
| Allow Insecure | 正常使用保持关闭,保留证书验证。 | 将其当作解决超时或密码错误的通用开关。 |
例如,若已有参数明确给出地址为 edge.example.com、端口为 8443,就应分别填写这两个字段。这里的域名仅用于说明字段格式,不是可用服务地址。不要因为浏览器常见 HTTPS 使用 443,就自行替换服务端指定的端口。
- 密码区分大小写,应完整复制服务商为该条目提供的值,不自行缩短或修改。
- 手动填写 Password 时使用原始密码。若拿到的是编码后的分享内容,优先用应用的导入功能,不把编码片段直接当密码。
- 订阅 URL 中的 token 用于取得订阅内容,不一定是 Trojan 密码;两者不能按外观推断为同一个值。
SNI 与 TLS:连接地址为什么可以不同
SNI 是 TLS ClientHello 中的服务器名称扩展,可让同一地址上的服务器选择对应证书与站点配置。Address 决定客户端连接到哪里,SNI 则参与 TLS 连接中的名称选择。在常见配置中二者是同一个域名,但当 Address 使用 IP,或服务端采用特定入口时,两者也可能不同。
例如,已有配置指定 Address 为某个 IP,SNI 为 tls.example.com,就应保留这一区别。不要把 SNI 自动改成 IP,也不要从其他条目复制一个“看起来相似”的域名。证书验证还会检查信任链、有效期与名称匹配;设备时间明显不准,也可能导致有效证书被判断为尚未生效或已过期。
- SNI 不填写协议前缀:应为
tls.example.com这样的名称,不是https://tls.example.com/path。 - SNI 不填写端口:端口仍放在 Port;不要写成
tls.example.com:443。 - 不要任意替换名称:随意改成知名网站域名,不会让服务器自动获得对应证书,也不能保证连接成功。
- 没有独立 SNI 时先查原配置:不要仅凭“Address 已填域名”推断所有服务端都接受相同默认行为。
如果原参数另有 ALPN 或传输相关设置,应一并保持一致。不要把排查文章中出现的任意组合套入现有条目。尤其不能把标准 Trojan 的参数习惯直接套到另一种协议上:协议类型决定认证与传输方式,不能只改 Type 就认为完成转换。
从录入到验证:按顺序完成五步检查
录入前准备好原始参数,并记录当前网络是 Wi-Fi 还是蜂窝网络。验证时使用同一个目标、同一个网络与同一个条目,才能判断修改是否有效。若同时更改密码、SNI 和路由模式,即使恢复连接,也难以确认真正原因。
-
进入添加页
Home → 右上角“+” → Add Server → Type,选择 Trojan。若来自已有订阅,先对照订阅生成的条目,确认不是选错协议。
-
录入连接项
分别填写 Address、Port、Password。粘贴后检查首尾空格,确认 Address 中没有 URL 路径,Port 与原参数一致。
-
核对 TLS
按原配置填写 SNI,检查 TLS 相关选项,并保持 Allow Insecure 关闭。保存前再次确认域名没有附带端口。
-
隔离路由影响
返回 Home,选择刚保存的条目。测试期间可将 Global Routing 临时设为 Proxy,确认该条目承载测试请求;完成后恢复原有 Config 或 Scene 设置。
-
验证实际访问
打开连接开关,按系统提示完成必要确认,再运行 Connectivity Test 并访问日常使用的 HTTPS 页面。记录错误与现象,不只看连接开关是否开启。
Global Routing 处于 Direct 时,请求可能直接连接,网页能打开也不能证明 Trojan 参数有效。Config 根据当前配置规则选择策略,Scene 则应核对所用场景的实际设置。临时使用 Proxy 是为了减少路由变量,不代表日常使用必须保持该模式;规则分流说明可参见规则手册。
- Connectivity Test 的成功只反映该测试条件下的结果,不能证明所有网站、所有传输类型都可用。
- 连接开关开启表示系统已启用相应连接配置,不代表远端认证与每次请求都已成功。
- 切换网络复测时,先保持参数不变;若只有一个网络失败,应优先检查该网络的连通性。
常见现象:超时、证书错误与连接后不可用
排查应依据实际错误分类,而不是只依据“连不上”三个字。以下是核对路径,不是固定诊断结论:同一种表面现象可能由多个环节造成,需要结合原参数与重复测试确认。
一直显示超时,要先改密码吗?
先核对 Home 中所选条目的 Address 与 Port,再换一个可用网络重复测试。域名无法解析、端口不可达或服务端未响应,都可能表现为超时。确认连接能够到达服务端后,再检查密码;超时本身不能证明密码有误。
提示证书问题,SNI 应该怎么改?
打开条目编辑页,对照原配置检查 SNI 拼写,再到 iPhone 或 iPad 的“设置 → 通用 → 日期与时间”核对时间与时区。若仍有证书错误,把错误内容交给自己的服务商核查,不通过开启 Allow Insecure 掩盖问题。
延迟有数值,为什么网页仍打不开?
延迟数值取决于所用测试方式,不一定覆盖完整的 TLS、Trojan 认证与目标访问过程。先确认 Global Routing 不是 Direct,再运行 Connectivity Test;如果连接建立后立即中断,还需核对密码与服务端状态。
手动改好后,更新订阅又失效了?
订阅更新可能重新生成条目,覆盖本地修改。将更新后的 Address、Port、SNI 与已确认参数逐项对照,并请自己的服务商修正订阅内容。需要临时测试时使用独立手动条目,避免反复修改同一个订阅条目。
保存核对结果与保护订阅信息
提交问题时,记录失败时间、网络类型、测试方式以及经过遮盖的错误信息,比发送完整配置更便于定位。Password 和订阅 URL 都可能包含访问凭据;尤其是查询参数中的 token,不应出现在公开截图、聊天群或日志分享中。不要把真实订阅地址粘贴到不明页面验证。
- 记录字段是否与原配置一致,不公开完整密码、订阅 token 或可直接导入的分享内容。
- 保留一份成功配置的私密记录,注明它来自手动录入还是已有订阅,避免混淆条目。
- 测试结束后恢复日常 Global Routing 设置;若排查时调整过 Settings → On Demand,也应按原使用需求恢复。
- 若参数曾泄露,应通过用户自己的服务商提供的管理渠道更换相关凭据,再更新本地条目。
Shadowrocket 是闭源商业应用,客户端购买与服务端访问凭据属于不同事项。客户端买断 ≠ 线路套餐。本文以用户已有自己的服务商与订阅为前提,仅说明参数核对和使用方法。