代理协议独立百科词条标准 HTTPS 拟态

Trojan (Trojan Protocol)

真实证书 TLS 握手 · 成为标准 HTTPS · 主动探测 Fallback 回退

Trojan 是由开源组织 GreaterFire 于 2017 年设计的著名代理协议[1]。 面对审查防火墙对自定义混淆协议层出不穷的针对性识别,Trojan 提出了颠覆性的逆向思维:「模仿协议总是会留下破绽,唯有真正成为标准协议才能完全免于针对」。 它直接架设在合法的公网域名与真实权威 CA 证书之上,监听标准的 443 端口; 当遭遇未知探测流量时,服务端会自动执行 Fallback(回退) 呈现合法的真实网站,是合规自建 HTTPS 代理的经典标杆[2]。

核心组织GreaterFire
规范公开2017.10.19
设计哲学不模拟 TLS · 成为标准 TLS
核心防探测Fallback 回退至真实 Web 服务

日期辨析:2017 年 10 月 19 日协议规范公开 vs 12 月 8 日 v1.0.0 正式发布

协议规范文档提交2017.10.19

GreaterFire 团队提交 Commit ed5cb19a,首次完整定义 SHA-224 鉴权与 Fallback 回退架构。

Trojan v1.0.0 首发2017.12.08

官方发布基于 C++ 编写的 Trojan 首个公开正式版,具备完整 Linux 服务端与客户端支持。

Trojan-Go 衍生与生态普及2020.04.10

社区推出 Trojan-Go,扩展了 WebSocket 传输、Mux 多路复用与高级路由,全生态客户端标配支持。

编写口径:Trojan 协议与 TLS 安全层为承载组合关系;所有演进均有 GitHub 真实 Commit(ed5cb19a)与官方 Release 为准。

词条概览与核心定位

01

在 ShadowsocksR 等混淆协议遭遇深度学习分类器的大规模阻断后,审查者通过主动探测手段向疑似代理节点发送伪造的握手数据包, 若服务端返回非标准响应或直接断开连接,就会被立刻标记封锁。

Trojan 优雅地解决了主动探测难题:客户端首先与服务端完成标准、真实的 TLS 握手; 握手成功后,客户端发送一段经过 SHA-224 散列的 56 字节定长密码校验串与代理请求。 如果收到未经认证的连接、普通浏览器访问或是防火墙的探测探针,Trojan 服务端绝不断开连接, 而是将数据流透明转交给后端的 Nginx 或 Caddy 服务,向探测者返回标准的合规网页内容[1], 使审查者在统计学与行为学上均无法将其与普通网站区分。

定位结论

Trojan 属于标准 HTTPS 代理的成熟标杆。 由于其完全遵循标准 TLS 规范,不易引起机房云厂商的风控误杀,是拥有独立公网域名用户的常青首选。

真实 TLS 握手与 Fallback 回退架构

02
1. 标准 TLS 1.2/1.3 加密承载层使用真实权威 CA 签发的合法域名证书,严格遵循 RFC 标准完成 TLS 协商; 所有外部网络特征与正常访问大型知名 HTTPS 网站完全一致。
2. SHA-224 密码校验与定长请求原语在安全通道内,客户端发送 56 字节的密码十六进制哈希与 CRLF 换行符; 协议自身结构极简,避免了复杂协商产生的往返延迟。
3. 主动探测智能 Fallback 回退机制校验失败或检测到标准 HTTP 请求时,服务端直接短接本地 Web 容器(如 Nginx/Caddy); 探测者只能看到正常搭建的博客或企业主页,彻底消除代理指纹暴露风险。

握手与回退交互生命周期

  1. 标准 TLS 握手协商:客户端发起 ClientHello,双方完成证书验证并协商出会话对称密钥,建立安全隧道。
  2. 首包密码摘要校验:客户端在加密通道内送达 SHA-224 密码摘要;服务端在常数时间内校验密码真伪。
  3. 代理转发或智能回退:合法请求被代理出站至真实网络;非法探测或正常网页请求被静默回退给本地网站容器呈现。

域名与证书维护要求

Trojan 依赖合法的域名与有效证书。若证书过期、域名解析失效或被 DNS 污染, 客户端握手校验将直接报错中止,需要自建者配置自动续期(如 acme.sh / certbot)。

版本演进时间线(共 6 个关键节点)

03

以下时间线记录了 Trojan 协议从 2017 年提出到如今成为全行业成熟标准的完整迭代历程,全部依据官方 GitHub 提交核验:

纪事

2017 年:协议诞生与参考实现首发

  • GreaterFire 提交 Trojan 协议设计规范

    在 GitHub 提交 Commit ed5cb19a,首次明确提出「模仿 HTTPS 是徒劳的,Trojan 直接成为真实的 HTTPS」的核心设计理念。

    GitHub:Commit ed5cb19a
  • Trojan v1.0.0 正式发布

    发布 C++ 编写的首个稳定版本,实现标准 TLS 握手、SHA-224 密码校验与本地 Web 服务 Fallback 转发。

    GitHub:Trojan v1.0.0 Release
纪事

2018 年 - 2019 年:功能健全与防探测定型

  • Trojan v1.8.0 引入完整 UDP 代理

    通过在 TLS 管道内定义扩展报文原语,支持高效、低延迟地代理 UDP DNS 与游戏流量。

    GitHub:Trojan v1.8.0 Release
  • Trojan v1.14.0 完善非标准握手静默回退

    针对网络审查发送的主动探测请求与未带合法密码的 HTTP 请求,稳定转发至本地 Nginx 呈现正常网页。

    GitHub:Trojan v1.14.0 Release
纪事

2020 年至今:Go 生态繁荣与全平台统治

  • Trojan-Go 发布并引入 WebSocket 传输

    开发者 p4gefau1t 开源 Trojan-Go,支持通过 CDN 节点中转 WebSocket 流量,极大拓宽了部署自由度。

    GitHub:Trojan-Go Release
  • 现代开源内核全面完成 Trojan 原生标准化

    Xray-core、sing-box 与 Mihomo 均将 Trojan 原语作为标准出站选项,实现与 TLS 1.3 及 uTLS 指纹模拟的深度协同。

    sing-box 官方 Trojan 文档

生态实现与客户端兼容性

04

Trojan 已经成为现代网络工具的基准协议之一; 无论是在经典的 C++ 官方原版,还是现代 Go 内核(Trojan-Go、Xray-core、sing-box 等)中,均获得了近乎完美的跨平台支持。

软件 / 内核类型支持平台支持级别起始版本发布日期特性说明
trojan (C++ 官方原版)核心内核Linux / macOS / Windows官方参考实现v1.0.0+2017.12.08GreaterFire 第一方标杆实现,单二进制 C++ 高性能服务,原生支持 OpenSSL TLS 栈与 Fallback。
Trojan-Go核心内核全平台跨平台实现完整原生支持v0.5.0+2020.04.10Go 语言实现的增强分支,引入 WebSocket 承载、简易 Mux 复用与 CDN 兼容性支持。
Xray-core / sing-box / Mihomo核心内核全平台现代通用内核完整原生支持内嵌原生支持2020.11.20各大现代内核均内置 Trojan 出站与入站协议处理器,支持结合 REALITY 或标准证书。
全平台客户端 (Surge / Shadowrocket / Loon / Clash Verge Rev)客户端iOS / macOS / Windows / Android客户端图形界面支持全线主流版本支持2019.05.01全面支持标准 trojan:// 格式链接导入,具备证书指纹校验与 SNI 灵活配置能力。

适用场景、网络边界与部署建议

05

最佳适用场景

自有合规域名的建站兼翻墙:适合个人开发者在 VPS 上同时部署真实博客主页与翻墙代理; 全平台跨平台极高成熟度:iOS、macOS、Windows、Android 甚至路由器均具备第一方原生支持; 标准 443 端口网络环境:在仅开放 Web 端口的严格办公内网中,通过标准 HTTPS 伪装可轻松穿透。

网络边界与安全注意事项

必须自备域名与有效证书:不能使用自签名或过期证书,否则现代客户端安全验证会直接阻断连接; 注意 SNI 阻断与证书指纹关联:若自建域名仅从特定 IP 获取大流量,存在 SNI 被定向封锁的可能; 建议务必配置合理的本地 Fallback:若不配置回退,遭遇扫描探针连接直接中断,失去 Trojan 的主动防御特性。

第一手文献与官方参考资料

06

词条事实与技术定义均以 GreaterFire 官方设计文档与 GitHub 仓库记录为准:

  1. [1]The Trojan Protocol Official DocumentationTrojan 协议官方设计文档,定义了密码 SHA-224 哈希序列、命令字段与 Fallback 状态机。https://trojan-gfw.github.io/trojan/protocol
  2. [2]trojan-gfw/trojan GitHub 官方代码库GreaterFire 维护的 Trojan 官方 C++ 源代码、历史版本发布日志与部署文档。https://github.com/trojan-gfw/trojan
  3. [3]Trojan Protocol Specification Commit on GitHubTrojan 协议规范合入官方仓库的原始提交历史(Commit ed5cb19a)。https://github.com/trojan-gfw/trojan/commit/ed5cb19a6dedec03978bbdfd9e8abfaf1560b06a
  4. [4]sing-box Trojan Outbound Configuration现代内核 sing-box 关于 Trojan 协议的参数配置、TLS 编排与多路复用说明。https://sing-box.sagernet.org/configuration/outbound/trojan/