本文适用于已经持有自己服务商资料或订阅、需要在 Shadowrocket(小火箭)中核对 Trojan 参数的用户。填写时先区分服务器地址与 SNI,再核对端口和密码,并保持证书校验开启;完成后分别验证服务器连接与 Global Routing。文中的域名仅用于解释字段,不是可连接的服务地址,本站不提供、销售或推荐节点与订阅。
1. Trojan 参数分别参与哪一步连接
Trojan 使用 TLS 保护客户端与服务器之间的通信,并在加密连接中进行协议认证。理解填写顺序时,可以把过程分为解析地址、连接端口、完成 TLS 握手、提交认证信息、转发请求几个阶段。前一阶段未完成,后一阶段的参数通常还没有机会起作用,因此“连不上”不能直接归因于密码错误。
Address 决定连接到哪里,Port 决定连接服务器上的哪个入口;SNI 参与 TLS 握手中的服务器名称指示,证书校验用于确认服务器身份;Password 则用于 Trojan 认证。密码正确并不意味着证书一定正确,端口可达也不意味着 Trojan 认证已经成功。
| 字段或环节 | 具体作用 | 优先核对 |
|---|---|---|
Address | 指定连接目标,可以是域名或 IP 地址 | 拼写、解析结果、是否多粘贴了路径 |
Port | 指定服务器监听端口 | 与已有资料完全一致,不凭协议名猜测 |
SNI | 在 TLS 握手中指示服务器名称 | 服务端要求的名称、证书覆盖范围 |
| 证书校验 | 检查信任链、有效期与名称匹配等条件 | 设备时间、证书名称、服务端证书配置 |
Password | 用于 Trojan 认证 | 大小写、完整字符、首尾空格 |
端口 443 是常见示例,不是 Trojan 的固定要求。若已有资料明确给出 8443,就应填 8443。普通 Trojan 的参数也不能自动套用于其他传输组合;如果资料还要求额外的传输设置,应逐项核对,不能仅凭地址、端口和密码推断配置已经完整。
2. Home → Add Server 的填写步骤
手动添加前先保存一份已有参数,避免修改过程中混淆原值。以下流程面向普通 Trojan;若记录来自订阅,先查看导入后的字段,再决定是否需要手动建立一条独立记录。不同界面布局中的选项位置可能不同,应以当前 Add Server 页面显示的英文字段为准。
-
选择类型
进入 Home,点击右上角“+”打开 Add Server,在 Type 中选择 Trojan。不要沿用其他协议记录只替换密码,协议类型决定后续字段的含义。
-
填地址端口
在 Address 填已有资料中的域名或 IP,在 Port 填对应数字。Address 不包含
https://、网页路径或末尾斜杠;端口单独填写,不附在地址后面。 -
核对密码
在 Password 粘贴完整认证密码,检查首尾空格与换行。密码不是订阅链接,也不是网站登录密码;不要对资料中的密码自行加引号或进行字符替换。
-
核对 SNI
在 SNI 填资料指定的服务器名称。若 Address 是 IP 而证书签发给域名,尤其要核对这一项。保留证书校验,不把 Allow Insecure 当作常规连接设置。
-
保存测试
保存后回到 Home,选中刚添加的服务器,核对 Global Routing,再打开连接开关。首次连接按系统提示授权;用已知可访问的网页验证,不只看开关状态。
3. Address 与 SNI 不同,应该怎样填
Address 是网络连接目标,SNI 是 TLS 握手中的名称,两者可以相同,也可以不同。以连接 IP、证书对应域名的情况为例,客户端连接的是该 IP 的指定端口,但握手时仍可能需要提交域名,以便服务端选择相应证书或处理路径。
SNI 不负责把一个不可达的 IP 变成可达,也不是任意网站域名都可以填。它必须符合已有服务资料和服务端配置。对同一个地址随意轮换 SNI,既不能可靠修复连接,也会使证书名称问题难以定位。
| 资料情形 | Address 示例 | SNI 核对方式 |
|---|---|---|
| 连接域名,名称相同 | edge.example.com | 核对资料是否也指定 edge.example.com |
| 连接 IP,证书对应域名 | 192.0.2.10 | 填写资料指定的名称,例如 edge.example.com |
| 连接域名,名称另有指定 | entry.example.com | 使用明确给出的 SNI,不自动替换成 Address |
表中 192.0.2.10 属于文档示例地址,不能用来测试实际服务。如果资料未注明 SNI,不要猜测新的名称;先核对导入记录和原始说明。SNI 留空时的自动处理行为不能替代对实际证书名称的核对,尤其是 Address 为 IP 的情况。
- SNI 只填名称,不填
https://,不加:443,也不加路径。 - 证书覆盖
*.example.com时,不能据此认为任意层级子域名都匹配;例如a.b.example.com不属于通常的单层通配匹配范围。 - 名称匹配只是证书校验的一部分,证书过期、信任链异常或设备时间错误仍可能导致握手失败。
4. TLS 证书校验与 Allow Insecure 的区别
Trojan 的 TLS 不只是加密传输,也涉及服务器身份验证。Allow Insecure 这类设置改变的是证书校验要求,不会修复服务器地址、端口、密码或监听状态。即使关闭校验后能够连接,也只能说明校验相关条件值得检查,不能证明整套参数已经正确。
保留证书校验
推荐保持 Allow Insecure 关闭,按资料填写 SNI。遇到证书错误时核对名称、设备时间和服务端证书,保留对服务器身份的验证。
适合:日常连接、导入记录复核、长期配置保存
Allow Insecure 开启
会放宽证书校验,降低服务器身份验证的保障。若已有记录开启此项,应确认原因与证书情况,不把它作为解决所有连接错误的通用办法。
适合:识别已有配置中的校验例外,并安排修正
结论:先修正名称与证书
看到证书相关错误时,先对照 Address、SNI 和证书覆盖名称,再检查设备时间;不要同时改端口、密码和校验开关,否则下一次测试无法判断是哪一项造成差异。
如果服务端使用特殊证书安排,应由你已有的服务资料明确说明验证方式。客户端侧随意忽略证书,不等于完成了可信验证。提交问题时可以提供错误类型和发生阶段,但不要公开 Password、完整订阅地址或其他认证资料。
5. 保存后仍打不开网页,按连接阶段排查
Home 的连接开关开启,表示本地连接功能已经启动,不代表远端服务器认证成功。排查时应区分服务器连接失败、目标网站连接失败,以及请求没有经过这条服务器三种情况。每次只改变一个变量,并记录测试时间、网络环境和结果。
- 先确认选中记录。回到 Home 检查当前服务器,避免编辑的是新记录,实际使用的却是原来的记录。若配置使用策略组,还应确认组内实际选择。
- 再确认路由姿态。Home → Global Routing 中,Direct 采用直连;Config 按当前配置处理;Proxy 可用于临时核对代理路径。Scene 属于场景化选择,排查时先确认其实际生效内容,不把名称当作固定规则。
- 检查地址和端口。若出现超时,先检查域名能否解析、端口是否与资料一致,再对比当前 Wi-Fi 与蜂窝网络。超时本身不能证明密码错误。
- 检查 TLS 阶段。若错误涉及证书或握手,核对 SNI、设备时间、证书有效期及服务端是否在该端口提供预期的 TLS 服务。
- 最后检查认证与目标。连接建立后仍被关闭,需重新核对 Password,也要考虑服务端状态。单个网站失败时再检查该目标和规则,不立即重写整条服务器记录。
使用 Config 时,可进入 Config 核对当前启用文件的 Rule 段。规则按顺序匹配,命中 DOMAIN-SUFFIX,example.com,DIRECT 的请求使用 DIRECT;因此访问该域名不能验证 Trojan 是否可用。规则未命中时还要看 FINAL 的策略,以及策略组最终选择的服务器。
6. 密码、SNI 与导入记录的常见问题
密码复制没错,为什么还是失败?
打开 Home 中对应记录的编辑页面,先核对 Type 是否为 Trojan,再核对 Address 和 Port。随后重新粘贴 Password,检查首尾空格、换行和大小写。只有连接进入认证阶段,密码才是优先怀疑项;超时或证书错误应先处理前面的连接阶段。
Address 已经是域名,SNI 还要填吗?
先看已有资料是否明确指定 SNI。若给出了单独名称,就在 Add Server → SNI 按原值填写;不能只因为 Address 是域名就删掉。若没有指定,核对导入记录与证书安排,不自行填入无关域名。
为什么换成 443 还是连接超时?
Port 必须对应服务器实际监听端口。把资料中的 8443 改成 443,并不会让服务自动迁移。先恢复原端口,再核对地址、当前网络与服务端状态;端口常见不等于该端口一定提供 Trojan。
订阅更新后,手动改的 SNI 又变了?
回到 Home 查看更新后的记录,并与已有订阅资料核对。更新可能覆盖订阅管理的字段;若需要保留诊断值,可手动建立独立记录进行测试,再向原资料提供方确认正确参数。不要重复改写订阅记录而忽略其来源仍未修正。
完成核对后,保留一份不含密码的检查记录:协议类型、端口、Address 与 SNI 是否不同、证书校验状态、测试时的 Global Routing,以及错误发生阶段。这样的记录能帮助下一次定位问题,而不是依靠反复切换参数。