Trojan 配置应先核对 Address、Port、Password,再确认 TLS 的 Server Name(SNI)与证书验证。本文适合已经有自己的服务商与连接参数、准备在 iPhone 或 iPad 上填写 Shadowrocket 表单的用户;按顺序核对后,可以区分连接超时、证书错误、认证失败与规则未命中,避免把所有故障都归因于密码。
Trojan 的连接顺序:先 TLS,再认证
标准 Trojan 通过 TLS 保护客户端与服务器之间的通信。Shadowrocket 先向指定地址和端口建立连接,再完成 TLS 握手与服务器身份验证,随后在加密通道内发送 Trojan 认证信息和目标请求。因此,端口可达不代表密码正确,TLS 成功也不代表服务端已经接受认证。
地址用于找到服务器,SNI 用于在 TLS 握手中表达要访问的服务器名称;正常的身份验证还需要按预期名称核验证书。这几个值可能相关,却不能互相替代。本文中的域名与端口仅用于说明字段,不是可用的连接参数;实际值从你的服务商处获取。
结论:证书错误先查名称
遇到明确的证书验证错误时,先核对 SNI、证书覆盖的域名及设备时间,不要先换密码;密码不会修复 TLS 身份验证失败。
Add Server 表单逐项填写
在 Home 右上角点击“+”进入 Add Server,将 Type 设为 Trojan,再逐项填写。部分 TLS 选项可能位于二级设置中,字段显示以当前应用界面为准。不要为了让每个输入框都有内容而补写未提供的参数。
| 字段 | 填写依据 | 常见失误 |
|---|---|---|
| Type | 选择 Trojan,与服务端协议一致。 | 把其他协议的地址和凭据填入 Trojan 表单。 |
| Address | 填写服务器域名或 IP,例如说明用域名 edge.example.com。 |
粘贴带有 https://、路径或查询参数的整段网址。 |
| Port | 按提供值填写,例如说明用端口 443。 |
把非 443 端口擅自改成 443,或把端口拼进 Address。 |
| Password | 填写该 Trojan 服务的认证密码,保留大小写与特殊字符。 | 使用服务商网站登录密码,或复制时带入空格、换行。 |
| TLS | 标准 Trojan 依赖 TLS;按提供的配置核对相关选项。 | 把 TLS 当作可随意关闭的提速开关。 |
| SNI / Server Name | 填写服务商指定的 TLS 服务器名称,只填主机名。 | 填写完整网址、目标网站域名,或任意与证书无关的名称。 |
| Allow Insecure | 正常使用保持关闭,保留服务器证书验证。 | 遇到任何连接失败就开启,掩盖证书问题。 |
Trojan 密码不等于其他协议中的 UUID,也不等于订阅链接里的 token。如果通过链接导入,交给应用解析完整链接即可;手工填写时应使用解析后的原始密码,不要把链接中的百分号编码原样当作密码。无法确定时,请向你的服务商核对字段,不要反复猜测。
从新增到测试:一次只改一个变量
首次测试建议先使用一条已知参数完整的配置。保存前逐项核对,保存后再判断流量是否实际经过所选服务器。Home 中的连接开关开启,只能说明系统连接状态,不能独立证明某个网站请求通过了 Trojan 服务器。
-
选择协议
Home → 右上角“+”→ Add Server → Type → Trojan。不要仅凭服务器名称判断协议,以参数说明为准。
-
填写凭据
返回表单,填写 Address、Port、Password。地址不带协议前缀,端口单独填写,密码注意首尾空格。
-
核对 TLS
检查 TLS 相关设置,按提供值填写 SNI / Server Name,并保持 Allow Insecure 关闭。没有提供额外传输参数时,不自行增加。
-
保存选择
保存后回到 Home,选中刚添加的服务器。若此前已经连接,修改参数后重新建立连接,避免用旧连接判断新配置。
-
隔离规则
记录 Home → Global Routing 当前设置,短时切换为 Proxy,使用相同目标发起新请求。测试结束后恢复原来的路由设置。
SNI、证书与 Allow Insecure 的边界
Address 与 SNI 不一定相同。例如 Address 是服务器 IP,而 SNI 是证书覆盖的域名,这种配置可以成立;前提是服务器确实按该名称提供正确证书,客户端也能完成对应的身份验证。反过来,只因某个域名可以打开网页,就把它填入 SNI,并不能让 Trojan 连接成立。
证书验证通常涉及受信任的签发链、有效期和名称匹配。设备日期明显错误也可能引发验证失败。SNI 不会自动修复过期证书,也不保证能解决网络连通性问题;同样,随意更换 SNI 可能使服务器返回另一张证书,甚至拒绝握手。
Allow Insecure 关闭
推荐保留服务器证书验证。发生错误时,先核对名称、设备时间和证书状态,由服务商修正证书或提供正确参数。
适合:日常连接与正式保存的配置
Allow Insecure 开启
放宽证书验证,不等于修复证书。即使通信仍使用 TLS,也不能据此确认对端身份;不应作为长期解决办法。
适合:理解风险后,在受控环境中短时定位证书验证问题
结论:保留可验证的配置
如果只有开启 Allow Insecure 才能连接,记录证书相关错误并向你的服务商核对;不要把这一状态直接当作配置完成。
ALPN、传输方式及其他高级选项也必须与服务端一致。不要把网上另一条配置中的 h2、http/1.1 或 WebSocket 参数直接搬过来。Trojan 的认证与 TLS、承载传输属于不同层,增加一个选项并不意味着兼容性更好。
常见故障:根据现象选择下一步
以下是诊断方向,不是某个错误与某个原因的一一对应关系。保留完整错误文本和测试条件,比只描述“连不上”更有用。向服务商反馈时说明使用 Wi-Fi 还是蜂窝网络、哪个阶段失败,但不要公开密码和完整订阅链接。
密码照抄了,为什么仍然连接超时?
先回到 Home 编辑该服务器,核对 Address 与 Port,再分别在 Wi-Fi 和蜂窝网络下重复同一请求。连接超时可能发生在认证之前;如果更换本地网络后结果不同,应继续检查网络可达性,而不是只修改 Password。
出现证书错误,SNI 应该填哪个域名?
填写服务商明确提供的 TLS 服务器名称,不是正在访问的网站域名。检查设备日期与时间,再核对名称拼写;名称正确但证书仍不通过时,请服务商检查证书有效期和证书链。
有延迟数字,为什么实际网页还是打不开?
延迟测试结果不能替代完整业务请求。确认 Home 中选中了该服务器,再到 Global Routing 临时选择 Proxy 发起新请求;若仍失败,继续检查 TLS、认证与目标连通性,不要仅凭延迟值判定参数无误。
Proxy 能访问,切回 Config 就失败怎么办?
到 Config 核对当前选中的配置及相关规则,检查请求是否被分配到预期策略。对照 DOMAIN-SUFFIX、IP-CIDR、GEOIP 与 FINAL 的匹配条件和顺序;同时排查 DNS,不要立刻认定是 Trojan 密码错误。
订阅更新后,手工修改的 SNI 又变了?
检查更新后的服务器字段是否被订阅内容重新生成。保留一条手动配置做对照,向服务商确认订阅下发的 SNI 与端口。订阅链接从你的服务商处获取,修改订阅条目前先记录原值,避免更新与手工修改互相覆盖。
保存配置前的复核清单
完成测试后,应把“参数正确”和“路由正确”分别确认。Global Routing 中 Proxy、Direct、Config、Scene 对流量的处理依据不同;本次短时使用 Proxy 是为了减少规则变量,并非要求日常一直保留该模式。恢复自己的使用设置后,再重复一次相同请求,确认结果仍符合预期。
- 连接参数:Type 为 Trojan,Address、Port、Password 与服务商提供值一致;没有把订阅地址当作服务器地址。
- 身份验证:SNI 使用指定名称,Allow Insecure 关闭,设备时间正确,没有通过忽略证书错误来完成配置。
- 路由条件:确认当前 Global Routing 设置;使用 Config 时,核对所选配置、规则顺序和策略目标。
- 更新行为:分清手动新增条目与 Subscribe 导入条目,订阅更新后重新检查发生变化的字段。
- 信息保护:反馈问题时隐藏 Password、认证 token 和完整订阅链接,保留错误类型及必要的非敏感测试条件。
Shadowrocket 是 Apple 平台的闭源商业应用,以 iPhone、iPad 使用为主,唯一获取入口是 App Store;系统要求与兼容性以 App Store 页面标注为准。客户端一次性买断不等于线路套餐,本文以用户已有自己的服务商和参数为前提,不提供、不销售、不推荐节点或订阅。