Shadowrocket(小火箭)里的 Trojan 参数应逐项对应已有服务商提供的信息:Address 决定连接位置,Port 决定服务端口,Password 用于认证,SNI 用于 TLS 握手中的服务器名称指示。本文适合已有合法可用配置、需要手动填写或核对导入结果的用户;先检查参数,再区分 TLS、认证和规则分流问题,不通过反复改端口或关闭证书校验碰运气。
一、Trojan 连接里,TLS 与 Password 各管什么
常规 Trojan 连接先与服务器建立 TCP 连接,再进行 TLS 握手,随后在加密通道内发送包含认证信息的 Trojan 请求。TLS 负责传输加密及服务器身份校验,Password 则用于服务端识别客户端是否具有使用权限。密码正确并不意味着证书一定有效,证书有效也不意味着密码一定正确。
因此,排查应按“地址解析 → 端口可达 → TLS 握手 → Trojan 认证 → 实际请求”的顺序进行。普通网页能打开,只能说明当前设备有基础网络连接;延迟测试有数值,也不能单独证明 Trojan 认证和目标访问已经成功。
判断:先保留服务商给定值
将原始参数与表单逐项比对;只有在明确知道某项错误时才修改一项并重测。把 Port 改成 443 或将 SNI 改成 Address,都不能作为通用修复方法。
二、Add Server 表单:四项参数分别怎么填
在 Home 右上角点击“+”进入 Add Server,先把 Type 设为 Trojan,再填写其余内容。不同界面语言或表单布局下,SNI 可能显示为 TLS 相关的服务器名称字段;应按字段含义核对,不要将它填入备注或 Password。下面的地址和密码仅用于解释格式,不能用于连接。
| 字段 | 示例 | 填写规则与常见错误 |
|---|---|---|
Type | Trojan | 必须与原始配置一致,不能仅因同样使用 TLS 就选择其他协议。 |
Address | edge.example.com | 填写服务器域名或 IP 地址,不含 https://、路径、查询参数或端口后缀。 |
Port | 443 | 单独填写数字。若原始配置是 8443,就保留 8443,不按常见值覆盖。 |
Password | demo-password-not-valid | 按原值复制,区分大小写,注意前后空格和换行;它不是 App Store 账户密码。 |
SNI | tls.example.com | 填写已有配置指定的 TLS 服务器名称,通常是域名,不加协议头、路径和端口。 |
Address 和 SNI 可以相同,也可以不同。例如 Address 是连接入口的 IP,而 SNI 是服务器证书所对应的域名。此时不能把 SNI 也替换成该 IP。TLS 的 SNI 扩展用于指示服务器名称;证书链是否可信、证书名称是否匹配仍需正常校验。
三、手动添加并完成第一次连接
添加前应准备完整的 Trojan 参数。如果服务商给的是订阅链接,优先按订阅方式导入,再核对生成的条目;只有拿到明确的单项参数时,才按下面的步骤手填。订阅地址不能直接当作 Address 使用。
-
进入表单
打开 Home → 右上角“+”→ Add Server,在 Type 中选择 Trojan。为条目设置便于辨认的备注,避免与之前保存的相近条目混淆。
-
填写地址
依次填写 Address 和 Port。若拿到的是“域名:端口”,将两部分分开;不要把完整分享链接直接粘贴进 Address。
-
核对认证
填写 Password 与 SNI,保留原始 TLS 配置。如果已有配置另含 WebSocket 等传输参数,还须按原值配置对应选项,不能只填这四项就认定信息完整。
-
保存选中
保存并返回 Home,选择刚创建的条目。确认 Global Routing 的当前选项,随后开启连接;首次使用时按系统提示允许添加 VPN 配置。
-
验证请求
运行 Home 中的 Connectivity Test,再访问一个已知可用的 HTTPS 页面。结合连接记录确认请求是否经过所选策略;测试完成后恢复日常使用的路由设置。
若已启用 Settings → On Demand,应记录当前条件。按需连接可能重新触发连接,排查期间要区分“开关被条件触发”与“所选 Trojan 条目实际可用”。如需临时停用,应在测试后恢复原来的条件,而不是删掉全部配置。
四、连接成功但访问异常:区分 Global Routing 姿态
Home 中选中条目,并不等于所有请求都会使用它。Global Routing 决定请求怎样进入策略;当前处于 Direct 时,网页访问结果不能用于证明所选 Trojan 条目是否正常。下面只比较 Shadowrocket 自身的路由设置,不涉及服务来源选择。
Config
推荐按当前启用的配置规则决定请求去向。DOMAIN-SUFFIX 匹配域名后缀,IP-CIDR 匹配地址网段,GEOIP 按 IP 地理归属匹配,FINAL 承接此前未命中的请求;命中结果仍取决于规则顺序和目标策略。
适合:已核对规则的日常使用;不要假设未命中的请求一定直连。
Proxy
用于将进入客户端处理范围的请求交给代理策略,便于临时隔离规则影响。它不能修复 Password 或 TLS 配置错误,也不应被理解为对所有设备流量的绝对覆盖。
适合:短时确认所选 Trojan 条目能否处理实际请求。
Direct
让请求直接连接目标,不经所选代理条目转发。切到 Direct 后页面能打开,只能作为直连路径的对照结果。
适合:比较基础网络状态,不能用来验证 Trojan 参数。
Global Routing 中的 Scene 用于按场景应用相应设置;排查时还需核对当前场景实际选用了什么策略。不要只看到 Home 的节点选中标记,就忽略场景和规则的最终结果。
判断:临时测试与日常配置分开
如果 Proxy 下请求正常而 Config 下同一请求异常,先查看命中的规则及其策略;如果两种设置均失败,再回到 Address、Port、TLS 和 Password 的连接链路逐层排查。
五、常见填写问题:按现象定位
错误提示只能缩小范围,不能代替参数核对。下面描述的是可用于判断的现象,不是对某台设备的实测结论。每次修改后用相同目标重试,记录当前网络、所选条目、路由设置和具体提示,避免同时更改多个变量。
一直超时,是 Password 错了吗?
不一定。先在 Home → 所选条目 → 编辑中核对 Address 和 Port,再确认域名能够解析、当前网络能够到达该端口。超时可能发生在 TCP 连接或握手阶段,不能仅凭超时就重置密码。
提示证书名称不匹配,SNI 该填什么?
填写已有服务商明确提供的服务器名称,并确认没有带上 https:// 或 :443。如果 Address 是 IP 而原配置另有域名,保留该域名作为 SNI;仍有错误时确认服务端证书,不通过跳过校验掩盖问题。
Password 复制了,为什么还是认证失败?
重新从原始配置复制,检查大小写、尾部换行以及是否误用了账户登录密码。手动表单填写实际密码,不把链接中的百分号编码照抄进去;若认证信息已被服务商轮换,需要更新已有订阅或替换相应参数。
有延迟数值,为什么网页仍然打不开?
先确认 Global Routing 不是 Direct,再核对当前请求的规则策略。若只有域名请求失败,继续检查 DNS 解析结果;若所有请求都失败,则核对 TLS、认证和额外传输参数。延迟结果不能替代完整的应用层访问测试。
六、分享链接、订阅更新与参数安全
trojan:// 通常表示单条分享链接,常见结构包含认证信息、服务器地址、端口及查询参数。它不是普通网页地址,也不是一组会自动更新的订阅内容。通过 Shadowrocket 的扫码或剪贴板入口导入后,仍应打开条目核对 Type、Address、Port、Password 和 TLS 相关选项。
以 https://example.com/sub?token=xxxx 为例,这只是不可用的订阅格式示意。真实订阅地址可能携带访问凭据,应通过订阅入口保存,让客户端获取其中的条目,而不是把整段 URL 填入 Trojan 的 Address。订阅生成的条目在更新时可能被覆盖,长期修改应先确认配置的管理方式。
- 已有订阅更新后,检查服务端是否调整了端口、密码或 SNI;不要只看备注名称是否相同。
- 保留可恢复的原始配置。需要对照测试时,可另建手动条目,避免直接修改唯一可用的订阅条目。
- 排查求助时遮住 Password、订阅 token 和完整分享链接;只提供必要的字段类型及错误信息。
- 无法确认额外传输参数时,向已有服务商索取完整配置,不凭普通 Trojan 示例猜测 WebSocket 路径等设置。