Trojan 协议是什么?Trojan 节点的原理与客户端支持
Trojan 协议是把代理流量放进正常 TLS 连接里的网络协议,名字与木马病毒无关。它必须搭配有效的 TLS,能不能用取决于你的客户端内核是否支持。
Trojan 资料卡核验于 2026-10-09
- 来历
- trojan-gfw 项目(仓库 github.com/trojan-gfw/trojan,文档 trojan-gfw.github.io/trojan)。README 称 Trojan 并非固定程序或协议,而是一种思路:模仿最常见的服务,使行为与之一致。页面未写明个人作者。
- 传输与加密
- 基于 TLS,证书由使用者自己负责有效。首个数据包为 hex(SHA224(密码))、CRLF、类 SOCKS5 请求(CONNECT 或 UDP ASSOCIATE)、CRLF 与载荷;无效请求转发到预设端点。
- 官方文档写明支持的内核
- trojan-gfw/trojan(原项目)、Xray-core、V2Fly v2ray-core、sing-box、Mihomo
站内收录的客户端里,文档写明支持 Trojan 的
- mihomo
- v2rayN
- v2rayNG
- Xray-core
- sing-box
- Hiddify
- Karing
- NekoBox for Android
- Throne
- Shadowrocket
- Quantumult X
- Stash
- Surge
- Loon
- OpenClash
- PassWall
完整对照见协议 × 客户端支持矩阵。
Trojan 官方文档Trojan 协议说明trojan-gfw/trojan 仓库Xray 文档:TrojanV2Fly:Trojan 配置(中文)sing-box 文档:TrojanMihomo 文档:Trojan
这张卡片的资料来源(7 条)
- 首包结构 hex(SHA224(password))+CRLF+类 SOCKS5 请求+CRLF+载荷;CONNECT 与 UDP ASSOCIATE;无效请求转发到预设端点(默认 127.0.0.1:80);首包附带载荷避免长度模式探测(trojan-gfw.github.io)
- README:Trojan 是一种模仿最常见服务的思路,在 TLS 上承载多种协议;官方文档位于 trojan-gfw.github.io/trojan(raw.githubusercontent.com)
- Xray 文档:Trojan 必须搭配 TLS;公网环境需要 Mux,否则 TLS in TLS 易被检测(xtls.github.io)
- 协议与传输安全兼容表:Trojan 的协议层安全为 Authentication only,security 为 none 时仅可连私有地址(xtls.github.io)
- V2Fly 文档:Trojan 被设计工作在正确配置的加密 TLS 隧道中;入站支持 fallbacks;packetEncoding 的含义(www.v2fly.org)
- sing-box 文档含 Trojan 出站,支持 transport 字段(sing-box.sagernet.org)
- Mihomo 文档含 trojan 代理类型,network 支持 ws/grpc(wiki.metacubex.one)
这里说的 Trojan 协议是一种网络代理协议,和电脑里的木马病毒没有关系,只是名字撞了车。它的做法是让代理流量穿上一层正常的 TLS 外衣:客户端先完成一次普通的 TLS 握手,再在加密通道里发出认证信息和访问请求。你在订阅里看到的 Trojan 节点,就是按这套方式连接的一条线路。本文按官方文档讲它怎么工作、有哪些前提,以及怎么判断自己的客户端能不能用。
先分清:Trojan 协议和木马病毒是两回事
计算机领域里 “Trojan” 本来就是“特洛伊木马”的通用叫法,所以名字很容易引起误会。官方页面没有解释这个项目为什么用这个名字,梯子岛也不去猜。能确认的是它的来源:项目是 trojan-gfw,代码在 trojan-gfw/trojan 仓库,文档在 Trojan 项目文档。仓库说明里把 Trojan 描述为一种思路,而不是某个固定的程序或协议:模仿最常见的服务,让自己的行为与那个服务一致。
遇到带 Trojan 字样的东西时,可以这样区分:
| 你看到的东西 | 它通常是什么 | 怎么确认 |
|---|---|---|
| 订阅里的 Trojan 节点、trojan:// 开头的链接 | 一条代理线路的配置信息,不是可执行文件 | 导入客户端后查看节点详情里的协议类型 |
| 安全软件报告里的 Trojan 字样 | 多半是木马类恶意软件的分类名 | 看被报告的文件路径与下载来源,别和节点混为一谈 |
| trojan-gfw/trojan 仓库 | 这个协议的原始实现 | 在 GitHub 上查看仓库说明与文档 |
如果你下载的客户端本身被安全软件拦下,先回头确认下载来源是不是官方渠道。修改版客户端的风险单独写在 破解版梯子软件能用吗 里,官方下载入口集中在 下载入口。
Trojan 协议怎么工作:一次正常的 TLS 握手加一个密码哈希
官方的 Trojan 协议说明 把流程写得很短。站在客户端的角度,可以拆成四步:
- 客户端与服务器完成一次正常的 TLS 握手。证书是否有效,由使用者自己负责。
- 握手完成后,客户端发出第一个数据包,里面依次是密码的哈希、一个类似 SOCKS5 的请求、以及真正要发送的载荷。
- 服务端核对密码哈希。通过就按请求转发;不通过,或者来的根本不是 Trojan 流量,就把这条连接转交给预设的端点,默认是本机 127.0.0.1:80 上的服务,对外表现得和那个服务一致。
- 之后双方在这条 TLS 连接里继续传数据。
第一个数据包的结构,文档给出的写法是:
hex(SHA224(密码)) CRLF
类 SOCKS5 请求(CONNECT 或 UDP ASSOCIATE) CRLF
载荷
几处细节值得知道:
- TCP 与 UDP 都能转发。请求类型里既有 CONNECT,也有 UDP ASSOCIATE。
- 首个数据包会附带载荷。文档的说法是,这样可以避免被长度模式探测,并可能减少发包数量。
- 不合规的连接会被转交。文档还提到,对明文 HTTP 请求可以做类似 nginx 的响应。
- 回落与 UDP 映射是服务端和内核层面的能力。V2Fly 文档写明 Trojan 入站支持 fallbacks 回落,packetEncoding 设为 Packet 时,UDP 是端点独立映射(FullCone/NAT1)。作为客户端使用者,知道有这回事即可。
为什么文档反复强调 TLS:Trojan 协议的前提与限制
Trojan 协议本身只做认证,不负责保护数据。Xray 的协议与传输兼容表把它的协议层安全标为 Authentication only,数据保护靠外层 TLS;V2Fly 文档也说它被设计为工作在正确配置的加密 TLS 隧道中。把几处文档的说法放在一起看:
| 项目 | 文档怎么说 | 对你意味着什么 |
|---|---|---|
| 外层 TLS | Xray 文档:必须搭配 TLS,仅当对端是私有地址且链路可信时才允许不用 | 节点里与 TLS 相关的设置不要随手关掉 |
| 数据保护 | 协议层只做认证,保护依赖外层 TLS | 节点能不能用,取决于 TLS 这一层是否配对 |
| 证书 | 证书由使用者自己负责有效 | 证书报错时先查系统时间和证书提示,见 证书错误与系统时间不对怎么办 |
| 公网环境 | Xray 文档:还需要 Mux,否则内层载荷本身是 TLS 时会形成 TLS in TLS,容易被识别 | 这是内核文档对配置的要求,节点由提供方设定,你只需要知道有这回事 |
这里的“容易被识别”是 Xray 文档的说法。梯子岛没有测试数据,既不能印证,也不能反驳。想先弄懂术语,可以看词典里的 TLS 和 多路复用 Mux。
另外要提醒一件事:官方实现 trojan-gfw/trojan 的主分支,最近一次提交停在 2020 年,GitHub 页面没有显示归档标记。这只是仓库状态,不等于协议不能用:Xray-core、sing-box、Mihomo 的文档里仍有 Trojan 的配置说明,具体以各自文档为准。
一条 trojan节点 里有哪些东西,怎么读
从协议的工作方式倒推,客户端要连上一个 Trojan 节点,至少需要这几类信息:
- 服务器地址和端口。
- 密码。协议用它的 SHA224 哈希做认证。
- TLS 相关设置,包括是否开启以及证书校验方面的选项。
- 如果节点用了 WebSocket 或 gRPC 之类的传输,还有对应的传输设置。Mihomo 文档里 Trojan 的 network 支持 ws 与 grpc,sing-box 的 Trojan 出站则有 transport 字段。
字段的具体名字、顺序、能不能留空,各个客户端写法不同,不要照搬别人截图里的填法。想看逐项怎么填,去 Trojan 节点配置教程;想看 trojan:// 链接每一段是什么意思,去 节点链接怎么读;手里有一串链接想拆开看,可以用 节点解析 这个工具,使用前先读工具页上的说明。
哪些内核支持 Trojan 协议,trojan客户端怎么判断
“客户端支持”其实分两层:内核有没有实现这个协议,客户端的界面有没有把它开放出来。先看内核:
| 内核或实现 | 文档里怎么提到 Trojan | 要留意什么 |
|---|---|---|
| trojan-gfw/trojan | 原项目与官方实现 | 最近一次提交停在 2020 年,状态以仓库页为准 |
| Xray-core | 有 Trojan 出站文档 | 必须搭配 TLS,公网环境还需要 Mux |
| V2Fly v2ray-core | 有 Trojan 配置页 | 入站支持 fallbacks,packetEncoding 决定 UDP 映射方式 |
| sing-box | 有 Trojan 出站文档 | 支持 transport 字段 |
| Mihomo | 有 trojan 代理类型 | network 支持 ws 与 grpc |
内核之外,具体到某一款 trojan客户端,梯子岛的做法是把结论放在 协议支持矩阵 里,把内核和客户端的关系放在各个档案页里,例如 Mihomo 内核、Xray-core 和 sing-box。如果你还没选好客户端,可以用 客户端选择工具 按平台和协议倒推。不要因为一款客户端名气大,就假定它所有版本都支持 Trojan。
拿到 Trojan 节点后,怎么核对它能不能用
下面这组检查只依赖你自己的设备,不需要任何第三方给你测试数据:
- 导入后打开节点详情,确认协议类型显示为 Trojan,而不是被转换成了别的类型。
- 对照上一节的表,确认你客户端所用内核的文档里有 Trojan。
- 确认 TLS 相关设置处于开启状态,不要为了“先连上再说”把它关掉。
- 检查系统时间是否准确。时间偏差会让证书校验失败,现象和节点失效很像。
- 连上之后,用 IP 与 DNS 检测 里的工具看出口地址和 DNS 走向,自己判断是否符合预期。梯子岛只教方法,不提供检测结果。
- 仍然不通,就按 梯子连不上怎么办 的顺序往下查,节点全部超时的情况看 节点超时怎么办。
和 VLESS、Shadowsocks 比,Trojan 协议处在什么位置
三者的差别可以先从“靠什么保护数据”看起,下面只列文档里能核对到的部分:
| 协议 | 认证方式 | 数据保护 | 是否依赖外层 TLS |
|---|---|---|---|
| Trojan | 密码的 SHA224 哈希 | 依赖外层 TLS | 依赖 |
| VLESS | UUID | 默认不加密,靠外层 TLS 或 REALITY | 依赖 |
| Shadowsocks | 预共享密钥 | 自己加密数据流 | 不走 TLS |
这张表只回答“原理上有什么不同”,不回答“哪个更好用”。后者取决于你的客户端、节点和网络环境,对比页分别写了设计思路和客户端支持:VLESS 与 Trojan 的区别、Shadowsocks 与 Trojan 的区别。
下一步该去哪
按你手上的情况选一条路:
- 已经拿到 Trojan 节点,想把它填进客户端:去 Trojan 节点配置教程。
- 还没选客户端:先看 协议支持矩阵,再回到 梯子导航 按分类找官方仓库与文档入口。
- 想先弄清协议规范在站内怎么归类:看 协议规范导航。
- 想系统比较各种协议:看 VLESS 与 Trojan 的区别,以及 代理协议怎么选。
不管最后选哪种协议,原则都一样:以官方文档和你自己的验证为准,不要被“新协议”“老协议”的说法带着走。
这篇没有覆盖的
- 文中不提供速度、丢包或解锁的测试结果,请把这些留给自己的实测环境。
- 本文只讲客户端一侧的认识,不涉及服务端搭建,也不判断某个具体节点是否可靠。
- 某款客户端是否支持 Trojan,以协议矩阵和该客户端的档案页为准,本文不逐款列举。
本文引用的官方来源
- Trojan 项目文档(trojan-gfw.github.io)
- Trojan 协议说明(trojan-gfw.github.io)
- Xray 文档:Trojan(xtls.github.io)
- V2Fly:Trojan 配置(中文)(www.v2fly.org)
- sing-box 文档:Trojan(sing-box.sagernet.org)
- Mihomo 文档:Trojan(wiki.metacubex.one)
以上链接均为官方页面,梯子岛在 2026-10-09 核对过;个别网站会拦截自动化访问,用浏览器直接打开即可。平台规则可能随时调整,以官方页面当前内容为准。
Trojan 协议常见问题
Trojan 协议是病毒吗?
不是。这里的 Trojan 是一种网络代理协议,出自 trojan-gfw 项目,与电脑里的木马病毒只是同名。节点本身是一段配置信息,要由代理客户端或内核读取后才会工作。如果安全软件对某个文件报了 Trojan 字样,应当去看文件路径和下载来源,而不是和节点混为一谈。
Trojan 节点一定要开 TLS 吗?
按 Xray 官方文档,Trojan 必须搭配 TLS,只有对端是私有地址且链路可信的情况下才允许不用。公网上使用的节点不应该关闭 TLS 相关设置。V2Fly 文档也说 Trojan 被设计为工作在正确配置的加密 TLS 隧道中。
Trojan 和 VLESS 哪个更好?
两者都依赖外层 TLS,区别主要在认证方式、可搭配的传输方式和客户端支持范围上,没有脱离场景的统一答案。具体取舍请看站内的对比页,并以你的客户端和节点实际支持哪种协议为准,梯子岛没有任何测速数据可以替你排名。
哪些客户端支持 Trojan?
从内核文档看,Xray-core、V2Fly v2ray-core、sing-box 和 Mihomo 都有 Trojan 的配置说明。具体到图形客户端,要看它用的内核以及界面是否开放了相关选项,请在协议支持矩阵和客户端档案页里核对,不要只凭名气判断。
Trojan 节点连不上先查什么?
先确认客户端和内核确实支持 Trojan,再看节点的 TLS 设置是否被改动,然后检查系统时间是否准确、证书是否报错。仍然不通时,按站内的连不上排查页逐层往下查,同时留意是不是订阅本身已经过期或节点已下线。
接着读
- 对比 · VLESS 与 Trojan 的区别:设计思路与客户端支持
- 教程 · Trojan 节点配置教程:客户端怎么填、哪里容易错
- 对比 · Shadowsocks 与 Trojan 的区别:老协议与新协议
- 术语 · TLS是什么意思
- 术语 · 多路复用 Mux是什么意思
- 教程 · 节点链接怎么读?vmess://、vless://、trojan://、ss:// 的字段含义