本文面向已经持有自己服务商提供的 Trojan 连接参数、准备在 Shadowrocket(小火箭)中手动填写的用户。按 Address、Port、Password、SNI 和 Allow Insecure 逐项核对,再用连接结果区分字段错误、TLS 验证问题与路由设置问题;示例地址只用于说明格式,不能用于连接。
Trojan 连接如何经过 TLS
Trojan 使用 TLS 建立加密连接,客户端先访问指定的服务器地址与端口,再与服务器完成 TLS 握手,随后按 Trojan 协议提交认证信息。因此,地址能访问、证书能验证、密码被服务器接受,是不同的检查环节。只看到 Shadowrocket 的连接开关处于开启状态,并不能证明这三个环节都已成功。
如果用户已有自己的服务商与连接资料,应以对方交付的字段为准逐字填写。Trojan 是协议类型,不代表所有服务器都使用同一域名、端口或 SNI。尤其不要把用于展示的名称、订阅链接和真正的服务器 Address 混作同一个字段。
例如,资料写明服务器为 server.example.com、端口为 443,客户端首先要能访问这一地址的 443 端口。这里的域名是格式示例,不指向可用服务;实际端口即使不是 443,也不能擅自改成 443。端口写错通常会在认证前就阻断连接,而密码写错则可能发生在 TLS 握手之后。
Add Server 字段逐项填写
在 Home 添加服务器时,将 Type 设为 Trojan,再对照已有资料填写字段。不同界面状态下可见选项可能有所差异;如果资料还包含额外的传输参数,应先核对其是否属于当前 Trojan 配置,不要将其他协议的参数直接套入。
| 字段 | 填写依据 | 容易混淆的地方 |
|---|---|---|
| Address | 资料中的服务器域名或 IP 地址,如 server.example.com。 | 不要填订阅页面地址,也不要在此处附加 https:// 或端口。 |
| Port | 服务器实际监听的端口,如资料明确给出的 443。 | 不要仅因为使用 TLS 就推定端口一定是 443。 |
| Password | 与该 Trojan 服务器对应的认证密码。 | 注意大小写、首尾空格,以及复制时混入的换行。 |
| SNI | 资料指定的 TLS 服务器名称;未指定时先核对 Address 是否为证书对应的域名。 | SNI 是握手时使用的名称,不是任意填写的备注。 |
| Allow Insecure | 控制是否放宽 TLS 证书验证;正常核验优先保持关闭。 | 打开它不会修正错误的 Address、Port 或 Password。 |
Address 填域名与填 IP 的区别,在 TLS 阶段尤其明显:证书通常针对域名签发。若服务商要求通过 IP 连接,同时另给一个 SNI,应分别把 IP 放入 Address、把指定域名放入 SNI。不能仅凭域名看起来相似就自行替换;应对照服务资料确认服务器实际接受的名称。
从 Home 添加并验证 Trojan
手动录入适合资料已经逐项列明参数的情况。若用户已有自己的订阅链接,也可以按订阅方式导入,但订阅生成的服务器仍应以原始资料核对;不要把订阅 URL 当成 Trojan 的 Address。下面的操作先完成手动录入,再检查连接是否真正生效。
新建服务器
打开 Home,点右上角「+」进入 Add Server,将 Type 选为 Trojan。先确认协议类型,再填写其余字段,避免把相同名称的服务器误建为其他类型。
填写地址端口
把已有资料中的主机名或 IP 填入 Address,把对应数字填入 Port。例如资料写
server.example.com:443时,冒号两侧分别进入两个字段。核对认证信息
将该服务器专用的值填入 Password;如资料明确给出 SNI,则按原文填写。保持 Allow Insecure 关闭,保存后回到 Home 选中刚添加的服务器。
检查连接结果
在 Home 开启连接并执行 Connectivity Test。若失败,先核对 Address、Port 与 Password,再检查 SNI 和证书信息;不要仅凭开关状态判断服务器可用。
检查路由姿态
确认 Home 中的 Global Routing:排查单个服务器时可暂用 Proxy 判断代理连接,日常按配置规则使用时再切回 Config。Direct 不会把请求交给选中的代理服务器。
保存前可把每个字段与原始资料并排比对一次,重点检查全角标点、复制后的空格和域名末尾多余的斜杠。若是从已有订阅导入的同一服务器,不必为了排查而反复新建副本;先比较订阅条目与手动条目的 Address、Port 和 TLS 相关字段,能更快发现差别。
SNI 与 Allow Insecure:证书验证怎么判断
SNI 是 TLS 握手期间发送的服务器名称,服务器可据此选择对应的证书。客户端还需要验证收到的证书是否可信、是否与预期名称相符。因此,连接到正确的 IP 并不自动意味着证书验证会通过;SNI 错误、证书过期或服务器证书配置异常,都可能表现为 TLS 相关失败。
Allow Insecure 涉及证书验证的严格程度,不是通用的连接修复按钮。若开启后才能连接,说明值得继续核查证书与名称是否匹配,不能据此认定原设置已经正确。优先向现有服务商确认 SNI 和证书配置,再决定如何处理;不要为了绕过报错长期保留未经核实的设置。
Allow Insecure 关闭
推荐按正常流程验证 TLS 证书及对应名称。遇到验证失败时,回查 Address、SNI、设备时间与服务器证书配置。
适合:日常连接与首次核验参数
Allow Insecure 开启
放宽证书验证要求,可能掩盖名称不匹配或证书异常;它既不改变服务器地址,也不替代 Trojan 密码。
适合:在已知风险且有明确排查目的时短暂对照现象
判断顺序:先核对名称,再考虑开关
出现 TLS 验证错误时,先确认 Address 与服务资料一致、SNI 是否为指定域名,并检查设备时间;若仍失败,应核对服务器证书,而不是先改动 Allow Insecure。
还要区分 SNI 与 Password 的作用:前者参与 TLS 连接及证书名称检查,后者用于 Trojan 认证。调整 SNI 不能补救密码错误,重新输入密码也不能修复过期证书。把失败归到对应环节,比同时改动多个字段更容易定位原因。
连接失败时按现象排查
排查时每次只改一个字段,并记录修改前后的 Connectivity Test 结果。先确认设备本身能访问网络,再核对该服务器对应的资料是否仍有效。如果服务器由用户已有订阅管理,订阅更新后参数可能变化;应对照更新后的条目,不要让旧的手动条目与新资料混用。
填好后立即提示连接超时?
先查 Address 是否写成订阅 URL、Port 是否与资料一致,再确认当前网络能访问该服务器。超时发生在连接阶段时,反复修改 Password 通常不能解决地址或端口不可达的问题。
提示证书或 TLS 错误?
检查设备时间、SNI 拼写和 Address 对应的域名。若通过 IP 连接,核对资料是否另行指定 SNI;保持 Allow Insecure 关闭,向已有服务商确认服务器证书状态。
TLS 能建立,但仍无法使用?
重新粘贴 Password,排除大小写、首尾空格与换行问题。随后在 Home 选中正确的 Trojan 条目并运行 Connectivity Test,不要只看连接开关。
服务器已选中,网页仍是直连?
查看 Home 的 Global Routing 是否设为 Direct。可暂切 Proxy 检查该服务器,再返回 Config 核对实际命中的规则;规则中的 DIRECT 与 REJECT 也会影响具体请求。
订阅更新后手动条目为何不同?
手动保存的字段不会因为另一条订阅记录变化而自动一致。对照更新后服务器的 Address、Port、Password 与 SNI,确认测试的是哪一个条目;订阅导入和更新只使用自己已有的链接。
如果只有某些网站无法访问,而 Connectivity Test 正常,问题未必出在 Trojan 参数。Global Routing 设为 Config 时,配置中的 DOMAIN-SUFFIX、GEOIP、IP-CIDR 与 FINAL 等规则可能让不同请求分别走 PROXY、DIRECT 或 REJECT。此时应检查命中的规则及策略;切换 Proxy 只能用于区分路由问题和服务器连接问题,不应代替长期的规则核对。
Shadowrocket 是通过 App Store 获取的一次性买断客户端,开发者为 Shadow Launch Technology Limited;客户端购买与连接服务是两回事。iPhone、iPad 等设备的适用系统要求以 App Store 页面标注为准。准备继续学习 Home、Config 与 Settings 的基本操作,可先看站内入门指南,再回到本文逐项复核 Trojan 字段。