本文适合已经拥有服务商和连接参数、准备在 Shadowrocket(小火箭)中添加 Trojan 的用户。先区分服务器地址、Password 与 SNI 的职责,再按 Home → Add Server 完成录入,最后把 TLS 握手、身份验证与规则分流分开检查。示例仅说明字段关系,不是可连接的服务。
Trojan 参数为什么要分开核对
Trojan 使用 TLS 保护客户端与服务器之间的通信,再在这条连接中进行协议认证和转发。普通 Trojan 通常运行在 TCP 之上;TLS 建立成功,并不等于 Password 已通过认证,也不等于目标网站已经能正常访问。这三个阶段应分别检查。
服务器地址决定连接发往哪里,端口决定连接服务器上的哪个服务,SNI 用于在 TLS 握手中声明服务器名称,Password 则用于 Trojan 身份认证。它们可以来自同一份参数表,但不能互相替代。尤其不要把订阅链接中的 token、账户登录密码或其他协议的 UUID 当成 Trojan Password。
结论:按失败阶段改参数
出现证书错误时先核对 SNI、证书与设备时间;TCP 连接超时时先核对地址和端口。每次只修改一项并重新连接,避免同时改动后无法判断原因。
Add Server 中逐项填写
以下以 Home 的手动添加流程为例。不同平台的表单布局可能不同,但字段职责相同。若已有订阅完整提供了这些参数,应优先保留订阅下发值;只有服务商明确要求补充或修正时,才手动调整对应字段。
-
打开表单
进入 Home → 右上角“+”→ Add Server,在 Type 中选择 Trojan。先确认类型,不要仅凭节点名称里含有“TLS”就推断协议。
-
填写地址
在 Address 填服务商提供的主机名或 IP,在 Port 填指定端口。例如端口为 443 时,只在 Port 填入
443;Address 不带https://、路径或末尾斜杠。 -
填写密码
在 Password 粘贴该 Trojan 节点的密码。检查大小写、首尾空格与换行;不要自行改写字符,也不要预先把原始密码转换成 URL 编码文本。
-
核对 TLS
进入表单中的 TLS 设置,按服务商说明核对 SNI 和证书验证设置。若另外提供 ALPN、传输方式或 WebSocket 参数,也应逐项保持一致,不能从其他节点照抄。
-
保存测试
保存后回到 Home,选择刚添加的节点。为排除规则干扰,可暂将 Global Routing 设为 Proxy,打开连接开关后访问一个已知可用的 HTTPS 页面;测试结束再恢复日常分流设置。
Address、Password 与 SNI 的填写边界
下面用保留示例域名展示字段格式。gateway.example.com 与 tls.example.com 均不是本文提供的服务地址。地址与 SNI 不同并不一定是错误:有些部署使用单独的连接入口,但要求 TLS 握手声明另一个经证书覆盖的名称。
| 字段 | 格式示例 | 核对重点 |
|---|---|---|
| Type | Trojan |
与服务端协议一致,不能换成 Shadowsocks 或 VLESS 来尝试连接。 |
| Address | gateway.example.com |
只填主机名或 IP;域名需要能在当前网络环境下完成解析。 |
| Port | 443 |
这是示例值。服务商指定 8443 等其他端口时,必须填写其实际值。 |
| Password | 服务商提供的原始密码 | 保留完整字符,不用账户密码、订阅 token 或节点备注代替。 |
| SNI | tls.example.com |
只填服务商要求的名称,不附加协议前缀、端口或 URL 路径。 |
SNI 与 HTTP Host 不是同一个字段。如果服务商使用 WebSocket 传输,可能还会提供 Host 和 Path;其中 Path 可能以 / 开头,而 SNI 不包含路径。普通 Trojan 没有要求额外传输时,不应自行开启 WebSocket 或添加一个猜测的 Path。
- 密码含特殊字符:直接填 Password 字段时使用原始值;若从分享链接导入,编码解析由导入流程处理,不要再手动重复解码或编码。
- 地址使用 IP:仍可能需要填写域名形式的 SNI,以匹配服务器证书;不能因为 Address 是 IP,就把 SNI 也改成 IP。
- SNI 没有提供:不要随便填写一个知名网站域名。先核对原订阅的完整参数,或向服务商确认是否使用地址域名作为服务器名称。
TLS 验证不能用改密码替代
TLS 证书验证用于确认连接对端的身份,通常包括证书信任链、有效期和名称匹配。服务器能够被访问,不代表它提供的证书就适合当前 SNI。设备日期或时区异常,也可能让原本有效的证书被判断为尚未生效或已经过期。
SNI 通常影响服务器选择哪张证书,客户端则需要验证证书是否覆盖预期名称。这两者有关联,但不是“填上任意域名即可加密”的关系。Password 错误属于后续认证问题,反复更换 Password 不能解决证书名称不匹配。
保留证书验证
推荐使用正确的 SNI,并让客户端检查服务器证书。出现错误时修正名称、设备时间或服务端证书,而不是把验证失败视为正常现象。
适合:日常连接、有效证书的常规 Trojan 部署
跳过证书验证
会削弱对服务器身份的确认,不能修复错误的地址、端口或密码。即使临时连接成功,也不能据此证明整套参数正确。
适合:仅理解其风险与诊断边界,不作为常规修复方案
ALPN 用来协商应用层协议,不是用于提高速度的通用开关。服务商没有指定时保持原配置,不要强制填写 h2 或 http/1.1。同样,不要为了消除报错随意降低 TLS 设置;应先查明服务端要求。
连接成功后,分开检查规则与节点
Home 的连接开关开启,表示客户端连接流程已经启动,并不保证每个请求都经过当前 Trojan 节点。Global Routing 下的 Direct 会让请求直连;Config 按启用配置中的规则选择策略;Proxy 可用于暂时排除规则分流影响。Scene 则需要同时核对相应场景设置,不宜作为第一次排障的额外变量。
- 先在 Home 选中待测 Trojan 节点,再暂时选择 Global Routing → Proxy,重新连接并访问固定测试页面。
- 如果 Proxy 下可访问,而 Config 下表现不同,进入 Config 检查当前启用配置及其
[Rule],不要立刻修改 SNI。 - 检查规则是否命中
DIRECT,以及指向PROXY的请求实际选择了哪个节点或策略组。 - 若还需排除自动重连影响,查看 Settings → On Demand 的现有设置;On Demand 管理连接触发条件,不负责修复 Trojan 认证参数。
例如下面的规则只让示例域名及其子域名走 PROXY,其他未匹配请求走 DIRECT。这是一段规则语法示例,不是连接参数,也不是完整配置。规则按顺序匹配,FINAL 应放在末尾;使用前还要确认当前配置对代理策略的选择符合预期。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
FINAL,DIRECT
在这段配置下,访问其他网站时观察不到 Trojan 流量是预期结果。证书错误通常应沿 TLS 参数排查,而“特定网站没有经过代理”通常应沿规则匹配排查。把两类问题混在一起,会导致原本正确的节点参数被反复改坏。
常见报错与订阅覆盖问题
排查时记录错误发生的时间、当前网络、选中的节点和 Global Routing 状态,再查看可用的连接诊断信息。下面的现象是排查分支,不是仅凭一句报错就能确定的故障结论;同一条“超时”提示也可能出现在不同阶段。
地址和密码都填了,为什么还是超时?
先核对 Address、Port,以及当前网络能否访问该入口。若域名解析失败,应先处理解析;若 TCP 连接未建立,应确认端口和服务状态。此时反复修改 SNI 或 Password 通常没有针对性。
提示证书名称不匹配,该改哪里?
返回 Home,编辑对应节点的 TLS 设置,逐字比对 SNI 与服务商提供值,检查是否误带 https://、端口或路径。再确认设备日期正确;仍报错时请服务商核对证书覆盖的域名。
TLS 看起来正常,但网页仍打不开?
继续核对 Password 与传输方式,确认当前选中的是修改后的节点,再用 Global Routing → Proxy 测试。若 Proxy 正常而 Config 异常,回到 Config 检查规则,不要以关闭证书验证来处理分流问题。
手动改好了,为什么订阅更新后又变了?
订阅更新可能重新写入来源提供的节点参数。先核对订阅原始配置是否已修正;若需要临时对照测试,可单独手动添加一个有明确备注的条目,避免把本地实验值与持续更新的订阅条目混为一谈。
如果服务商提供的是订阅而非单个节点,使用 Home → “+”→ Type → Subscribe 导入自己的链接,再返回 Home 更新订阅。示例链接 https://example.com/sub?token=xxxx 仅说明格式,不可用于连接。分享排障截图时应遮住 Password、订阅 token 与完整订阅地址;提交问题只需保留字段名称、错误类型和必要的脱敏上下文。
提交排障前的核对清单
完成一次受控测试后,再决定是否需要服务商协助。不要同时切换网络、节点、SNI 和规则,否则很难复现问题。对照测试应保持目标页面一致,并确认没有选错名称相近的订阅节点。
- 连接入口:Address 与 Port 已按原始资料核对,未把网页 URL 粘贴进地址字段。
- 认证信息:Type 是 Trojan,Password 来自该节点,未夹带空格或换行。
- TLS 信息:SNI、证书验证与服务商要求一致,设备日期正常,未擅自增加 ALPN。
- 传输信息:只有在原参数明确要求时才配置 WebSocket、Host 与 Path。
- 测试姿态:记录 Proxy 与 Config 下的实际差异,确认请求是否命中预期策略。
- 更新来源:区分手动条目和订阅条目,确认下一次订阅更新是否会覆盖本地修改。
参数确认后,将 Global Routing 恢复为日常需要的设置,并重新检查 Config 中启用的配置。需要了解字段结构,可查看配置字段说明;需要区分路由姿态,可查看代理模式说明。协议参数正确、证书身份可信和请求命中预期规则,是三个需要分别满足的条件。
获取 Shadowrocket 与首次配置
iPhone / iPad 版在 App Store $2.99 一次性付费,Mac(Apple 芯片 / Intel)、Windows、安卓、Linux 版免费。iPhone / iPad 系统要求以 App Store 页面标注为准。通过下载页选择平台,再按教程导入已有订阅。