2026-10-14 · 协议科普 · 约 8 分钟

Trojan 协议是什么:Shadowrocket 填写 Trojan 的 Password、SNI 与 Allow Insecure

说明 Trojan 借助 TLS 的工作方式,以及在 Add Server 里填写 Address、Port、Password、Peer/SNI 和 Allow Insecure 时的常见误区。

本文速览

填写 Trojan 时,先区分连接地址、认证密码与 TLS 服务器名称,再保持证书校验开启。本文适合已经持有自己服务商资料的用户:按字段核对 Add Server,理解 Address 与 Peer/SNI 为什么可能不同,并按连接阶段排查超时、证书错误和认证失败。

Trojan 与 TLS:先加密连接,再验证凭据

Shadowrocket(小火箭)里的 Trojan 是一种代理协议选项。常见的 Trojan 连接先与服务器建立 TLS 连接,再在加密通道内发送认证信息和代理请求。TLS 负责传输加密及服务器身份验证,Password 则用于 Trojan 服务端认证;这两个环节不能互相替代。

网站使用 HTTPS,不等于服务器就能接受 Trojan。已有资料必须明确给出 Trojan 类型、实际监听地址、端口和密码。仅凭一个可以在浏览器打开的域名,不能推导出这些配置。本文中的示例只用于解释字段,不是可连接的服务资料。

443
常见 TLS 端口示例,并非 Trojan 固定端口
1–65535
Port 的有效数值范围,填写服务商指定值
2 个环节
TLS 身份验证与 Trojan 密码认证分别核对

选择 Type → Trojan 后,还要核对已有资料是否要求特定传输设置。若资料包含 WebSocket 等额外参数,应按实际字段逐项对应;不要把一份带额外传输要求的资料当成仅有地址、端口和密码的基础配置。

Add Server 字段:Address 不等于 SNI

Address 决定连接到哪里,Port 决定连接该地址上的哪个服务。Peer/SNI 则与 TLS 中的服务器名称有关。在 Shadowrocket 中,相关输入项可能显示为 Peer;资料里常写作 SNI 或 server name,应以当前界面和服务商说明对应核对。

字段应填写的内容常见误区
Type选择 Trojan。其他协议的凭据不能直接当作 Trojan 参数。
Address已有资料中的服务器域名或 IP。填入整条分享链接,或附带 https:// 与路径。
Port服务端实际监听端口,例如资料明确指定的 443。看到 TLS 就自行改成 443。
Password服务商提供的 Trojan 认证密码。误填账户登录密码、UUID,或复制时带入空格。
Peer / SNI资料指定的 TLS 服务器名称,例如 tls.example.com。填入 URL、端口,或随意换成一个常见网站域名。
Allow Insecure通常保持关闭,以执行正常证书校验。把跳过校验当作修复证书错误的常规办法。

例如,资料允许 Address 使用 192.0.2.10,并明确要求 Peer 为 tls.example.com,两者不同并不必然是错误:前者指定连接目标,后者指定 TLS 名称。这里的 IP 是文档示例地址,不能用于实际连接;实际填写必须来自自己的完整配置。

手动添加 Trojan:按顺序核对五步

先保存当前可用配置及原始资料。若服务器来自已有订阅,建议先核对导入后的字段,不要直接覆盖原记录;后续订阅更新可能重新写入相关参数。需要排查时,可保留原记录,再手动建立一条用于核对的记录。

  1. 打开添加页

    进入 Home → 右上角「+」,打开 Add Server,再在 Type 中选择 Trojan。确认当前编辑的是服务器记录,而不是 Config 中的规则文件。

  2. 填写地址端口

    把已有资料里的主机名或 IP 填入 Address,把监听端口填入 Port。地址栏不附带协议前缀、路径或查询参数,端口单独填写。

  3. 核对认证密码

    在 Password 填入完整密码,保留大小写和符号。手动填写时使用原始密码;若从分享链接复制,注意其中的转义内容不能简单当作原始值。

  4. 核对 TLS 名称

    按资料填写 Peer/SNI,并保持 Allow Insecure 关闭。资料要求的传输方式及附加字段也一并核对;未明确给出的字段不要凭猜测补写。

  5. 保存并验证

    保存后回到 Home,点选这条服务器记录,确认选中标记,再打开连接开关。首次连接按系统提示允许添加 VPN 配置,然后执行 Connectivity Test。

Connectivity Test 是一次连通性检查,不是对所有网站、所有规则或持续稳定性的保证。测试失败时先记录现象,再核对参数;测试成功后仍需访问实际目标,并确认该请求是否真的使用了这条 Trojan 连接。

Allow Insecure:区分加密与身份校验

Allow Insecure 的关键影响是放宽证书验证要求,不是把连接切换成明文。TLS 通道即使建立成功,若缺少可靠的证书校验,也不能据此确认对端身份。密码正确同样不能弥补服务器身份校验被跳过的问题。

Allow Insecure 关闭

推荐

保留正常证书验证。出现证书错误时,核对 Peer/SNI、设备时间、证书有效期与服务端证书链,而不是直接忽略错误。

适合:日常连接,以及证书配置正确的服务

Allow Insecure 开启

放宽证书校验,会降低对服务器身份的确认能力。它不修复错误地址、错误端口或错误 Password,也不能作为长期连接正常的证据。

适合:理解风险且受控的临时证书问题定位,不作为日常配置

结论:修复名称与证书的对应关系

如果只有开启 Allow Insecure 才能连接,先恢复关闭状态,再把证书错误、预期 Peer/SNI 和发生时间交给自己的服务商核对;不要仅凭暂时能打开网页就结束排查。

证书报错也可能来自设备日期和时间不正确。先确认系统时间,再核对证书覆盖的域名。Address 填 IP 时尤其要确认资料是否另有 Peer/SNI;证书签给某个域名,并不自动意味着它也能通过该 IP 的身份校验。

连接失败:按网络、TLS、认证与规则分层排查

同一个“无法打开网页”现象可能发生在不同阶段。先确认本地网络能够正常联网,再观察连接日志中的错误类型。以下现象用于区分排查方向,不代表单凭一条提示就能确定唯一原因。

要临时排除规则影响,可在 Home → Global Routing 选择 Proxy,再验证同一目标;完成后恢复原有模式。Proxy 用于代理路由测试,Direct 直接连接,Config 按当前配置规则处理。Scene 则应结合实际配置的场景判断,不能把它当作固定等同于 Proxy 的选项。

若 Proxy 下正常、Config 下异常,优先检查当前规则中的 DOMAIN-SUFFIX、IP-CIDR、GEOIP 和 FINAL 的顺序及目标策略。修改规则不是修复 Trojan 密码的方法;两类问题应分开验证。

Password、SNI 与导入配置的常见问题

Password 要填服务商网站的登录密码吗?

只填写这条 Trojan 服务器资料中的认证密码。网站账户密码与代理认证密码不是同一概念。回到自己的资料页核对字段来源,不要用其他协议的 UUID 或密钥替换。

Address 已经是域名,Peer 还要填吗?

先看原始资料是否明确指定 SNI。指定了就按原值填写;未指定时不要随意编造。若出现证书名称错误,向自己的服务商确认期望的 TLS 名称,而不是尝试无关域名。

订阅导入后,为什么改好的 SNI 又变回去了?

更新订阅可能用订阅内容刷新服务器参数。先保留一份手动核对记录,再比较更新前后的 Peer/SNI 与传输字段;持续不一致时,应核对订阅原始配置,而不是反复覆盖同一字段。

连接开关已打开,就代表 Trojan 参数正确了吗?

不代表。系统连接状态表示本地 VPN 连接已启动,不等同于远端认证和目标访问均成功。在 Home 确认选中服务器,执行 Connectivity Test,再结合 Global Routing 和实际请求验证。

分享日志或配置截图前,隐藏 Password、完整订阅链接及其 token 等敏感内容。说明问题时保留错误原文、发生阶段和已核对的字段即可,不需要公开完整凭据。最终应以自己的服务资料、应用内实际字段和可复现的测试结果作判断。

App Store 正版核验