Shadowrocket 添加 Trojan 节点:协议原理与 Add Server 参数填写要点

Trojan 借 TLS 承载流量的原理简介,并逐项说明在 Add Server 中填写地址、端口、密码、SNI 与 Allow Insecure 时容易出错的地方。

本文速览

本文适用于在 iPhone、iPad 上使用 Shadowrocket(小火箭),且已有自己的服务商与 Trojan 配置的用户。添加时应按原始资料填写 Address、Port、Password 与 SNI,保持证书验证开启;连接失败时依次检查地址解析、端口、TLS、认证与规则分流,不要用开启 Allow Insecure 代替排错。其他平台可参考参数含义,界面位置以实际客户端为准。

1. Trojan 与 TLS:连接经过哪些环节

Trojan 是代理协议,TLS 为客户端与服务器之间的传输提供加密及服务器身份验证。常见的 Trojan 连接先建立 TCP 连接,再完成 TLS 握手,随后在加密通道内发送认证信息与目标地址。TLS 握手成功只说明安全通道已建立,不等于密码正确,也不等于目标网站一定能够访问。

服务器解析 TCP 连接 TLS 握手 Trojan 认证 目标转发

这里的 TLS 不表示代理服务器会替用户解密所有 HTTPS 网页。访问 HTTPS 网站时,浏览器与目标网站通常还会建立自身的 TLS 连接;Trojan 的 TLS 是设备到代理服务器这一段的外层通道。两层连接分别涉及不同的证书与故障位置,不能把服务器证书错误和某个网站的证书错误混为一谈。

常见配置使用 TCP 443 端口,但 443 不是协议强制值。服务器若监听其他端口,客户端必须照填。Trojan 也不等于 QUIC;不要因为配置提到 UDP 转发,就自行把传输方式改成 Hysteria2,或假定所有游戏、语音应用都会获得相同表现。

443
常见 TLS 端口,实际值由服务器配置决定
5 项
重点核对 Address、Port、Password、SNI、Allow Insecure
2 层
HTTPS 访问中区分代理 TLS 与网站 TLS

2. Add Server:填写前准备与添加步骤

先准备用户已有配置中的服务器地址、监听端口、密码和 TLS 名称要求。若资料只给出订阅,应优先按已有订阅导入,避免从名称或截图猜参数;手动记录与订阅记录可能在更新时具有不同维护方式,修改前先确认自己正在编辑哪一条。

  1. 进入添加页面。在 Home 点击右上角的添加按钮,进入 Add Server,将 Type 设为 Trojan。不要把 Trojan 密码填入其他协议的 UUID 或身份字段。
  2. 填写 Address。只填主机名或 IP 地址,例如 example.com。不要加入 https://、网页路径或订阅的查询参数。本文域名仅用于解释格式,不是可用服务。
  3. 填写 Port。输入原始资料里的数字,例如服务器明确使用 443 时填 443。不要因为浏览器能访问该域名,就推定代理一定监听 443。
  4. 填写 Password。保持字符、大小写与符号完全一致,检查复制时是否带入空格或换行。Password 不是订阅地址中的整段查询字符串,也不能用登录服务商网站的密码替代。
  5. 核对 TLS 参数。按资料设置 SNI;若界面显示 TLS 开关,Trojan 的常规 TLS 配置应保持启用。Allow Insecure 保持关闭,不自行增加未提供的传输扩展参数。
  6. 保存并选中。保存后返回 Home,选中刚添加的记录,再进行连接测试。初次建立系统 VPN 配置时,按系统提示确认权限;系统权限与服务器认证是两个独立步骤。

3. Address、SNI 与证书名称如何对应

Address 决定客户端实际连接的网络地址;SNI 是 TLS 握手中发送的服务器名称,常用于让同一地址上的服务选择相应证书。两者经常相同,但并非必须相同。填写 SNI 也不是把流量改发到另一个网络地址,不能用它修复错误的 Address。

连接地址参数

Type
Trojan
Address
example.com,仅作格式示意
Port
443,仅在服务器确实监听时使用
Password
逐字使用用户已有配置中的密码

地址负责定位服务器,端口负责定位其监听服务。

TLS 身份参数

SNI
使用原始资料要求的域名
证书名称
应覆盖客户端验证的服务器名称
Allow Insecure
关闭,保留证书验证
设备时间
检查日期、时间与时区是否正确

SNI 影响握手与名称选择,不会替代证书信任验证。

当 Address 使用 IP 地址而证书签发给域名时,通常需要按配置提供正确的 SNI,不能把这个 IP 再机械地复制进 SNI。证书还必须处于有效期内,并能建立可信的证书链;域名拼写正确不代表这几项检查都会通过。若资料没有交代名称要求,应向原配置提供方确认,而不是轮换填写无关域名。

Allow Insecure 用于放宽证书验证,并不是“兼容更多网络”的通用选项。开启后可能让错误证书不再阻断连接,却也削弱服务器身份验证。遇到证书问题,应检查 SNI、设备时间、证书有效期和服务端证书链;对于需要专门信任配置的环境,应遵循该环境的证书部署说明,不以长期关闭验证作为处理结果。

4. 保存后测试:区分协议故障与规则未命中

添加成功只表示记录已保存。返回 Home 后先确认选中的是刚才的 Trojan 记录,再运行 Connectivity Test。测试结果受测试目标、网络路径与测试方式影响;有延迟结果也不代表所有网站、UDP 应用或规则策略都已验证。

  1. 确认连接状态。打开 Home 的连接开关,观察是否立即断开。若应用尚未建立系统 VPN 连接,先解决权限或本地配置问题,不急于修改远端端口。
  2. 短时隔离分流变量。在允许的网络使用范围内,将 Global Routing 临时切到 Proxy,用已选记录访问一个明确的测试目标。Proxy 用于排除大部分规则选择影响,不会修复 TLS 或密码错误。
  3. 恢复 Config。确认该记录可用后,把 Global Routing 切回 Config,检查 Config 中实际启用的配置。Direct 不适合作为验证 Trojan 转发的姿态,因为请求可能根本没有使用代理。
  4. 核对自动连接因素。排错期间检查 Settings → On Demand,避免自动连接条件改变当前测试状态。完成后恢复原有安排;On Demand 管理连接触发,不负责修正 Password 或 SNI。

下面是用于说明匹配顺序的真实规则语法,不包含任何可用服务器。它将 example.com 及子域名交给 PROXY,将文档保留地址段直连,其他请求也交给 PROXY。只把规则合并到已有配置的 [Rule] 段,不要用这个片段覆盖整个配置文件。

[Rule]
DOMAIN-SUFFIX,example.com,PROXY
IP-CIDR,192.0.2.0/24,DIRECT,no-resolve
FINAL,PROXY

规则从上到下检查,首条命中后不再检查后续规则,FINAL 负责兜底。这里的 PROXY 是策略标识,不是服务器地址,也不是输入 Trojan 密码的位置。确认当前策略最终选到了待测记录;如果 Proxy 能访问而 Config 不能,优先检查规则命中、策略选择与 DNS,不要立即重填同一组服务器参数。

5. 按错误阶段排查超时与认证失败

应根据出现问题的阶段缩小范围。客户端提示可能是概括性错误,不能仅凭“超时”二字认定密码错误。每次只改一个变量,记录修改前后的现象;在 Wi-Fi 与蜂窝网络之间切换测试时,也要保留同一记录和同一目标,避免同时改变过多条件。

可观察现象优先检查下一步操作
Address 无法解析域名拼写、当前网络 DNS检查是否误填 URL,确认主机名与原资料一致。
连接超时或被拒绝Port、网络可达性、服务器监听核对端口;在另一网络用同一记录复测,并确认服务端状态。
TLS 或证书错误SNI、设备时间、证书链保持 Allow Insecure 关闭,核对名称与证书部署。
握手后关闭或认证失败Password、Type、服务端认证配置重新复制密码并检查多余空白,确认选择 Trojan。
Proxy 可用但 Config 不可用规则、策略与 DNS确认启用的 Config 及请求实际命中的策略。
仅部分应用失败目标服务、UDP 转发、应用自己的网络行为分别测试网页与该应用,不用一次网页成功推断所有流量正常。

服务器地址能在浏览器里显示一个 HTTPS 页面,也不能证明 Trojan 的密码与转发配置正确。浏览器访问和 Trojan 认证是不同请求;同样,某个测试目标不可达也不必然说明整个服务器不可用。需要结合错误阶段与多个受控测试结果判断,本文没有提供速度或可用性实测承诺。

6. 常见填写问题

地址里带着 https://,要原样粘贴吗?

不要把网页或订阅 URL 整段放入 Address。先从原始配置确认真正的服务器主机名,Address 只填主机名或 IP,Port 单独填写。订阅地址应按订阅导入流程处理,不能靠删掉 URL 前缀把它变成 Trojan 服务器。

SNI 留空能连接,还需要填吗?

部分配置会基于 Address 使用默认名称,但不能据此推断所有服务器都允许留空。若原始资料明确给出 SNI,就填写该值;尤其是 Address 使用 IP 或名称与证书域名不同的情况,应保留资料要求的名称。

打开 Allow Insecure 就好了,可以一直开着吗?

不应把它作为长期修复。这个变化提示问题可能位于证书验证环节,应重新关闭该选项,检查 SNI、时间与证书链。把具体证书错误交给原配置提供方处理,不要用跳过验证掩盖名称错误。

订阅更新后又连不上,要重新添加吗?

先比较更新前后的 Address、Port、SNI 与所选记录,确认 Home 当前选中的不是同名旧记录。若配置确实发生变化,以用户已有的最新资料为准。手动修改订阅生成记录前先保留原值,避免下次更新覆盖后无法判断原因。

Shadowrocket 全平台下载