9 分钟
Trojan 是一种代理协议,它把流量藏在普通的 TLS 连接里,从外部看就像在访问一个 HTTPS 网站。它和“木马”恶意程序没有关系:这个名字取自特洛伊木马的典故。作者用一句话概括它的目标:“无法识别的机制”。它与 VLESS + Reality 的主要区别在于,观察者看到的是谁的 TLS:Trojan 用自己的证书建立自己的 TLS 连接,而 Reality 展示的是某个真实第三方网站的握手。下面介绍这个协议的构造、它的弱点,以及它在什么情况下仍然适用。
Trojan 是一种经由服务器传输数据的方式,它让连接看起来和访问一个加密网站没有区别。客户端与服务器建立真正的 TLS 连接,然后在连接内部发送密码和流量要送达的地址。
这个协议是为应对中国的过滤系统而出现的;原始项目的名字就叫 trojan-gfw。它的思路不是发明一种在其他流量中显得突兀的特殊加密,而是混入互联网上最常见的那类连接,也就是 HTTPS。
TLS 握手完成后,客户端向服务器发送密码的哈希值和一条类似 SOCKS5 请求的命令。密码正确,服务器就把流量转发到目标地址;不正确,它就表现得像一台普通的网页服务器。
根据项目文档,TLS 内部的数据包由四部分组成:
机制的另一半是防探测。任何结构或密码不正确的连接,服务器都会转交给预先设定的地址,默认是本地的网页服务器。想“敲门”看看这台服务器上有什么的人,看到的只是一个普通网站。
Trojan 没有自己的加密:全部保护都来自 TLS。因此服务器需要域名和有效的证书,缺了它们,伪装就不起作用。
Trojan 向观察者出示的是自己的证书和自己的 TLS 握手,而 Reality 出示的是别人的热门网站的握手。正因为如此,Trojan 可以通过两个特征被识别出来,而 VLESS + Reality 搭配 XTLS Vision 模式则弥补了这两点。
第一个特征是 TLS 套 TLS。用户通过 Trojan 打开 HTTPS 网站时,一条加密连接内部又建立了第二条。这时数据包的大小和顺序很有特点,流量分析系统已经学会识别这种模式。第二个特征是握手指纹:Trojan 客户端的 TLS 参数可能与真实浏览器发出的不一致。
| Trojan | VLESS + Reality | Shadowsocks | |
|---|---|---|---|
| 伪装成什么 | 使用自有证书的 HTTPS | 真实第三方网站的 TLS 会话 | 不伪装,看起来像随机数据 |
| 是否需要自己的域名和证书 | 需要 | 不需要 | 不需要 |
| 服务器被探测时的反应 | 返回备用网站 | 探测请求落到真实网站上 | 不响应或断开连接 |
| 是否容易因 TLS 套 TLS 被识别 | 是 | 在 XTLS Vision 模式下有所降低 | 不适用 |
| 服务器配置难度 | 中等:域名、证书、网页服务器 | 中等:密钥和目标网站的选择 | 低 |
| 客户端支持 | 广泛,包括旧客户端 | 基于 Xray 和 sing-box 的新式客户端 | 非常广泛 |
从抗封锁能力角度对这三种协议的详细比较,见文章 Reality、Shadowsocks 还是 Trojan。Reality 具体是如何借用别人的握手的,见什么是 Reality。
Trojan-Go 是用 Go 语言编写的另一个协议实现,带有额外功能。它支持多路复用,即在一条连接里传输多个流,也支持通过 WebSocket 传输,这样就可以把服务器放在 CDN 后面。
它保留了与原版 Trojan 的兼容性,但扩展模式只能在同为 Trojan-Go 的客户端和服务器之间使用。最主要的弱点,也就是嵌套 TLS,并不会因为换了实现而消失。
Trojan 适合这样的环境:过滤系统不分析流量模式,只检查连接看起来像不像 HTTPS。它也可以用作备用方案,或用在没有支持 Reality 的客户端的旧设备上。
支持和反对的理由如下:
在运营商使用深度包检测的地方(在俄罗斯,这由 TSPU 设备完成,即安装在俄罗斯运营商网络上的过滤设备),通常把 VLESS + Reality 作为主要方案,而把 Trojan 留作备用。这种设备是什么、它如何区分协议,见文章什么是 TSPU。
BessyConnect 使用 VLESS + Reality。这样选择的理由上文已经说明:Reality 不需要自己的域名,也不会留下代理服务器单独证书这样的指纹。
同时,用户不需要弄懂协议,也不需要配置服务器,一切都已经内置在应用里。如果你搜索 Trojan 是想找“一个能用的协议”,而不是一个研究课题,我们推荐这条路:
与经典协议的比较见文章 VLESS、OpenVPN 还是 WireGuard,与更新的协议的比较见综述 Hysteria2、TUIC 与 AmneziaWG。
不是。Trojan 协议是一种通过 TLS 传输流量的网络技术。它和恶意程序的共同点只有名字。
在有深度流量分析的网络里,VLESS + Reality 更稳定:它不会产生带自有证书的嵌套 TLS。Trojan 结构更简单,支持它的客户端也更多,包括旧客户端。
需要。服务器要有域名和有效的 TLS 证书,否则连接就不像一个普通的 HTTPS 网站。
它是用 Go 实现的版本,带多路复用和 WebSocket 支持。基础协议相同,附加模式只能在同为 Trojan-Go 的客户端和服务器之间使用。
能,只要服务方发给你形如 trojan://… 的密钥,把它粘贴进客户端即可,方法和 VLESS 密钥一样。如果什么都不想配置,直接选一个自带现成应用的服务更省事,例如 BessyConnect(Android)或 iPhone 版。
后量子加密 vpn 是什么、谁现在就需要升级?本文讲清「先存下来以后再解密」攻击的威胁、为何替换的是密钥交换而非流加密,以及如何区分真正的 ML-KEM 实现与营销贴纸,并回答普通用户现在该不该为此更换服务,看完心里有数。 更多
想找一款好用的 discord vpn?BessyConnect 帮你在 Discord 被封锁时恢复访问:电脑和手机上语音频道、直播和屏幕共享都能正常使用。VLESS+Reality 协议有效对抗 DPI 检测,100+ 台服务器任选,连接稳定延迟低。 更多
需要一款稳定的 instagram vpn?当 Instagram 打不开或图片频繁卡顿时,BessyConnect 采用 VLESS+Reality 协议恢复访问,动态、快拍与 Reels 在被封锁地区也能正常加载,手机和电脑上都能流畅使用。 更多