已有自己的服务商与 Trojan 参数时,先按原始资料核对 Address、Port、Password,再确认 SNI 与证书名称一致;不要用关闭证书校验来补救填错的字段。本文说明手动添加路径、TLS 连接过程、订阅更新的影响,以及“已连接但打不开”的分层排查方法。示例域名、地址和密码均为演示值,不能用于连接。
Trojan 参数先分成三组:连接、认证与 TLS
在 Shadowrocket(小火箭)里,选择 Trojan 并不等于只需填写一个密码。客户端要先找到服务器,再建立 TLS 连接,并向服务端提交 Trojan 认证信息。地址和端口决定连接到哪里,密码用于 Trojan 认证,SNI 与证书校验关系到 TLS 阶段的服务器身份确认。三组参数分别负责不同环节,不能互相替代。
本文以用户已经持有有效参数为前提。若收到的是完整订阅,优先保留导入得到的配置;只有需要核对字段或明确要求手动添加时,再进入 Add Server。不要把订阅地址当作服务器 Address,也不要把订阅链接中的 token 当作 Trojan Password。
结论:按失败环节改参数
出现证书名称错误时先核对 SNI 与证书,不先改 Password;连接超时时先核对 Address、Port 与网络可达性,不通过反复更换密码排查。
Add Server 手动添加:先保存,再测试
手动添加的入口是 Home 右上角“+”,进入 Add Server 后在 Type 中选择 Trojan。字段显示会随 Type 与传输设置变化;本文只解释普通 Trojan 连接需要核对的项目。若原始资料另外指定了传输方式或附加参数,应一并按原值填写,不能用本文的基础示例覆盖。
-
确认类型
进入 Home → “+” → Add Server → Type,选择 Trojan。不要因为参数里同样有域名和密码,就选择其他 Type。
-
填写连接
回到 Add Server,分别填写 Address 与 Port。Address 只放域名或 IP 地址;Port 单独填写服务端指定的整数,不附带协议前缀。
-
填写认证
把已有参数中的密码完整填入 Password,保留大小写与符号。检查粘贴内容的开头、结尾是否多出空格或换行。
-
核对身份
核对 TLS 相关设置中的 SNI 与证书校验选项。若资料明确给出 SNI,按原值填写;Allow Insecure 保持关闭,保留正常证书校验。
-
保存测试
保存后回到 Home,选中这条记录再开启连接。首次连接按系统提示允许 VPN 配置;测试前记录 Home → Global Routing 的当前选择,避免将分流结果误认为节点连接结果。
测试时先只保留一项改动。例如修正 Port 后重新连接,再观察现象;不要同时更改地址、密码和 SNI。一次改动多项,即使恢复连接,也无法确定真正的错误来源,后续订阅更新后容易再次遇到相同问题。
Address、Port、Password 与 SNI 应该分别填什么
下面是一组不能用于连接的演示参数。192.0.2.10 是文档示例地址,example.com 是示例域名。表格用它们说明字段之间的关系,不表示存在对应服务。
| 字段 | 演示值 | 核对重点 |
|---|---|---|
| Type | Trojan |
与原始参数指定的协议一致。 |
| Address | 192.0.2.10 |
可以是 IP 或域名,不包含 https://、路径和查询参数。 |
| Port | 443 |
必须与服务端实际监听端口一致;不是看到 TLS 就统一改成 443。 |
| Password | Demo-Only-Not-A-Real-Password |
填写原始密码,不自行计算散列值,也不使用订阅 token 替代。 |
| SNI | tls.example.com |
使用服务端指定的 TLS 名称,不包含协议、端口或路径。 |
| Allow Insecure | 关闭 | 保留证书校验,证书异常时修正参数或联系已有服务的维护方。 |
Address 与 SNI 不一定相同
Address 决定实际建立网络连接的目标;SNI 是 TLS 握手中用于告知服务器所请求名称的参数。服务器可能按该名称选择证书或处理连接。使用 IP 作为 Address 时,SNI 仍可能需要填写域名,例如表中的 tls.example.com。这并不矛盾,也不意味着要将 Address 强行改成该域名。
若 Address 本身就是证书对应的域名,且原始资料没有另给 SNI,可以先保留导入结果或默认处理;出现证书名称错误时,再向已有服务的维护方核对预期名称。不要随意填入一个可以访问的网站域名:SNI 并不是任意备注,填错可能改变服务端返回的证书或使握手失败。
Password 不是分享链接的整段内容
- 手动填写时使用解码后的真实字段值,不把整条
trojan://分享链接粘贴进 Password。 - 从分享链接读取参数时要注意 URI 编码。密码中的特殊字符可能以百分号编码表示;直接复制编码后的片段不一定等于原始密码。
- 已有完整分享链接时,使用应用支持的导入入口保留参数,之后再打开记录核对,通常比逐段手工拆解更不容易漏项。
TLS 证书校验:不要把“能连接”当作身份正确
TLS 的作用不仅是加密传输,还包括验证服务器身份。正常校验需要考虑证书信任链、有效期以及名称是否匹配。Password 正确不能补偿证书错误;同样,TLS 握手通过也不等于 Trojan 密码已经被服务端接受。
遇到证书报错时,应先核对 SNI,再检查 iPhone 或 iPad 的日期与时间是否正确,并确认服务端证书没有过期。证书链缺失或名称配置错误,需要由服务维护方修正。不要为了消除提示,把设备时间调整到错误日期。
保留正常证书校验
推荐Allow Insecure 保持关闭。证书错误会阻止正常建立连接,提示需要检查名称、有效期或信任链,而不是掩盖问题。
适合:日常连接,以及确认参数修正后是否真正恢复正常。
跳过证书校验
开启 Allow Insecure 会削弱服务器身份验证。即使连接状态改变,也不能据此证明证书问题已修复,更不能证明连接到了预期服务器。
适合:理解故障选项的作用与风险,不作为本文的修复步骤。
结论:先修复名称,再重新连接
若修正 SNI 后恢复连接,仍应保持证书校验开启,再进行实际访问测试;不要把上一次排查时改动过的校验选项遗留在放宽状态。
已连接但打不开:区分节点、路由与按需连接
系统显示 VPN 已连接,表示隧道状态已经建立,并不保证每一个目标都能通过所选 Trojan 服务器访问。Home 中选中了某条记录,也不代表当前请求一定使用它。应把节点参数是否正确,与请求最终采用哪种策略分开检查。
- Home → Global Routing → Proxy:用于临时隔离分流规则的影响,观察纳入代理处理的测试请求能否通过当前所选服务器完成。测试结束后恢复原来的选择。
- Home → Global Routing → Direct:请求按直连方式处理,不能用此姿态下的网页成功打开,证明 Trojan 参数正确。
- Home → Global Routing → Config:按当前配置处理流量。需要到 Config 核对启用的文件及规则,不能假定所有流量都走所选服务器。
- Home → Global Routing → Scene:还需核对当前 Scene 的具体设置,不把其结果直接等同于 Proxy 或 Config。
- Settings → On Demand:检查按需连接设置是否影响连接的自动触发。On Demand 处理连接触发,不会自动修正 Trojan 密码、SNI 或证书。
在 Config 下,DOMAIN-SUFFIX 按域名后缀匹配,GEOIP 按 IP 地理归属匹配,IP-CIDR 按 IP 网段匹配,FINAL 处理前面未匹配的流量。规则顺序和最终策略都会影响访问路径。以下仅用于说明规则语法,不是完整配置,也不要求覆盖已有文件。
[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT
GEOIP,CN,DIRECT
FINAL,PROXY
例如,命中 DIRECT 的请求不会验证当前 Trojan 服务器是否可用。相反,临时使用 Proxy 后请求成功,而恢复 Config 后失败,应优先检查规则、策略和域名解析相关设置,而不是立即更换 Password。测试记录应写清目标、路由选择和错误提示;本文不提供虚构的延迟或成功率数据。
常见填错点与订阅更新后的复查
订阅是配置来源,节点记录是导入后的具体项目。更新订阅可能刷新地址、端口、认证或 TLS 参数;手动改动的字段可能被后续更新覆盖。排查前可记录字段名称和错误提示,但不要把含密码或 token 的完整内容发送到公开讨论区。
Address 里面要填 https:// 吗?
不要。进入 Home,打开对应记录的编辑页面,在 Address 中只保留域名或 IP;将端口填入 Port。网页地址、订阅地址和服务器地址是不同用途的内容,不能混填。
资料里端口不是 443,要改成 443 吗?
不用。Port 必须匹配服务端实际监听值。若资料给的是 8443,就填写 8443;不能因为 Trojan 使用 TLS,便推断服务端一定监听 443。
提示证书名称不匹配,是密码错了吗?
先核对记录中的 SNI 是否与服务端要求一致,确认没有粘入协议前缀或端口,再检查设备时间。证书身份验证与 Trojan 密码认证是不同环节,反复修改 Password 不能修复证书名称。
订阅更新之后,手改的 SNI 又变了怎么办?
在 Home 更新对应订阅后,重新打开该记录核对 SNI、Address 与 Port。若更新持续返回错误字段,应向已有服务的维护方反馈具体字段;需要保留测试参数时,建立单独的手动记录,并使用可区分的备注。
订阅能更新,为什么节点还是连接失败?
订阅更新只说明取得并解析了配置,不代表其中服务器已经通过连接测试。回到 Home 选中对应记录,核对 Global Routing 后重新测试,再按超时、证书或认证问题分别检查。
交付排查信息前,保留这些内容
- 记录是手动添加还是来自订阅,以及问题是否紧随订阅更新出现。
- 记录当前 Type、Port、Global Routing 选择和完整错误提示;敏感字段只说明是否与原始资料一致。
- 记录已执行的单项改动及结果,例如“修正 SNI 后,证书名称错误消失,但仍无法完成目标访问”。
- 隐藏 Password、订阅 token 和完整分享链接。若敏感信息已经公开,应通过已有服务的账户管理渠道更换相应凭据。
完成排查后,恢复预期的 Global Routing 与 On Demand 设置,确认正常证书校验仍然开启,再检查日常使用的目标。这样才能把临时诊断状态与最终配置分开,避免一次测试成功后留下不适合日常使用的设置。